特に個人開発者向け!CodeRabbit(自動レビューツール)を使えばコードの健康まで得られることに気づいた話
↑by Image Creator from Microsoft Bing
CodeRabbitのレビュー
もう初回コードレビューはAIに任せる時代になった - CodeRabbit -を読んだ。レビューはとても負担が多く、時間もかかる。これをAIがやってくれたら、こんな有難いことはない。というわけですぐに使ってみた。
CodeRabbitを使った結論
結論から書くと、レスポンスも速く、技術レベルも高く、気を使う必要もない上に、コミュニケーションも出来る。若干問題に対して答えを言いすぎるキライはあるが、これも使い方に依る。さらにレビューを意識することでコードの健康まで得られてしまう。良いことしかない。
CodeRabbitの価格体系
気になっていたのはやっぱり価格だが、調べてみたらオープンソースであれば無料!だった。また有料も以前はOpenAPIのトークン使用量が別途かかっていたようだが、現在は月額固定費だけになっていた。こっちの方がありがたい気がする。
CodeRabbitの設定
ログイン時にGitHubかGitLabを選ぶ(…Azure DevOpsは?)。ログインするとリポジトリが一覧で出る。特に設定しなくても使えるが、レビューの言語は英語がデフォルトなので、日本語にしたいなら設定する必要がある。因みにリポジトリ毎で一括設定はなかった。これだけで準備はOK!
CodeRabbitによるサマリーとウォークスルー
これでPRを作れば、先ずSummaryとWalkthroughを作ってくれる。正直個人で使っている自分的にはどっちでも良い機能だが、他人の書いたソースコードを読むのであれば最初に概要があるのは良いかもしれない。
CodeRabbitによるポエム
あとなぜか毎回ポエムが付く。しかも定例文なのかと思ったらPRの内容をベースにして毎回違うぽい。設定で外すことも出来るが、一応毎回読んでいるw。
CodeRabbitによる自動レビュー
そしてレビュー。大体10分もしないうちにレビューをつけてくれる。初めてのレビューは思ってよりしっかりした文章でコードまで書いてくれた。
人間はレビューには礼儀として返答する
最初のレビューは内容が納得しづらいものだったので、「言っていることは分けるけれど、それは違うと思う」と返した。ただの礼儀として返答したつもりだったので、これで終わりだと思っていた。
礼儀としての返答にまさかの返答
ところが、レビューの返答に、さらに返答が付いた。これはビックリした。ここでさらにCodeRabbitの評価が上がった。さらにその後もわりとしっかりしたコミュニケーションが出来た。若干噛み合わないやり取りもなくはなかったがおおむね満足できるレビューだった。
コミュニケーション出来れば間違った指摘すら価値が出る
更に何度かやってみたが、レビューの精度はなかなかでかなり好感触。とくに印象的だったのがこのレビュー。
指摘内容(この時だけなぜか英語だった…)を色々考えてみて、どうやってもそうはならない気がしたので、もう少し詳細にどんなケースでそうなるのか?と聞いたら、「ごめんなさい、私のコメントは誤解を招くものでした。(原文ママ)」と謝罪してきた。
こんな失敗はChatGPTでもよくあることかもしれないけれど、これがレビューという形になることで個人的には理解が深まった気がした。人間相手でも間違ったツッコミで考えが強化されるのはよくあることだと思う。コミュニケーション出来れば間違った指摘すら価値が出る。
レビューをする事実がさらに大きなメリットにつながる
自動レビューをしてもらえるだけで使う価値は十二分にあるが、さらに大きな恩恵があることに気づいた。個人で開発していると、ブランチなんか切らなくても衝突しないのでひたすらmainだけで作り続けたりする。ところがレビューをしてもらえると、当然「最適な」レビューをしてもらいたくなる。で、あるなら最適になるようなPRを意識するようになり、ブランチを切って変更をなるべく最小のものにしようとする。チーム開発なら当たり前のことだが個人開発でキッチリやっている人はなかなかの兵だと思う。つまり、自動レビューによってコードが健康に保たれる。これは個人開発者にとっては自動レビューよりも価値があるかもしれない。
まとめ
自動レビューはメリットが多い。まず何といってもレスポンスが速い。大体10分以内にレビューをしてくれる。常にこの時間で返すのは人間には相当厳しい。コメントが残っていたり、適当な名前を付けていたりするとほぼ確実に突っ込んでくれる。そういうケアレスミスは人間のレビューアに指摘されると胸が痛むが気にしなくて良いのも自動レビューの強み。コミュニケーションの相手にまでなってくれるので必ずしも正しい内容でなくても良い。しかもレビューしてもらえることで個人開発者でもコードが健康になる力が働く。これが無料なのは本当に個人開発者にとって最高のパートナーだと思う。
直ぐにでも始めないとCodeRabbitはなくなるかもしれない。きっと近い将来GitHubとかが買収してしまうと思うから😋
Discussion
プログラマ以外の人にも分かりやすいメタファーとして「ルンバを買うと床にモノを置かなくなる」を思いついたのでこの内容をイベントでLTしてきましたー。