GAIO CLUB

2023年06月27日

【第4回】ガイオ用語集「コードレビュー」

ガイオ用語集

コードレビューとは

コードレビューとは、プログラムの品質向上のための重要な手法の一つです。ソースコード(プログラムコード)の記述者とは別の人が、仕様を把握した上でソースコードを検査し、バグの発見や修正、最適化を行います。コードレビューは、バグの検知だけでなくより良いコードの書き方を提案する場にもなっています。

コードレビューの種類

コードレビューには、下記のような種類があります。

コードインスペクション

コードの品質や規約に則っているかを検査する手法です。専用のチェックリストやツールを使用して、コードの品質に関するチェックを行います。例えば、変数名やコメント、構文、文法などの規約に則っているか、エラー処理が正しく行われているかなどをチェックすることができます。

メリットとしては、バグを早期に発見できることや、コードの品質を向上させることができることが挙げられます。また、コードの可読性を向上させることで、開発者同士のコミュニケーションやコードの保守性を高めることもできます。ただし、時間と労力がかかるため、チェックリストの選定やチェックの実施項目を絞ることが必要になってきます。

ペアプログラミング

二人一組で同じディスプレイに向かい、一人がソースコードを書き、もう一人がそのソースコードを検査する役割を担います。検査する人は、書かれたコードの誤りを見つけたり、改善案を提案したりすることができます。また、一緒に考えることで、問題解決の効率が上がるというメリットもあります。

一方で、二人で作業することで開発時間が長くなること、相性の悪い人と作業をするとストレスが溜まることなどが挙げられます。難易度が高い、あるいは複雑なアルゴリズムのコアな部分を開発する場合など、ケースバイケースで活用していくアプローチが効果的であると考えられます。

モブプログラミング

ペアプログラミングは二人でプログラミングを行いますが、モブプログラミングはチーム全体(群衆)で問題解決に取り組むプログラミングのことです。ソースコードを書く役割のメンバは、チーム内の他のメンバが何を知っていて、何が分からないのかを把握することができたり、不明点をその場で他のメンバが調べてくれたり、一人で取り組んだ場合には時間がかかってしまうような複雑な内容をうまく乗り越えられたり、参加者全員で楽しくコミュニケーションができるところなどがメリットとして挙げられます。

一方で、チームメンバ全員で取り組むことによる労力が必要となります。

コードレビューのメリット・デメリット

メリット、デメリットは下記の通りです。

メリット

複数人でチーム開発する場合に、コードの品質向上や設計に関する技術知識の共有、コーディングスタイル(記述スタイル)が統一される、チーム内のコミュニケーションが円滑になることなどが挙げられます。

デメリット

時間や労力がかかり、主観的な判断により議論が白熱してしまい、人間関係が険悪になることなどが挙げられます。

コードレビューのやり方

コードレビューの目的や検査項目、ルールを明確にし、レビュワー(レビューをする人)が適切に検査できるようにします。次に、コードを読み込み、バグの発見や修正、最適化の提案などを行います。最後に、フィードバックを行い、修正作業を繰り返していくことが重要です。

注意すべき点として、レビュー結果をネガティブに伝えないことが挙げられます。特に、レビューイ(レビューされる人)の人格を否定するような発言は最も避けるべき内容で、レビュー対象のソースコードに関する問題点だけでなく、その他の良い点を添えて伝えるなど、レビューイが精神的にダメージを受けないような気遣いが求められます。

また、ソースコードを個人の所有物にするのではなく、プロジェクトの所有物として取り扱うことなども重要なポイントとなります。

まとめ

・コードレビューはバグの発見や修正だけでなく、より良いコードを書くための技術知識を共有する場でもあります。
・コードレビューには、個人で行う手法と複数名で行う手法があり、それぞれにメリット・デメリットがあります。
・コードレビューは時間や労力がかかるものの、チーム全体でソースコード品質を高めることや、設計情報の共有ができます。
・コードレビューは事前に目的や検査項目などを明確にした上で、結果の報告には細心の注意を払う必要があります。

人気のコラム

最新のコラム