参考にしたい。コードレビューガイドラインまとめ
コードレビューをはじめる、効率化する上でガイドラインの存在は欠かせません。もしガイドラインがないと、レビュー内容が恣意的になってしまい、レビュアーによって評価がバラバラになってしまいます。また、レビュアーもどこをチェックすれば良いのかがはっきりせず、レビューに時間がかかってしまいます。
そこで、多くの組織で独自のコードレビューガイドラインが作成されています。一から作成しているところもありますが、多くの場合ベースになる既存のガイドラインを基にしているのではないでしょうか。
今回は、すでに公開されている各社のガイドラインを集めてみたので、自社のガイドライン策定に役立ててください。
おそらく、最も参考にしている組織が多いのではないかと思われるのがGoogle Engineering Practices Documentation | eng-practicesです。有志による日本語版もあります。
Google Engineering Practices Documentation (日本語訳) | google-eng-practices-ja
コードレビュアーはどんな観点でレビューすべきか、コードレビューの仕方などまさにコードレビューへの向き合い方をまとめているドキュメントになります。
GitLab
GitLabはオープンソースソフトウェア、そしてリモート組織として有名ですが、そのコードレビューが明文化されています。
Code Review Guidelines | GitLab Docs
ここでは、コードレビューを行ったり、コードをレビューしてもらったりするためのアドバイスやベストプラクティスが書かれています。組織内メンバーはもちろんのこと、CE(コミュニティエディション)に対するコミュニティからの貢献に対するコードレビューについても取り上げられています。
SmartBear
SmartBearでは、コードレビュープロセスの大事なポイントを12個のステップとしてまとめています。
Understanding the Code Review Process | SmartBear
ステップの見出しだけを並べると、以下のようになっています。
- 早めに期待値設定を行う
- 定量化可能な目標を決める
- 指標を測定するシステムを導入する
- 十分な時間の確保
- ピアレビュー文書を用意
- 20分間の休憩
- 不具合が修正されているか確認する
- チームビルディングのアクティビティとしてコードレビューを利用する
- バックシート・コーダーにならない
- 毎日コードレビューを行う
- コード・レビュー・ツールを使う
- チェックリストを活用する
yelp
2017年のyelpのエンジニアリングブログ記事です。
コードレビューのあるべき姿として、以下の5つを挙げています。
- コードが手元の要件に対して、正しく効果的な解決策であることを検証する
- コードが保守可能であることを確認する
- コードベースに関する共有知識を増やす
- 定期的なフィードバックでチームのスキルを磨く
- 開発者の時間を圧迫しない
Nuxeo
NuxeoはオープンソースのCMSなど(現在はローコードプラットフォームと呼ばれているようです)を提供しており、コミュニティからの貢献もあるのでコードレビューを公開しています。
Code Review Guidelines | Nuxeo Documentation
プルリクエストを作成する側のアクション、レビュアーの心構えやチェックリスト、レビュー人数(少なくとも2人)など包括的にドキュメント化されています。
Java
オープンソースのプロダクトでは、多かれ少なかれ(または公式非公式問わず)コードレビューガイドラインが作成されています。こちらはJavaのコードレビューガイドラインです。
Guidelines for Java code reviews • DeepSource
Javaのガイドラインでは、Javaの書き方レベルでの注意点などが明記されています。基本はコード規約に沿った上で、より安全なコードを書くためのガイドラインとして利用できそうです。
Philipp Hauerさん
Philipp Hauerさんによる、人間のためのコードレビューガイドラインです。
Code Review Guidelines for Humans
レビュアーとしての心構え、向き合い方、メッセージの伝え方などがまとまっています。「謙虚であれ」「質問をする」「賞賛する」などのトピックが挙げられています。
コードレビューを効率化するためにツールを利用する
コードレビュープロセスを効率化するのに、ツールを活用がお勧めです。この時、主に2パターンのツールがあるでしょう。
- 静的解析ツール
- AIコードレビューツール
静的解析ツールは、個人の開発環境に導入したり、CI/CDパイプラインへの導入がお勧めです。PRに対して自動的に実行され、ごく基本的なコーディング規約への違反をチェックできます。レビュアーとしては、同じような指摘を避けられるようになり、静的解析ツールを通過していることで、一定の品質に達しているであろうことを期待できます。
AIコードレビューツールは、さらに深いレビューを行い、インサイトを提供してくれます。レビューで見るべきポイントなども、組織やプロダクトによってカスタマイズできるのも魅力です。不具合発生につながりそうなポイントを指摘してくれたり、コーディングのベストプラクティスに基づいた指摘によって、プログラマー自身のスキル向上にも貢献します。
私たちの提供するCodeRabbitは、そんなAIコードレビューサービスの一つです。GitHubやGitLab、Azure DevOpsなどに対応し、2クリックで簡単にはじめられます。すでに1,000以上の組織で導入されており、コードを学習に利用しないなどのセキュリティを重視している点が評価されています。
AI Code Reviews | CodeRabbit | Try for Free
まとめ
今回は企業などが公開しているコードレビューガイドラインを紹介しました。ガイドラインがない状態でコードレビューをはじめても、なかなか効果が上がらないでしょう。他社のガイドラインを参考にしつつ、ぜひ自社のガイドライン策定に取り組んでください。
Discussion