大多數團隊都有架構圖。但較少有值得信任的架構圖。
程式碼庫是系統唯一完全即時的記錄,但逐檔閱讀
並不是查看邊界、相依性方向、資料
存取,以及系統形狀隨時間變化方式的好方法。
因此本週我正在進行一個刻意簡單的實驗:
對一個儲存庫執行架構 X 光檢查,並找出你原本不知道的一件事。
挑戰
你需要 Python 3.10 或更新版本:
pipx install archsteer
cd your-repo
archsteer xray
Enter fullscreen mode Exit fullscreen mode
開啟 .archsteer/report.html,然後尋找一個驚喜:
- 一個跨越你以為乾淨邊界的相依性;
- 一個擁有比其名稱所暗示更多系統權責的模組;
- 在非預期層級的資料存取;
- 一個沒人記得的外部呼叫點;
- 仍然存在於當前架構中的遺留架構;或
- 應該產生 ADR 的結構變更。
分享發現、如果模型錯誤請開立 issue,或將結果
保持私有。三種結果都有用。
功能與限制
ArchSteer 會靜態讀取儲存庫並輸出從程式碼衍生的模型、
即時架構文件、圖表、演進摘要,以及針對邊界變更的 ADR 草稿。
它在本機執行、不會執行目標
程式碼、不會上傳儲存庫,且不需要帳戶。
此模型是啟發式的。它應該是架構師可以策展的即時起點,
而不是證明系統以特定方式運作的形式證明。錯誤的邊界判斷正是我希望
被回報的結果。
目前支援的語言包括 Python、TypeScript/JavaScript、Java Spring,以及
Salesforce Apex。
為什麼在 AI 編碼代理盛行時更重要
編碼代理會從編輯周圍的檔案中學習本地模式。在
半遷移的程式碼庫中,遺留範例多於目標範例,因此代理
可能產生完全合理的程式碼,卻讓架構向後退。
一個準確的即時模型可以建立控制迴路:
- 推導程式碼實際實作的架構;
- 宣告一個目標不變量;
- 將相關不變量放入編碼代理的檔案範圍上下文;
- 檢查產生的程式碼;以及
- 僅阻擋新增的違規,讓交付繼續同時降低技術債。
此挑戰從第一步開始,因為它應該在團隊撰寫任何規則之前就提供價值。
參與
執行:
pipx install archsteer && archsteer xray
Enter fullscreen mode Exit fullscreen mode
然後分享一個令人驚訝的發現,並連結到
GitHub 上的 ArchSteer,或提交
你能找到的最具體範例,說明模型對你的架構判斷錯誤。
ArchSteer 是免費且採用 MIT 授權。
原文發表於 archsteer.com。我開發 ArchSteer,歡迎對模型提出坦率的回饋。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.