工程開發
cargo-coupling avatar

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
在 GitHub 查看