【初心者必読】コードレビューとは?メリット・デメリットを解説
エンジニアおよびプログラマとして働く以上、誰もが通る道の一つがコードレビューです。
特に経験の浅い方や初心者の方の場合は、コーディングする度にコードレビューをしてもらって、また数行書いたらコードレビューして…という業務フローになることも珍しくありません。
しかし、コードレビューは多くの人にとっては「苦痛」に感じる部分もあり、とりわけ初心者の方だと「本当に必要なの?嫌なんだけど…」となることもありますよね。
今回は、そんなコードレビューについて、メリット・デメリットを挙げ、なぜコードレビューが行われるのかを簡単に解説していきます。
コードレビューとは?
コードレビューとは、言葉の通り「コードの内容を評価する」ことです。
評価と言っても、業務成績のようなものではなく、そのコードがおかしな記述になっていないか確認します。
いわゆるダブルチェックのようなものです。
開発現場においては、ダブルチェックよりも重要度の高い工程と言えます。
「コード」とは言っても、基本的にレビュー対象となるのはJavaやPHP、JS等のプログラミング言語で書かれた「プログラムのソースコード」であり、HTMLやCSSのレビューを行うことはあまりありません。
暇ならやるかな、くらいですね。
また、コードレビューの評価ポイントや進め方は人それぞれであり、特に「こうするべき」と広く定義された様式は存在しません。
したがって、本記事では管理人の主観も若干混じりますが、そこはご容赦ください。
3つのメリット
先述したように、コードレビューは開発現場においては重要度の高い工程です。
基本的には、以下の3つのメリットがあります。
- プログラムの整合性が保たれる
- 開発進捗を共有できる
- 開発意欲の向上に繋がる
それぞれのメリットについて、詳しく見ていきましょう。
1. プログラムの整合性が保たれる
コードレビューの目的は様々ですが、中でも共通するメリットが「プログラムの整合性を保てる」という点です。
「プログラムの整合性」というのは、大きく以下のような要素によって形成されます。
- 無駄なコードやコメントがない
- 重複する処理の共通化
- 各処理の依存性が低い
上記の3点を達成できているプログラムは、十分に「整合性が保たれている」と言えます。
これらの項目が達成されていないプログラムは、見通しが悪くなったり、メンテナンスする際にリファクタリングする箇所が多かったりと、追加開発および保守開発業務を妨げる要因になります。
ただ、開発現場は一般に複数のプログラマが同じプログラムを触ることになるため、これらの項目を達成するのはそう容易なことではありません。
優秀なプログラマであっても、他人の作った処理やメソッドを見逃してしまうことはあります。
そこで、コードレビューを通じた整合性の確認が意味を成します。
コードレビューをしたからと言って必ずプログラムの整合性が保たれるとは限りませんが、第三者がチェックすることにより、共通化できる処理や遠回しで無駄の多い処理を指摘するきっかけとなります。
以上の点から、コードレビューは一般的に現場内でスキルが高く、また開発環境への理解が深い人間が担当することがほとんどです。
2. 開発進捗を共有できる
コードレビューは、ある開発者の書いたコードを、別の開発者が確認する形式になります。
それはすなわち、コードレビューする側が、その開発者の進捗を把握することにも繋がるのです。
前述したように、コードレビューは経験の多いプログラマやエンジニアが担当するケースが多く、基本的にはチーム長のような立場の人間が行うため、進捗を把握できるのは大きなメリットと言えます。
例えば、開発進捗があまり芳しくない場合は、別の開発者に対して、開発の手助けをしてもらったり、といった対応を、早期に行える可能性があるわけです。
上司が部下のスキルを把握できる
上司がコードレビューを担当する場合、開発進捗と合わせ、上司が部下のスキルを把握できる点もメリットの一つです。
これは、主に新人のOJTを行うような現場で顕著に表れます。
コーディングスキルの低いプログラマがあっちこっちコードをいじってしまうと、基本的に見通しが悪く、メンテナンスし辛いコードが出来上がります。
これは、プログラミング言語や使用しているフレームワーク・ライブラリに対する理解度が低いためです。
最終的な処理の結果は同じでも、コードとして記述する場合において、その処理を効率的に実現する方法はいくつか存在するものですが、これは開発者に知識量・理解力に依存します。
コードレビューでは、レビューする中でそういった知識やテクニックを伝えることも珍しくありません。
また、あまりにもスキルが低い場合は、別の作業を任せるなどして、プログラムの煩雑化を防ぐことに繋がります。
これらの傾向から、新人のコードレビューは一般的に手厳しく行われることが多いので、初心者の方にとっては辛いかもしれませんね。
上司も仕方なく厳しくしているので、理解してあげてください…
3. 開発意欲の向上に繋がる
コードレビューは、内容によってはコーダの開発意欲向上に繋がることもあります。
実は、プログラミングなどの開発業務は営業のような明確な評価指数がないため、モチベーションの維持が難しいです。
また、基本的にはチーム開発となる現場が多いことから、「この目標を達成できた!」のような達成感を味わう機会も多くありません。
その中でコードレビューは唯一と言っていいほど「褒められる」機会になるので、コードレビューで評価されることを目標に頑張ると、モチベーションも維持でき、かつプログラムとしても品質の高いものが出来上がるのではないでしょうか。
まとめ
コードレビューは多くのプログラマやエンジニアにとってストレスになりやすいですが、開発プロジェクトにおいては、保守開発・運用の工数を削減する意味でも機能実装時点でのコードレビューは重要になります。
初心者の方の場合、「他の開発者にとって優しいコードとは何か」を知る機会にもなるので、めげずに取り組んでいくようにしましょう。