豆瓣:https://book.douban.com/subject/1477390/
《Code Complete》2d ed,CC2
創建子程序的正當理由
- 降低複雜度。
-
引入中間的、易懂的抽象。
-
避免代碼重複。
-
支持子類化。方便在派生類中覆蓋單一功能。
-
隱藏實現細節。
-
提高可移植性。
-
隔離複雜度。
-
提高代碼重用。
在子程序層上設計
- 對子程序而言,內聚性是指子程序中各種操作之間聯繫的緊密程度。
-
內聚性的多個方面:功能、執行順序、數據共享、臨時集合的操作、按參數決定執行的邏輯分支。
-
對各種內聚性的的一般處理方法是,按其最小獨立模塊劃分,進一步提高內聚性。
-
子程序的內部也可以只通過其他子程序進行來實現其功能,即,在子程序層上設計編碼。
好的子程序名字
- 描述子程序所做的所有事情。
-
避免使用無意義的、模糊或表述不清的動詞。
-
不要僅通過數字來形成不同的子程序名字。
-
使用合適的子程序名字,9 ~ 15 個字符爲佳。
-
函數命名要對返回值有所描述。
-
對於過程類子程序使用動詞加賓語的形式。
-
合適的情況使用對仗詞。
如何使用子程序參數
- 按照輸入-修改-輸出的順序排列參數。
-
把有類似參數的多個函數的參數保持一致的順序。
-
把狀態或出錯變量放到最後。
-
不要把參數變量當做臨時變量使用。
-
對參數有限定條件的情況需明確說明。註釋、assert 等。
-
參數限制在 7 個以內。
-
採用命名前綴等方法標識參數的輸入、修改、輸出的屬性。
-
參數的設計需配合子程序接口抽象定義的設計。
2019-12-29 - 廖傑良