一份資料、一條規則、一個模組的責任,都應該有明確的來源。當同一件事情散落在不同地方,需要依靠人的記憶維持一致,複雜度就會開始累積。
職涯早期,我先在 Evergreen International 把反覆出現的 EDI 轉換與介面行為整理成可配置、可共用的能力;到了 Walsin Lihwa,則進一步把個人的實作方式整理成團隊可以沿用的 UI Pattern 與訓練內容。當時我還沒有替這件事取名字,只知道重複的規則不應該各自存在。
在 Gorilla Technology Group,問題擴大到多品牌、Shared Packages 與不同交付流程。我開始用 Config-driven Framework、Monorepo、依賴邊界與 CI/CD,讓程式、版本與團隊遵循同一套結構。Folder Structure 也不再只是一份文件,而是能由圖說明、由 ESLint 執行的架構規則。
如果一條規則只能靠人記得,它就還不是系統真正的規則。
到了 Clinico,我更清楚看見「共用」不是把所有東西放在一起,而是辨認哪些行為本質相同,讓它們只存在一份;品牌差異則必須保留清楚的覆寫邊界。無論是 BPM、LIFF、多品牌服務,或 GraphQL 與 REST 之間的資料模型,我處理的都是同一件事:避免相同邏輯在產品演進中逐漸分叉。
BTSE 讓這個原則從程式架構延伸到協作。多白牌系統的修改範圍不能靠猜,跨部門的需求、交付與測試責任也不該各自解讀。因此,我嘗試把依賴關係計算出來,把受影響的頁面交給 QA,也開始要求所有角色在同一份事實上對齊。
在 Cypher Lab Sdn. Bhd.,AI Agent 進入開發流程後,這個問題變得更加直接。AI 可以快速產生程式碼,但如果架構規則散落在不同人的記憶、文件與工具中,它只會更快地放大不一致。於是我把分層、邊界、Lint、CI、文件與 Agent Contract 收斂成 Blueprint,讓人與 AI 都從同一個來源理解系統。
回頭看,我一路做的並不是彼此無關的架構工具。從可配置系統、共用 Pattern、Monorepo、影響分析,到 Architecture as Code,我始終在追求同一件事:讓系統真正的答案只有一份,而且能被理解、驗證並持續演進。