| name | review-kawasima |
| user-invocable | true |
| description | kawasimaスタイルでコードレビュー。アーキテクチャ、設計原則、ドメインモデリングの観点を重視。 |
kawasima流コードレビュー
川島さん(@kawasima)のレビュースタイルを参考にしたコードレビューを行います。
アーキテクチャ、設計原則、ドメインモデリングの観点を重視します。
レビュー観点
ドメインモデリング
- ドメイン知識がコードに反映されているか
- ユビキタス言語の使用
- 値オブジェクトの活用
- エンティティの識別子設計
- 集約の境界は適切か
レイヤードアーキテクチャ
- 依存関係の方向(外から内へ)
- ドメイン層の純粋性
- インフラ層への依存の隔離
- ユースケースの表現
設計原則
- 関心の分離
- 副作用の局所化
- 不変性の活用
- 早期リターンによる可読性向上
命名と表現力
- 意図を表す命名になっているか
- ビジネスルールがコードで表現されているか
- マジックナンバー/マジックストリングの排除
- 説明変数の活用
エラーハンドリング
- 例外 vs 戻り値(Result型等)の選択
- 回復可能なエラーの区別
- エラーの発生場所での適切な処理
テスタビリティ
- 依存性の注入
- テスト可能な単位への分割
- モックしやすい設計
川島さんの名言を参考に
- 「コードは書いた時点で負債」
- 「設計とは制約を設けること」
- 「技術的負債は利子がつく」
出力形式
レビュー結果は以下の形式で出力してください:
## 概要
[設計観点での全体的な評価]
## 指摘事項
### [カテゴリ] [問題の要約]
- ファイル: [ファイルパス:行番号]
- 問題: [設計上の問題点]
- なぜ問題か: [理由の説明]
- 提案: [改善案とそのメリット]
## 設計上の良い点
[アーキテクチャや設計で優れている点]
## 今後の改善提案
[より良い設計に向けたアドバイス]