“Looks Good to Me”「13章 コードレビューとAI」は参考になる
書籍情報
著者:Adrienne Braganza
発行:Manning Publications
発行日:2024年11月
発行元書籍ページ
O`REILLY Leraning(オライリー学習プラットフォーム)書籍ページ
ホームページより(ChatGPTで日本語訳)
『Looks Good to Me』で学べること:
・コードレビューの利点を理解し、抜け穴やボトルネックを事前に防ぐ方法
・客観的なコードレビュールールをチームと共に作り上げる方法
・著者・レビュアー・チームリーダー/マネージャー・チーム全体、それぞれの責任範囲を明確にする
・負担なく運用可能なガイドラインとプロトコルを整備する
・チーム全体で合意し、明文化されたポリシーを策定する
・リンティング、フォーマッティング、静的解析、テスト自動化などによるコード品質の自動チェック
・あらゆる状況に対応できる、効果的なコメントの書き方
・ペアプログラミングやモブプログラミングとの併用も検討する
・コードレビューにおけるAIの活用方法
Part 1 Code review foundations
第1章:コードレビューの重要性
第2章:コードレビューの基本構成要素についてさらに深掘り
第3章:チームが最初のコードレビュープロセスを構築するためのステップバイステップの手順
1 The significance of code reviews
悲しい事例で始まり、レビューの大切さを定義。
コードレビューとは何でしょうか?
本質的には、ソフトウェア開発者が互いのコードを確認し、あらかじめ合意された基準を満たしているかをチェックするプロセスのことです。
本書で扱われるレビュー形式は「プルリクエスト(PR)」。
13個のチームのレビュー状況を確認する質問。
質問を読んでいるだけ考えさせられます。
質問が「いいえ」になる理由を書籍では、
レビューの運用が一貫していない、持続可能でない、非効率、偏りがある、無意味に手作業が多い、あるいはそもそも存在しない。
また、レビューの際にチーム間の思いやりが欠けている、あるいは人間的なボトルネックが発生している——そうした要因によって、コードレビューは多くの開発者にとって「避けられるなら避けたいもの」になっているのです。
となっている。
書籍の目的は
「本来あるべきコードレビュー」——効果的で、共感に満ち、チームにとって無理のない形——を体験してほしい
ということ。
以降は、レビューの重要性を実績結果や必要性から説明、メンバーが尊重されることを前提にチームに浸透させる大切さを説明。
Part 4 Pairing code reviews with other practices
第11章:ペアプログラミング
第12章:モブプログラミング
第13章:AI
13 Code reviews and AI
テーマ
「コードレビューにAIを使ったらどうなる?」
一見すると、AIはコードレビューにおける多くの課題を解決してくれそうに思えます。
常に利用可能で、レビューの一貫性があり、徹底度も高く、レビュー時間も短縮できそうです。
ですが、もう少し深く掘り下げてみると、AIによるレビューにも限界があることが見えてきます。
コードレビューにおけるAIの現在と未来について、バランスの取れた視点から考察をお届けします。
コードレビューにAIを取り入れることで得られる主な利点は、次の4つに分類されます
1.レビューの迅速化
2.コード品質の向上
3.レビューの一貫性
4.大規模チームやコードベースへのスケーラビリティ
AIによる利点を説明した上で、まだAIだけではなく、人の介在が必要であるこ説明。
「文脈とドメイン知識の理解が困難であること」
「AIの能力は訓練データに強く依存する」
「AIへの過信はレビュアーのスキルを損なう可能性がある」
コードレビューに限らず、現在のAIについてまわるテーマです。
日々成長しているため、問題は薄くなっていくかもしれないと思いました。
3番目はどう考えるか難しい。
AIに開発させて、それを理解・受け入れることが一般的になると、レビュースキルは向上するという考えも出来ます。
理解せずに全て受け入れていくという世の中もがくるかもしれません。
問題発生時にAIが解決出来るのか、解決が正しいのか判断出来ないという問題になり、優秀なエンジニアは必要になる。
そのようなエンジニアはレビュースキルも高いと思われる。
現在、AI搭載コードレビューで今できることを説明
PR要約生成(PR SUMMARIES)
コード提案/即時リファクタリング(CODE SUGGESTIONS / INSTANT CODE REFACTORING)
自動コードレビュー(AUTOMATED REVIEW)
PRフィードバックチャット(PR FEEDBACK CHAT)
イシュー検証(ISSUE VALIDATION)
著者は
AIはコードレビューをより良いものへと進化させる強力な手段になり得ると考えています。
AIはレビュー全体を代行することはできませんが、時間のかかる作業や初期検査を担うことにより、総レビュー時間を大幅に短縮してくれます。
と記載している。
導入に対するレベル毎(LOW/MIDDLE/HIGH)に対応の仕方は参考になります。
一歩踏み出すことを提案しています。
この終盤の整理は使っているけど大丈夫かなとか、使ってないけど使ったほうが良いとか、という人には参考になると思います。
レビューを当たり前に実施しているが、AI導入はまだという人は、13章だけ読んでも良いと思います。
ひとりのエンジニアとして、PRする前に、個人チェックにAI活用するだけで、パワーを感じれると思います。
コーディング中から使えば尚更です。
とはいえ、そのコードを理解出来ているかは、エンジニアの力なんだと、改めて肝に銘じました。