- 函數(shù)要盡可能短小派撕,最好不要超過20行婉弹。而且函數(shù)應(yīng)該做一件事,做好這件事终吼,只做這一件事镀赌。
- 函數(shù)參數(shù)盡可能的少,建議一般不要超過三個(gè)际跪。如果函數(shù)看來需要兩個(gè)商佛、三個(gè)或三個(gè)以上參數(shù),就說明其中一些參數(shù)應(yīng)該封裝為類了姆打。
- 對(duì)于一元函數(shù)良姆,函數(shù)和參數(shù)應(yīng)當(dāng)形成一種非常良好的動(dòng)詞/名詞對(duì)形式。如幔戏,
write(name)
玛追。 - 函數(shù)要么做什么事,要么回答什么事闲延,但二者不可得兼痊剖。函數(shù)應(yīng)該修改某對(duì)象的狀態(tài),或是返回該對(duì)象的有關(guān)信息垒玲。兩樣都干常會(huì)導(dǎo)致混亂陆馁。
- 函數(shù)是語言的動(dòng)詞,類是名詞侍匙。
- 如果可能盡量不寫注釋氮惯,而是讓變量和函數(shù)本身見名知意。
- 暫時(shí)未完成的部分使用TODO注釋想暗,讓開發(fā)工具將未完成的部分放到工作列表妇汗。
- 沒必要在代碼里添加歸屬與署名,因?yàn)樵创a控制系統(tǒng)已經(jīng)幫我們做了這些事说莫,完全沒必要讓這樣的注釋搞臟代碼杨箭。
- 不要保留注釋掉的代碼,代碼被注釋掉說明是無用的储狭。源代碼控制系統(tǒng)會(huì)記錄這些刪掉的代碼互婿,不用擔(dān)心找不回來。
- 自上向下展示函數(shù)調(diào)用依賴順序辽狈,被調(diào)用的函數(shù)應(yīng)該放在執(zhí)行調(diào)用的函數(shù)下面慈参。
- 每行代碼不要超過120個(gè)字符,而最佳長(zhǎng)度為80到100個(gè)字符刮萌。
- 對(duì)象暴露行為驮配,隱藏?cái)?shù)據(jù)。便于添加新對(duì)象類型而無需修改既有行為着茸,同時(shí)也難以在既有對(duì)象中添加新行為壮锻。數(shù)據(jù)結(jié)構(gòu)暴露數(shù)據(jù),沒有明顯的行為涮阔。便于向既有數(shù)據(jù)結(jié)構(gòu)添加新行為猜绣,同時(shí)也難以向既有函數(shù)添加新數(shù)據(jù)結(jié)構(gòu)。
- 定義一個(gè)函數(shù)最好別返回null值敬特。返回null值基本上是再給自己增加工作量掰邢,也是在給調(diào)用者添亂。如果你打算在方法中返回null值伟阔,不如拋出異常尸变,或是返回特例對(duì)象。如果你在調(diào)用某個(gè)第三方API中可能返回null值的方法减俏,可以考慮用新方法打包這個(gè)方法召烂,在新方法中拋出異常或是返回特例對(duì)象娃承。
以上是《代碼簡(jiǎn)潔之道》前十章的讀書筆記奏夫。只記錄了筆者認(rèn)為在實(shí)際工作用比較實(shí)用的部分,沒有長(zhǎng)篇大論的摘抄历筝。主要用于閱讀備忘酗昼,方便以后復(fù)習(xí)。
本文作者: Sheh偉偉
本文鏈接: http://davidsheh.github.io/2016/03/03/「代碼整潔之道」讀書筆記/
版權(quán)聲明: 本博客所有文章除特別聲明外梳猪,均采用 CC BY-NC-SA 3.0 許可協(xié)議麻削。轉(zhuǎn)載請(qǐng)注明出處蒸痹!