コードレビューの概要と目的
コードレビューとは、作成したソースコードをレビューすることで、記述ミスやバグがないかを確認する作業のことです。プログラムの品質を向上させるために、必要不可欠な工程といえます。ここでは、コードレビューの重要な観点を把握するために、まず概要や目的について詳しくご紹介します。
コードレビューの概要
コードレビューとは記述したソースコードに間違いがないかどうかを自分以外の誰かに確認してもらうことです。レビューを行う側の人をレビュアー、レビューされる側の人をレビュイーといいます。レビュアーは複数いる場合もあります。
システム開発の際にコードレビューはよく実施されます。例えば、システムの品質を担保するために、「レビュアーの許可がない場合にはコードを修正することができない」というルールを作るプロジェクトもあります。プロジェクトの発足時に、レビューにかかる工数の見積もりやレビューのルールを決めることが大切です。
コードレビューの目的
コードレビューの大きな目的は、システム品質の向上です。レビュアーに作成したコードに対して指摘してもらうことで、コードをより良い方向に修正することが可能です。例えば、人間がコードを記述する場合、ケアレスミスは発生します。そのため、コードレビューを行うことで客観的にコードを見てもらえるため、ケアレスミスに気づきやすく、結果としてシステム品質の向上が期待できます。
また、コードレビューは新人教育のために実施されることも多いです。新人社員の場合、実務経験が豊富な上司と比較するとコードの実装スキルがありません。そのため、ソースコードを読む作業を通じて、新人社員はコーディングについて多くのことを学ぶことができます。例えば、他人のコードを読むことによって「コードの設計」「コードの書き方」「フレームワークのスキル」などを勉強することが可能です。コードレビューを通じて開発者の意図を学べるため、スキルアップにつながります。
さらに、新人社員の場合はコードを丁寧に読むことが多く、実務経験が豊富な社員だとコードレビューを行うことに慣れていることが多いため、ケアレスミスを見逃してしまうこともあります。そのため、新人社員がコードレビューを行うことで小さなミスを拾えることもできるので、新人教育も兼ねてコードレビューを行うことも多いです。
コードレビューの注意点
コードレビューの目的が理解できたら、次は方法が重要です。コードレビューの方法はプロジェクトによって異なることも多く、ここでは一般的なコードレビューの方法について詳しく紹介します。ただし、例外もあるので注意してください。
コメントの種類を使い分ける
コードレビューをする際のコメントは、主にレビュイーが対応しやすいように記述します。そのためには、行間のない短文で理解しやすいコメントが大切です。コメントは、対応必須の「MUST」とレビュアーの意見「IMO(In My Opinion )」の2つに分類すると分かりやすいです。また、細かい指摘を行う項目など他の要素を使うこともあります。
コメントの仕方に気を付ける
コードレビューにおけるコメントは、コミュニケーションの一貫にもなります。そのため、コミュニケーションがスムーズになるようなコメントの仕方も大切です。プロジェクトによっては文字のみだけではなく、絵文字や記号を使用することもあります。
また、コードレビューでは相手の良い点を褒めることも大切です。例えば、上司がレビュアーで新人社員がレビュイーの場合に、新人社員が成長した点をコメントしてあげると、新人社員のモチベーションアップにもつながります。
厳しい指摘ばかりしていると、レビュイーにとってコードレビュー自体が「辛い」「怖い」とネガティブなイメージになる原因になります。またコメントをメンバーに共有することで、チーム全体の学びにもなるでしょう。
根拠を示す
レビュアーがコードレビューの際にコメントを記載するときは、理由や根拠もきちんと記述しましょう。コメントで「〇〇に修正してください」だけだと、レビュイーは「なぜ?」と疑問を抱いてしまうことがあるので、根拠を示すことで新人社員の学びにもつながります。インターネット上の信用できる参考文献を利用して、コメントをした理由を記述しましょう。
参考文献としておすすめの本は「リーダブルコード―より良いコードを書くためのシンプルで実践的なテクニック」です。イラスト付きで解説されているため分かりやすく、日本語の解説もついています。
マージ後でも修正可能かを意識する
マージを行った後でも、修正可能かどうかを意識することは大切です。レビューの修正はマージを実施した後でも少ない工数で修正することができます。一方、データベースの変更は修正するための工数が大きくなるので、マージ後に修正が大変かどうかを意識してレビューを行うことも重要です。
コードレビューのコツ
相手に伝わりやすくコードレビューを実施するには、いくつかコツがあります。コードレビュー初心者の方は、まず基本的なコツをおさえておきましょう。ここでは、コードレビューをするときに意識すべき3つのコツについて説明します。
口頭でのレビューも利用する
コメントのみでのレビューが難しいこともあります。その場合は対面レビューの口頭でレビューを行うことがおすすめです。ただし、指摘内容についてはコメントとして残しておいた方が、あとでエビデンスとして活用できます。また、プロジェクトメンバーに共有することもできるので、チーム全体の学びにもつながるでしょう。
コードレビュー観点のチェックリストを用意する
コードレビューをする際には、チェックリストの準備も大切です。チェックリストを用意することで、コードレビューする際の抜けや漏れを減らすことができます。また、コードレビューをどのような観点で行うか、チームで認識合わせが可能です。
進捗に応じて確認するポイントを変える
進捗状況によって、コードレビューをするポイントを変えることも重要です。作業途中のコードを「WIP」として、プルリクエストを出す方法もあります。WIPとは、「work in progress」の略称で、進行中や作業中のことを指します。プルリクエストとは、コードの修正をレビュワーに通知して、マージを依頼することです。WIPの場合は、変更の前提となるところを重点的に確認します。
例えば、コードの設計や実装の方針について問題はないかを確認することが多いです。また、この段階では細かい部分の指摘は不要です。コーディングが完了した後に、細かい部分についてもレビューを行います。
コードレビューで指摘が多いポイント
ここではコードレビューの際に指摘が入りやすいポイントについて説明します。間違いやすいところは重点的にチェックし、バグの防止やレビューの効率化を目指しましょう。下記で説明する項目について詳細なチェックリストを作成すると、精度の高いコードレビューができます。
機能
仕様のとおりに実装されているか、UIが適切か、エラーを正しく返すことができるかなどの基本的な機能部分をまずチェックしましょう。簡単なコードでもケアレスミスがないとは言えません。機能に影響する部分はユーザーに直接見えるものが多いため、重点的にチェックしてください。
コード
不要なロジックが残っている、コピペミスがある、同一のロジックが複数入っているなどは必ず指摘しましょう。コードの記載ミスは、製品がバージョンアップされたときや新たにアサインされたメンバーが加わる場合など、開発を再開する際にトラブルの元になります。複数のメンバーで開発ができるよう、コードは読みやすく書くことが大切です。
パフォーマンス
複数の端末で接続した際に処理速度が低下する、重い処理が含まれているといったパフォーマンスの低下の原因となる部分もチェックすべきポイントです。具体的には指定されたデータ型が正しい、可能ならトランザクションを使用する、外部リソースへアクセスする場合は1回にまとめるなどの対策をしましょう。
コードレビューツール
コードレビューは、工数やコストが多くかかることも少なくありません。近年ではIT人材の人手不足が深刻化していることもあり、納期などの問題からコードレビューができないことも多いです。品質を一定に保つためには、レビュー効率を上げる必要があります。ここからは、レビュー作業の効率向上に用いられるコードレビューツールを2つご紹介します。他にも多数のコードレビューツールが存在しているので、ぜひニーズに合うツールを探して利用しましょう。
GitHub
GitHubには、プルリクエストの画面にコードレビューのツールがあります。無料でも使用できますが、データ量やアクション数などに制限があるため、企業単位でツールを活用する場合には有料プランの選択がおすすめです。GitHubを利用することで、レポジトリへのアクセス権があるメンバーに対して、プルリクエストごとにレビュアーとして割り当てることができます。プルリクエストを行ったエンジニアは、管理者に対してコードレビューの依頼が可能です。
コードレビューツールを活用すれば、Gitにおけるコンフリクトをインターフェース上で解決できます。また、追加したレビューツールと統合させることもでき、レビュー機能を拡張することも可能です。そのため、GitHub付属のコードレビューのツールは、すでにGitHubを利用している場合には、追加のインストールや設定が不要なことから最適なツールと言えます。
【参考】GitHub
Review Board
Review Boardとは、オープンソースのコードレビューツールでコードとドキュメントのレビューができます。また、コードの比較を画面でわかりやすく表示することもできます。さらに、Webサイト上で試験版を利用でき、ソフトウェアをインストールして自身のサーバーで設定することも可能です。
Review Boardはオープンソースということもあり、バージョンは日々更新されているため、使いやすいツールに日々発展しています。また、Review Boardは他のツールと比較して学習曲線が緩やかなことも特徴です。
【参考】Review Board
コードレビューはシステム開発において大切な工程の1つ!
これまでに、コードレビューの概要・注意点・コツ・指摘ポイント・ツールについて詳しく解説しました。コードレビューとは、記述したソースコードを他の方が問題ないか確認する作業のことです。コードレビューの最大の目的はシステム品質の向上です。また、新人社員の教育としてコードレビューを利用することもあります。
コードレビューのやり方として、コメントの仕方が特に重要です。コミュニケーションの一貫ともなるので、コメントで絵文字の活用や対面レビューもおすすめです。また、コメントではよかった点について積極的に褒めることも意識してください。近年ではコードレビューツールも多くあるので、コードレビューに割ける時間がない方はぜひニーズに合わせて活用してください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから