こんにちは!内藤です!
プロジェクトにてCodeRabbitを使用する機会がありました。
個人的にはかなり役に立つサービスだと感じましたので、社内勉強会で報告してみました!
【勉強会】
CodeRabbitの紹介と、半年程度実際に使用してみて、もらった指摘の紹介をしました。
運用ルール
CodeRabbitを使用したプロジェクトは、 Python + Django のプロジェクトでした。
簡易的なGitHubフローを採用していたのですが、技術的にフレームワークに慣れていないメンバもおり、PR上でのレビュー負担が高いプロジェクトでした。
そこで、CodeRabbitを導入し、下記のルールで運用しました。
- vscode拡張機能で、変更に対してあらかじめCodeRabbitのレビューを受ける
- 基本的には指摘事項の対応は、PR作成前に対応しておく
- GitHub上でPRを作成する
- PR上で指摘事項については必ずすべてCloseする
- CodeRabbitの指摘事項は必ずしも正確とは言えないので、判断が付かない場合は個別に相談する
後述しますが、不正確、もしくは大嘘の指摘事項が来ることがあります。
その場合でも、指摘事項の不備をきちんと理解した上で、指摘をクローズするような運用にしました。
CodeRabbit使用感
手動でレビューをする側からすると、かなり満足度は高いです。
締め切りに追われてレビューをしていると、どうしても下記のような部分は見逃しがちです。
- 定石からはずれたコード
- コメントとコードの不整合
- 変数名のtypo
どれも動作はするのですが、細かく指摘するのは大変な内容です。
また、修正にかかる時間を考えると、なんとなく許容してしまいがちです(本当はダメだけど)
CodeRabbitは上記のような内容も見逃さずに指摘してくれますので、PR前の時点でかなりの部分が修正されます。
レビューする側からすると、結構負担が軽くなって快適でした。
ハルシネーションはある
「公式のドキュメントにはこう書いてある」として、大嘘の指摘が出たことがあります。
この時は、「公式のどこに書いてある?」「提示してくれたページに、提示された文言がないけど、どこ見れば良い?」とPR上のコメントでやりとりすることで、最終的には最初の指摘が誤りであったという結論になりました。
メンバの成長にも効果あり
かなり初期の頃に、前項の大嘘の指摘事項が来たので、プロジェクトメンバも「これは妄信してはいけない」と思ってくれたようです。
AIの指摘事項について妥当性を考えることで、結果的に自分の書いたコードに対する解像度が上がり、メンバの成長が促進されました。
実は、これが一番うれしい効果だったりします。
【ランチ】
勉強会後は、定番になりつつある大和屋さんでお昼をいただきました。
お昼時は結構混むので、予約必須ですね。
【終わりに】
勉強会ではGitHubを見ながら、実際にどんな指摘事項が来ているのか確認しました。
思った以上に実用的な指摘も来ており、結構盛り上がりました。
レビューはコード品質を保つためには重要ですが、かなり手間のかかる作業です。
こういったサービスを上手に使って、省力化していきたいですね。
使用した資料をSlideShareに上げました!
(GitHubのURLについては削っています)