- 函數要盡可能短小,最好不要超過20行。而且函數應該做一件事,做好這件事,只做這一件事。
- 函數參數盡可能的少,建議一般不要超過三個。如果函數看來需要兩個、三個或三個以上參數,就說明其中一些參數應該封裝為類了。
- 對于一元函數,函數和參數應當形成一種非常良好的動詞/名詞對形式。如,
write(name)
。 - 函數要么做什么事,要么回答什么事,但二者不可得兼。函數應該修改某對象的狀態,或是返回該對象的有關信息。兩樣都干常會導致混亂。
- 函數是語言的動詞,類是名詞。
- 如果可能盡量不寫注釋,而是讓變量和函數本身見名知意。
- 暫時未完成的部分使用TODO注釋,讓開發工具將未完成的部分放到工作列表。
- 沒必要在代碼里添加歸屬與署名,因為源代碼控制系統已經幫我們做了這些事,完全沒必要讓這樣的注釋搞臟代碼。
- 不要保留注釋掉的代碼,代碼被注釋掉說明是無用的。源代碼控制系統會記錄這些刪掉的代碼,不用擔心找不回來。
- 自上向下展示函數調用依賴順序,被調用的函數應該放在執行調用的函數下面。
- 每行代碼不要超過120個字符,而最佳長度為80到100個字符。
- 對象暴露行為,隱藏數據。便于添加新對象類型而無需修改既有行為,同時也難以在既有對象中添加新行為。數據結構暴露數據,沒有明顯的行為。便于向既有數據結構添加新行為,同時也難以向既有函數添加新數據結構。
- 定義一個函數最好別返回null值。返回null值基本上是再給自己增加工作量,也是在給調用者添亂。如果你打算在方法中返回null值,不如拋出異常,或是返回特例對象。如果你在調用某個第三方API中可能返回null值的方法,可以考慮用新方法打包這個方法,在新方法中拋出異常或是返回特例對象。
以上是《代碼簡潔之道》前十章的讀書筆記。只記錄了筆者認為在實際工作用比較實用的部分,沒有長篇大論的摘抄。主要用于閱讀備忘,方便以后復習。
本文作者: Sheh偉偉
本文鏈接: http://davidsheh.github.io/2016/03/03/「代碼整潔之道」讀書筆記/
版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 3.0 許可協議。轉載請注明出處!