cargo-coupling
基於 Rust 的架構分析工具,用於衡量代碼耦合度、識別重構熱點,並透過 Vlad Khononov 框架實現依賴圖形可視化。
簡介
cargo-coupling 是一款針對 Rust 專案的架構分析工具,透過衡量模組之間的「正確距離」來評估代碼品質。它基於 Vlad Khononov 的「軟體設計中的平衡耦合 (Balancing Coupling in Software Design)」框架,根據整合強度、物理距離與易變性計算多維度的平衡分數。此工具專為軟體工程師、架構師與技術主管設計,協助維護健康的程式碼庫,識別諸如全域複雜度、循環依賴與級聯變更風險等架構問題。
-
多維度指標:使用 (STRENGTH XOR DISTANCE) OR NOT VOLATILITY 公式計算平衡分數,區分健康的內聚力與問題耦合。
-
互動式 Web UI:透過 Cytoscape.js 提供基於瀏覽器的視覺化介面,讓使用者能探索依賴關係圖、依據強度或易變性進行篩選,並檢查特定模組的影響範圍 (Blast Radius)。
-
熱點識別:自動根據嚴重程度對重構目標進行排名,幫助團隊優化技術債的處理優先級。
-
工作導向 CLI:提供 CI/CD 品質門禁檢查、依賴追蹤、影響分析,以及供自動化管線使用的機器可讀 JSON 輸出格式。
-
AI 整合支援:產生結構化輸出,專為 AI 程式輔助工具設計,提供提取介面或模組解耦等具體重構建議。
-
語言支援:包含日語輸出選項,提供摘要與設計決策矩陣。
-
此工具需要 Rust 環境並以 cargo 子命令形式運作,主要分析原始碼結構、模組匯入及 crate 元數據。
-
基礎分析請執行
cargo coupling ./src;若需進行視覺化探索,可使用cargo coupling --web ./src。 -
透過 .coupling.toml 設定檔,使用者可自定義閾值、排除測試路徑或手動定義模組的易變性(高或低)。
-
效能:利用 rayon 進行並行處理,能有效處理大型工作空間,並可整合至 CI/CD 管線中以強制執行模組化等級。
-
注意事項:本工具目前為實驗性階段。雖然能提供深度的架構洞察,但隨著啟發式規則與閾值的演進,建議使用者將結果與人工審查進行比對。
倉庫統計
- Star 數
- 73
- Fork 數
- 2
- Open Issue 數
- 1
- 主要語言
- Rust
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年5月4日 上午01:06