close
1. 系統僵化
若修改或新增一個功能需要同時更動許多不同模組
則此系統難以新增或變更功能,我們稱為系統僵化
現象 => 單一功能 (1 - *) 多個模組
2. 系統脆弱
若修改一個模組很容易造成其他彼此不相關的功能異常
導致系統測試成本很高,我們稱為系統脆弱
現象 => 單一模組 (1 - *) 不同功能
3. 系統黏度過高
通常解決一個問題有戰術解和戰略解
戰略解 => 對系統有長期利益的解法,通常開發時間較長,短期KPI不明顯
戰術解 => 開發時間短,但會留下技術債,長期對系統不利,短期KPI明顯
戰略解和戰術解本身沒有對錯,產品有資源和上市時間限制
所以戰略解和戰術解會一起出現在系統中
當一個系統架構讓
實行戰術解很明顯的比戰略解容易時
工程師會傾向使用戰術解增加個人KPI
而使用戰略解的工程師會被變相處罰而離開團隊
造成系統越來越傾向短期利益
此時我們稱為系統黏度過高
4. 系統複用率低
相似功能的模組多
copy and paste 現象明顯
因為每一個模組都要花成本維護
會造成維護成本明顯的大於系統所表現出來的功能
此時我們稱為系統複用率低
關於第一點和第二點解決方法就是單一責任原則,和介面分離原則
第三點不一定是問題
要看公司和產品特性
新創找投顧的和老牌公司著重地方一定不同
第四點需增強工程師們的素質和團隊合作精神
全站熱搜
留言列表