technology
コードレビューの観点とは?やり方や便利なツールについても紹介!
アンドエンジニア編集部
2021.06.08
この記事でわかること
コードレビューとは、記述したソースコードを自分以外が問題ないか確認する作業のこと
コードレビューの最大の目的は、システム品質の向上
コードレビューツールを利用することでレビューの効率の向上が期待できる

コードレビューにおける重要な観点

woman

コードレビューとは、作成したソースコードをレビューすることで、記述ミスやバグがないかを確認する作業のことです。プログラムの品質を向上させるために、必要不可欠な工程といえます。ここでは、コードレビューの重要な観点を把握するために、まず概要や目的について詳しくご紹介します。

コードレビューの概要

端的に説明すると、コードレビューは記述したソースコードを自分以外の誰かに問題ないかを確認してもらうことです。レビューを行う側の人をレビュアー、レビューされる側の人をレビュイーといいます。レビュアーは複数いる場合もあります。

システム開発の際にコードレビューはよく実施されます。例えば、システムの品質を担保するために、レビュアーの許可がない場合にはコードを修正することができない、というルールを作るプロジェクトもあります。プロジェクト発足した最初に、レビューのルールを決めることが一般的です。

コードレビューの目的

コードレビューの大きな目的は、システム品質の向上です。レビュアーに作成したコードに対して指摘してもらうことで、コードをより良い方向に修正することが可能です。例えば、人間がコードを記述する場合、ケアレスミスは必ずといってもいいほどあります。そのため、コードレビューを行うことで客観的にコードを見てもらえるため、ケアレスミスに気づきやすく、結果としてシステム品質の向上が期待できます。

また、コードレビューは新人教育のために実施されることも多いです。新人社員の場合、実務経験が豊富な上司と比較するとコードの実装スキルがありません。そのため、ソースコードを読む作業を通じて、新人社員はコーディングについて多くのことを学ぶことができます。例えば、他人のコードを読むことによって「コードの設計」「コードの書き方」「フレームワークのスキル」などを勉強することが可能です。コードレビューを通じて開発者の意図を学べるため、スキルアップにつながります。

新人社員の場合はコードを丁寧に読むことが多く、実務経験が豊富な社員だとコードレビューを行うことに慣れていることが多いため、ケアレスミスを見逃してしまうこともあります。そのため、新人社員がコードレビューを行うことで小さなミスを拾えることもできるので、新人教育も兼ねてコードレビューを行うことも少なくありません。

コードレビューのやり方

coffee

コードレビューの目的が理解できたら、次は方法が重要です。コードレビューの方法はプロジェクトによって異なることも多く、ここでは一般的なコードレビューの方法について詳しく紹介します。例外もあるので、注意が必要しましょう。

コメントの種類

コードレビューをする際のコメントは、主にレビュイーが対応しやすいように記述します。そのためには、行間のない短文で理解しやすいコメントが大切です。コメントは、対応必須の「MUST」とレビュアーの意見「IMO(In My Opinion )」の2つに分類するとよいです。また、細かい指摘を行う項目など他の要素を使うこともあります。

コメントの仕方

コードレビューにおけるコメントは、コミュニケーションの一貫にもなります。そのため、コミュニケーションがスムーズになるようなコメントの仕方も大切です。文字のみだけではなく、絵文字や記号を使用することもプロジェクトによってはあります。

また、コードレビューでは相手の良い点を褒めることも大切です。例えば、上司がレビュアーで新人社員がレビュイーの場合に、新人社員が成長した点をコメントしてあげると、新人社員のモチベーションアップにもつながります。またコメントをメンバーに共有することで、チーム全体の学びにもなるでしょう。

根拠を示す

レビュアーがコードレビューの際にコメントを記載するときは、理由や根拠もきちんと記述しましょう。コメントで「〇〇に修正してください」だけだと、レビュイーは「なぜ?」と疑問を抱いてしまうことがあるので、根拠を示すことで新人社員の学びにもつながります。インターネット上の信用できる参考文献を利用して、コメントをした理由を記述しましょう。

進捗に応じて確認するポイントを変える

進捗状況によって、コードレビューをするポイントを変えることも重要です。作業途中のコードを「WIP」として、プルリクエストを出す方法もあります。WIPとは、「work in progress」の略称で、進行中や作業中のことを指します。プルリクエストとは、コードの修正をレビュワーに通知して、マージを依頼することです。WIPの場合は、変更の前提となるところを重点的に確認します。

例えば、コードの設計や実装の方針について問題はないかを確認することが多いです。また、この段階では細かい部分の指摘は不要です。コーディングが完了した後に、細かい部分についてもレビューを行います。

マージ後でも修正可能かを意識する

マージを行った後でも、修正可能かどうかを意識することは大切です。レビューの修正はマージを実施した後でも少ない工数で修正することができます。一方、データベースの変更は修正するための工数が大きくなるので、マージ後に修正が大変かどうかを意識してレビューを行うことも重要です。

口頭でのレビューも利用する

コメントのみでのレビューが難しいこともあります。その場合は対面レビューの口頭でレビューを行うことがおすすめです。ただし、指摘内容についてはコメントとして残しておいた方が、後でエビデンスとして活用できます。また、プロジェクトメンバーに共有することもできるので、チーム全体の学びにもつながるでしょう。

コードレビュー観点のチェックリストを用意する

コードレビューをする際には、チェックリストの準備も大切です。チェックリストを用意することで、コードレビューする際の抜けや漏れを減らすことができます。また、コードレビューをどのような観点で行うか、チームで認識合わせが可能です。

コードレビューツール

laptop

コードレビューは、工数やコストが多くかかることも少なくありません。近年ではIT人材の人手不足が深刻化していることもあり、納期などの問題からコードレビューができないことも多いです。品質を一定に保つためには、レビュー効率を上げる必要があります。ここからは、レビュー作業の効率向上に用いられるコードレビューツールを2つご紹介します。他にも多数のコードレビューツールが存在しているので、ぜひニーズに合うツールを探して利用してみましょう。

GitHub

GitHubには、プルリクエストの画面にコードレビューのツールがあります。無料でも使用できますが、データ量やアクション数などに制限があるため、企業単位でツールを活用する場合には有料プランの選択がおすすめです。GitHubを利用することで、レポジトリへのアクセス権があるメンバーに対して、プルリクエストごとにレビュアーとして割り当てることができます。プルリクエストを行ったエンジニアは、管理者に対してコードレビューの依頼が可能です。

コードレビューツールを活用すれば、Gitにおけるコンフリクトをインターフェース上で解決できます。また、追加したレビューツールと統合させることもでき、レビュー機能を拡張することも可能です。したがって、GitHub付属のコードレビューのツールは、すでにGitHubを利用している場合には、追加のインストールや設定が不要なことから最適なツールといえます。

Review Board

Review Boardとは、オープンソースのコードレビューツールでコードとドキュメントのレビューができます。また、コードの比較を画面でわかりやすく表示することもできます。さらに、Webサイト上で試験版を利用でき、ソフトウェアをインストールして自身のサーバーで設定することも可能です。

Review Boardはオープンソースということもあり、バージョンは日々更新されているため、使いやすいツールに日々発展しています。また、Review Boardは他のツールと比較して学習曲線が緩やかなことも特徴です。

コードレビューはシステム開発において大切な工程の1つ!

checklist

これまでに、コードレビューの詳細・やり方・ツールについて詳しく解説しました。コードレビューとは、記述したソースコードを他の方が問題ないか確認する作業のことです。コードレビューの最大の目的はシステム品質の向上です。また、新人社員の教育としてコードレビューを利用することもあります。

コードレビューのやり方として、コメントの仕方が特に重要です。コミュニケーションの一貫ともなるので、コメントで絵文字の活用や対面レビューもおすすめです。また、コメントではよかった点について積極的に褒めてあげましょう。近年ではコードレビューツールも多くあるので、コードレビューに割ける時間がない方はぜひニーズに合わせて活用してみてください。

Twitterをフォローしよう!
この記事をシェア
Twitter
Facebook
LINE
Hatena
アンドエンジニアの公式LINEができました! ピッタリの記事や役立つ情報が届きます!

編集部オススメコンテンツ

Sponsored
友達追加はこちらから!
アンドエンジニア編集部
Sponsored
この記事をシェア
Twitter
Facebook
LINE
Hatena
アンドエンジニアの公式LINEができました! ピッタリの記事や役立つ情報が届きます!

編集部おすすめコンテンツ

Sponsored
友達追加はこちらから!
アンドエンジニア編集部
Sponsored