💬

コードレビューで意識していること

2024/09/22に公開

こんにちは。今回は私がコードレビュー時に意識していることについてまとめたいと思います。

1.好みを押し付けない

コードレビューでたまにあるのが、その人の「こだわり」による指摘で永遠に修正が終わらないことです。

私が「こだわり」になっていないか否か判断ポイントとしては、下記の感じです。

  • 8割の人がこの意見に賛同するか?
  • その人が今回の注意で今後気をつけることが出来るのか?
  • 曖昧な判断基準になっていないか?

では、よくある例を見ていきたいと思います。

命名

タイポや英語的に分かりづらい、は勿論指摘OKだと思います。
ただし「こっちの方が命名良く無いですか?」みたいなのだと、レビュー依頼者は今後レビュー者の好みを予測して命名する必要があります。(そうしないとまた永遠と指摘が入ってしまう)

察してコーディングは超大変なので、それが「こだわり」になっていないかを意識して指摘する必要があると思います。

処理方法

メソッドなど、処理の方法は様々なアプローチがあると思います。勿論「この方がメモリ効率が良いと思います!」とか「今後こういう仕様が増える予定なので、こうしておいて欲しい」など明確な理由がある場合は指摘OKだと思います。

しかし、自分が想像していた方法と別の方法が書かれていた際に「こっちのほうが良く無いですか?」という指摘はしない方が良いと考えています。

2.挙動が問題ないか

これはサービスとして重要な点ですね。この確認をする際は

  • 仕様を把握
  • テストシナリオを頭の中で作る
  • あらゆるパターンを確認

という手順で確認しています。ここでコーディングした人が見落としているパターンを見つけ出すのが至高です。また、これについては自分がコーディングしてレビュー依頼を出す前にも行なっています。(意外と挙動確認しないまま、レビュー依頼出す人も多いですよね…)

3.仕様は守られているか

これは挙動以外の部分の仕様が守られているか、という視点になります。

  • デザイン
  • 分析タグなど裏側の処理
    などなどです。

ここで一番難しいのが「何に従うか」をはっきりさせてレビューすることです。

例えば

  • 仕様について資料Aと資料Bの内容が異なっていた場合は、どちらに従うのか?
  • デザインはこうなっているけれど、気持ち悪いから勝手に直してコーディングしました
    などのことが発生した際、どうするのか。

こう言った場合は、必ず一番信用出来る資料を採用する or 各責任者に確認する という方法を取る必要があると思います。デザインであればデザイナーに従うし、仕様であればディレクターに従うし…
結構自分で判断し、改変してコーディングしている場合もあるので、他の資料と照らし合わせて確認をしています。

4.コーディングルールに則っているか

これは最初に書いた「こだわり」とはっきり分ける必要があります。
まずコーディングルールは1つに絞って、最初に提示しておく必要があります。「こっちのルールではこう書いてあります」とか言い始めると、キリがないし正解がなくなってしまうためです。

lintをガチガチに設定しておくのも手かもしれません。

5.理由を書く

最後に私がレビューで意識していることは、必ずコメントにその指摘をした「理由」を書くことです。
何故その指摘をしたのかを書いておくと

  • 次回同じ間違いをしにくくなる
  • 別のコーディングをした際にも活用できる
    と思っているからです。

逆に理由が書けないような指摘はしないでおきます。直す理由が無いので…

まとめ

レビュー全体で意識していることは「判断基準を曖昧にしない」という点に尽きると思います。
毎度同じ判断基準でレビューをすること、全員が納得するようなレビューをすることを意識しています。

判断基準を曖昧にすると自分がコーディングしている時もどこに従うべきか、悩んでしまって自分の首を絞めることになると思っています。

ただ、PJによって勿論大切にしている部分は異なると思うので、郷に行っては郷に従えが一番大事ですね。

お読みいただきありがとうございました。

Discussion