close

1.  系統僵化

若修改或新增一個功能需要同時更動許多不同模組

則此系統難以新增或變更功能,我們稱為系統僵化

現象 => 單一功能 (1 - *) 多個模組

 

2.  系統脆弱

若修改一個模組很容易造成其他彼此不相關的功能異常

導致系統測試成本很高,我們稱為系統脆弱

現象 => 單一模組 (1 - *) 不同功能

 

3. 系統黏度過高

通常解決一個問題有戰術解和戰略解

戰略解 => 對系統有長期利益的解法,通常開發時間較長,短期KPI不明顯

戰術解 => 開發時間短,但會留下技術債,長期對系統不利,短期KPI明顯

 

戰略解和戰術解本身沒有對錯,產品有資源和上市時間限制

所以戰略解和戰術解會一起出現在系統中

 

當一個系統架構讓

實行戰術解很明顯的比戰略解容易時

工程師會傾向使用戰術解增加個人KPI

而使用戰略解的工程師會被變相處罰而離開團隊

造成系統越來越傾向短期利益

此時我們稱為系統黏度過高

 

4. 系統複用率低

相似功能的模組多

copy and paste 現象明顯

因為每一個模組都要花成本維護

會造成維護成本明顯的大於系統所表現出來的功能

此時我們稱為系統複用率低

 

關於第一點和第二點解決方法就是單一責任原則,和介面分離原則

 

第三點不一定是問題

要看公司和產品特性

新創找投顧的和老牌公司著重地方一定不同

 

第四點需增強工程師們的素質和團隊合作精神

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 gaussian1998 的頭像
    gaussian1998

    sean huang的部落格

    gaussian1998 發表在 痞客邦 留言(0) 人氣()