アーキテクチャ分析
ArchiCore を使用してコードベースのアーキテクチャを理解し、改善する方法を学びます。
概要
ArchiCore はコード構造を分析して以下を特定します:
- モジュール依存関係
- 循環依存
- レイヤー違反
- 複雑度のホットスポット
- アーキテクチャパターン
可視化
依存関係グラフ
メインダッシュボードにはインタラクティブな依存関係グラフが表示されます:
- ノード はファイルまたはモジュールを表す
- エッジ はインポート/依存関係を表す
- 色 はモジュールタイプまたは健全性を示す
- サイズ はファイルの複雑さを反映
ナビゲーション
- ズーム マウスホイールで
- パン ドラッグで
- クリック ノードで詳細を表示
- ダブルクリック モジュールにフォーカス
アーキテクチャルール
アーキテクチャ境界を強制するルールを定義します。
ルールの作成
// .archicore/rules.json
{
"rules": [
{
"id": "layer-separation",
"name": "レイヤー分離",
"type": "import",
"severity": "error",
"config": {
"forbidden": [
{
"from": "controllers/*",
"to": "repositories/*",
"message": "コントローラーはリポジトリに直接アクセスすべきではありません"
}
]
}
}
]
}
組み込みルール
| ルール | 説明 |
|---|---|
no-circular-deps | 循環依存を防止 |
max-complexity | サイクロマティック複雑度を制限 |
max-file-length | ファイルサイズを制限 |
naming-convention | 命名規則を強制 |
ルールの検証
> /rules validate
アーキテクチャルールを検証中...
✓ no-circular-deps: 合格
✗ layer-separation: 失敗 (2 件の違反)
- src/controllers/user.ts:5 が src/repositories/user.ts をインポート
- src/controllers/product.ts:3 が src/repositories/product.ts をインポート