hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

伝わるコードレビュー

普段からチーム内でコードレビューについて話すことが多いので読んでみた。


コードレビューについて、って断片的なブログがよく書かれているし、語りやすいテーマなのか、いろんなブログが書かれている。
先日、コードレビューの優先度について仕事中に話していて、前に読んだ、コードレビューは最優先でやったほうがいい、というブログはどこだったかな、と探したら、大量に出てきてなかなか探せない、ということがあった。

探していた記事はこれだった。

しかし、こうやって世間のおすすめ情報を集めても、網羅的にすべてを知ることは出来ないし、記事ごとにスタンスはバラバラで、私のコードレビュー観はこうです、というものは、各々、視点を磨く必要がある、という状況だと思う。
こうやってブログを探さなくても、この本によれば、コードレビューをお願いするときには、レビュワーに期限を共有しましょう、というアドバイスが記されていて、便利。


コードレビューってテキストコミュニケーションを思い浮かべてしまうけど、こういうときには同期的に喋るのがおすすめ、など、コミュニケーション全般についてアドバイスしてくれる。
TIPSが33個並んでいて、コミュニケーションの困りごと33連発、という感じで、これだけ網羅してくれていたら、普通に仕事していて直面するトラブルはだいたいこれらのうちどれかだろう、という印象。
Pull Requestでのやりとりがうまくいかなかったときに、この本でいうとどのパターンになっているだろう?という話題提供に便利そう。
しかし、「これはうまくいかなかったね」から話を始めることになるので、特定メンバーのコメントの吊し上げみたいにならず、建設的な議論になるように気をつけたい。


コードレビューのAI活用について最近考えていたのでメモしておく。
Claude Codeは/reviewというコマンドがあって、変更中のブランチのPull Requestの内容などをレビューしてくれる。これは汎用的な観点でみてくれる。
どういう観点でレビューするか、というプロンプトは公開されているのかな?と調べたけど見つからなかった。企業秘密っぽい。

/review コードレビューをリクエスト

スラッシュコマンド - Anthropic

レビューの観点はプロジェクトごとやチームごとに整備していくのがいいと思う。
Lintにしづらいコーディング規約とか、人々がよく間違う設計上の規約、とかはプロンプトに書いておかないと、レビューで拾ってもらえない。

AI時代における本書の活用としては、この本の33パターンのTIPSをもとに人間たちのやり取りを批評してもらう、という使い方ができて、遊びとしてはおもしろかった。
TIPSのリストは目次として公開されているので、目次をプロンプトに入れて遊ぶことができる。

〇〇番のPull Requestでのレビューコメントについて、以下33項目の観点でよい点、悪い点を批評してください

1:クイズを出さない
2:命令しない
3:性善説で考える
4:相手の意図を断定しない
(以下略)


実際に仕事のPull Requestでやってみたら、この意見は、主張が意見が曖昧です、という改善点を指摘してもらえた。
「性善説で考える」だけではAIへの指示としては不足だけど、このコミュニケーションのアンチパターンにはよく遭遇しているな、と思ったら、そのあたりAI用に解説して、注力してチェックしてくれるようなプロンプトを書いておけると、よくあるパターンを回避するのに使えそう。
送信したいレビューコメントをまずAIにぶつけて、アンチパターンに引っかかっていないことを確認してから投稿する、というチェックもできると思う。

コミュニケーションの良し悪しなど、人間が直接指摘しづらく、まずは関係性を作ってからようやく指摘できるようなことを、AIを通じて指摘してもらえば、直接対決を避けられていいかもしれないし、そんな無責任なコメントがきても困ります、という気分になるかもしれない。
最近仕事しながら喋っているのは、AIレビューはAIが直接レビューしてくれるんじゃなくて、レビュワー向けの支援として、おすすめのレビュー観点をコメントしてくれる、そのうえでレビュワーがレビューコメントを編成する、くらいの使い方がいいんじゃないか、ということ。
AIがこう言ってるのでこうだそうです、ではなくて、AIはこう言っていて私もそう思います、であってほしい。