こんにちは。今回ブログを担当することになりましたエンジニアの若原と申します。
今回はコードレビューについて書かせていただきたいと思います。
コードレビューはチームで開発を行う上で重要になってくる要素の一つだと思います。
実施にあたりメリットやデメリットなどあると思います。
メリット
- コードの品質が上がる
- 自身で気づけなかったバグを発見できる
- ノウハウが共有できる
- 自分以外が書いたコードへの理解が深まる
バグを減らしたり、ノウハウを共有することで属人化を防ぐことが出来るのはとても良いメリットだと考えています。
デメリット
- 自身の作業を中断する必要がある
- コメントと修正の繰り返しで時間がかかることがある
事前にコーディング規約を決めたり、IDEでコードの自動補正をかけたりすることで、時間の短縮を図ることは出来ると思います。また、急ぎでなければ自分の作業の区切りなどに行うなどある程度調整は可能です。
コードレビューの観点一例
- 仕様通りの実装になっているか
- 変数や関数の命名は適切か
- 処理が冗長になっていないか
- 複雑すぎる処理になっていないか
複雑度(ネストの深さ)や処理の冗長性などはツールでも判断可能ですが、仕様通りの実装になっているかどうかは機械的には判断できないので重要視しています。
また、レビューを実際に依頼する前に下記のようなことを気をつけることにしています。
- reviewerの作業時間を消費しているということを意識する
- レビューするコードが大きすぎる場合は分割する
- 実装内容を一通り見返す
- 仕様にそった実装となっているか
- コーディング規約に沿った実装になっているか
- 動作の確認は取れているか(テストがあるか)
相手に時間を作ってもらいレビューしてもらうので無駄に時間を拘束してしまわないよう、事前に確認できる内容については確認しておきたいと考えています。
最後にコードレビューに対して思うことですが、自身のコードを評価してもらえることはとてもありがたいことだと思っています。また、人のコードに対してどのような意図があってそのような実装になっているのかといった質問することで新たな発見につながるかもしれません。