コードレビューツールを比較してみる
CodeRabbit と cubic は、いずれも AI によるコードレビューを提供していますが、その得意とする領域やレビューの切り口には違いがあります。プルリクエストのログに基づき、比較してみました。
使用したコードは、テスト的に作った、Rust 実装の PAY.JP用のクライアントツール(お蔵入り)です
1. レビューの焦点とアプローチの比較
| 比較項目 | CodeRabbit | cubic |
|---|---|---|
| 主な視点 | マクロ(全体構造・設計・流れ) | ミクロ(Rustの慣習・仕様の厳密性) |
| 得意分野 | 処理フローの可視化、設計のリファクタリング | Rustのイディオム、数値制約、アルゴリズム |
| 可視化ツール | Mermaid によるシーケンス図の自動生成 | 特になし(テキストベースの精密な指摘) |
| 指摘の性質 | 「重複を排除して共通化しよう」という設計論 | 「この数値範囲は 1-31 であるべき」という仕様論 |
| ドキュメント | 変更箇所の要約とカテゴリ分け | ドキュメントと実装の整合性、サンプルコードの正確性 |
シーケンス図
CodeRabbitのこの機能は、素直に良いなと思いました。
下図のようなシーケンス図を作成してくれます。
2. CodeRabbit の独自性と強み
CodeRabbit は、「コードが何をしているか」を抽象化して理解し、開発者に伝える能力に長けています。
システムの振る舞いの可視化
- SDK の内部処理(PayjpClient、request、PAY.JP API 間のやり取り)を Mermaid 形式のシーケンス図で図解。これにより、複雑な非同期処理の流れが一目で把握できるようになる
設計の保守性(DRY 原則)へのこだわり
-
src/client.rsにおいて、GET、POST、DELETE などの各メソッドで共通するエラーハンドリングやリクエスト送信処理を、ヘルパーメソッドとして抽出することを提案
エンドポイントの配線確認
-
ChargeServiceの各メソッドが、PAY.JP API のドキュメント通りに正しい HTTP メソッドと URL パスに紐付けられているかをマッピングして確認
レートリミット
CodeRabbit ですが、トライアルでやっていたこともあり、初回に大量のコードを処理したら、レートリミットが来てしまいました。とはいえ、1分44秒待てというくらいのものでしたが・・・
抜き忘れていた cubic が入っていたのが、検出され注意されてますね。
3. cubic の独自性と強み
cubic は、「Rust として正しく、API 仕様として堅牢か」を緻密に検証します。
Rust のイディオムと安全性の徹底
- ビルダーパターンの実装が Rust らしく(idiomatic)行われているかを評価。また、パニックを避け、適切に
Resultを返す設計になっているかを厳しくチェック
パラメータの境界値とバリデーション
-
trial_days(0-36500) やbilling_day(1-31) といった具体的な数値範囲に言及し、コード内でのバリデーションやドキュメントへの明記を求めている
アルゴリズムの数学的正しさ
- リトライ処理における「指数バックオフ(Exponential Backoff)」の実装を分析し、オーバーフローを防ぐための
saturating_powの使用や、ジッター(ゆらぎ)の加え方が適切かを数学的視点で検証
4. 両者の補完関係
この PR において、2つの AI は以下のように補完し合っているように見えます。
-
設計 vs 実装: CodeRabbit が「共通処理をまとめよう」と構造を指摘し、cubic が「この変数は
i64が適切」とデータ型や値を指摘 - 概要 vs 詳細: CodeRabbit が全体の変更をテーブル形式でサマリーし、cubic がサンプルコードと本体の実装が1行ずつ一致しているかを突き合わせている
- 連携 vs ロジック: CodeRabbit が外部 API との疎通経路を、cubic が内部のリトライ・ロジックの堅牢性を担保
まとめ
- CodeRabbit は、「アーキテクト」に近い役割。全体の設計を整え、図解によってチームの理解を助ける
- cubic は、「熟練の Rust エンジニア」に近い役割。言語特有の作法や数値の制約、細かな不整合を見逃さず、コードの堅牢性を高める
ですので、両者を併用することで、お互いを補完しあうようなレビューができるとは思いますが、同じポイントを修正しようとすることも多々あるので、よくわからない状態で複数使用するよりは、1つのレビューツールに絞った方が良いように思いました。
おまけ
後日談で、Github Copilot でのレビューを入れてみたのですが、CodeRabbit の方がレビュー速度は速いような気がしました。Github Copilot はレビューにそこそこ時間がかかります。

