Skip to main content

課題

モノレポでは、パッケージによって標準が異なります。Reactフロントエンドはコンポーネントパターンを重視し、NestJSバックエンドは依存性注入を重視し、共有ライブラリはAPIの安定性を重視します。画一的なレビューは機能しません。

戦略の概要

Kodusはモノレポに自然にマッピングされる3つの設定レベルをサポートしています:

ステップ1 — パッケージをマッピングする

モノレポ内の異なる領域とそのレビューニーズを特定します:

ステップ2 — ディレクトリレベルの設定を作成する

コードレビュー設定リポジトリ に移動し、設定するディレクトリをクリックします。 各ディレクトリは以下を持つことができます:
  • Kodyルール(ファイルレベルとPRレベル)
  • レビューオプション(有効にする分析タイプ)
  • 提案コントロール(重要度フィルター、最大提案数)
  • 除外パス

ステップ3 — ターゲットを絞ったルールを作成する

フロントエンドルール(スコープ:apps/web/

バックエンドルール(スコープ:apps/api/

共有ライブラリルール(スコープ:libs/shared/

ステップ4 — クロスカッティング規約にMemoriesを使用する

一部の規約はどこでも適用されます。それらをMemoriesとして教えます:

ステップ5 — ディレクトリごとに提案コントロールを設定する

トラフィックの多いパッケージにはより厳格な制限が必要な場合があります:
  • apps/web/ — 最大5件の提案、中程度の重要度フィルター(フロントエンドは速く変化する)
  • libs/shared/ — 最大15件の提案、低い重要度フィルター(安定性が重要)
  • infra/ — 最大3件の提案、高い重要度フィルター(少なくても重要なもの)

ステップ6 — 生成されたパスを除外する

ノイズを避けるためにモノレポ固有の除外設定を追加します:

ヒント

  • ディレクトリごとに2〜3のルールから始め、チームが実際にレビューでフラグを立てるものに基づいて拡張する
  • ルール継承を使用する — 組織レベルのルールはセキュリティをカバーし、リポジトリレベルは規約をカバーし、ディレクトリレベルはアーキテクチャをカバーする
  • あるパッケージではルールが頻繁に発火するが他では有効な場合は、ルールを弱めるのではなく、そのディレクトリをルールから除外する
ディレクトリ設定の詳細については、ディレクトリレベル設定 を参照してください。ルール継承については、ルール継承 を参照してください。