如何處理複雜度是軟體開發最核心的問題
Steve McConnell 在其經典著作《Code Complete》中,提出的一個核心觀點是:
#如何處理複雜度是軟體開發最核心的問題
我非常認同這個觀點,因為人類大腦容量有限,大概只能同時記住 7 項內容,而軟體包含的元素非常複雜遠超過 7 項。所以,要實現可維護的軟件,我們必須想盡辦法去降低其複雜度。
具體來說,我們在開發時,要時刻注意會增加代碼複雜度的「壞味道」,比如:
- 元件間依賴混亂,職責不清晰;
- 元件、文件、函數太大,包含的內容太多;
- 使用不必要的、複雜的設計範式;
- 函數、接口參數太多等。
解決複雜度問題的基本原則是,把一個系統拆解為多個子系統,用抽象和分層的方法,讓我們同時只面對有限的信息,並且能夠有條理地深入到每一個子系統中查看細節。
原始資料
- 發表時間:2019/12/17
- 原文連結