勒布朗(LeBlanc)法則:稍后等于永不(Later equals never)伦籍。
代碼混亂的代價(jià):
隨著混亂的增加善延,團(tuán)隊(duì)生產(chǎn)力也持續(xù)下降,趨向于零惰聂。當(dāng)生產(chǎn)力下降時(shí)疆偿,管理層就只有一件事可做了:增加
更多人手到項(xiàng)目中,期望提升生產(chǎn)力搓幌「斯剩可是新人并不熟悉系統(tǒng)的設(shè)計(jì)。他們搞不清楚什么樣的修改符合設(shè)計(jì)意圖溉愁,
什么樣的修改違背設(shè)計(jì)意圖处铛。而且,他們以及團(tuán)隊(duì)中的其他人都背負(fù)著提升生產(chǎn)力的可怕壓力拐揭。于是撤蟆,他們制造
更多的混亂,驅(qū)動(dòng)生產(chǎn)力向零那端不斷下降堂污。
- 《C++程序設(shè)計(jì)語言》)一書作者家肯,Bjarne
我喜歡優(yōu)雅和高效的代碼。代碼邏輯應(yīng)當(dāng)直截了當(dāng)盟猖,叫缺陷難以隱藏讨衣;盡量減少依賴關(guān)系,
使之便于維護(hù)式镐;依據(jù)某種分層戰(zhàn)略完善錯(cuò)誤處理代碼反镇;性能調(diào)至最優(yōu),省得引誘別人做沒規(guī)矩的
優(yōu)化娘汞,搞出一堆混亂來歹茶。整潔的代碼只做好一件事。
Bjarne 也提到完善錯(cuò)誤處理代碼。往深處說就是在細(xì)節(jié)上花心思辆亏。敷衍了事的錯(cuò)誤處理代碼,只是程序員忽視細(xì)節(jié)的一種表現(xiàn)鳖目。此外還有內(nèi)存泄漏扮叨,還有競(jìng)態(tài)條件代碼。還有前后不一致的命名方式领迈。結(jié)果就是凸現(xiàn)出整潔代碼對(duì)細(xì)節(jié)的重視彻磁。
糟糕的代碼引發(fā)混亂!別人修改糟糕的代碼時(shí)狸捅,往往會(huì)越改越爛衷蜓。
減少重復(fù)代碼,提高表達(dá)力尘喝,提早構(gòu)建簡(jiǎn)單抽象
命名規(guī)則:
名副其實(shí)磁浇、見名知意
避免誤導(dǎo)
做有意義的區(qū)分
使用讀的出來的名稱
使用可搜索的名稱
避免使用編碼
避免思維映射
類名
方法名
別扮可愛
每個(gè)概念對(duì)應(yīng)一個(gè)詞
別用雙關(guān)語
使用解決方案領(lǐng)域名稱
使用源自所涉問題領(lǐng)域的名稱
添加有意義的語境
不要添加沒用的語境
函數(shù):
函數(shù)的第一規(guī)則是要短小,第二規(guī)則是還要更短小
只做一件事
每個(gè)函數(shù)一個(gè)抽象層級(jí)
switch語句
使用描述性名稱
函數(shù)參數(shù)
無副作用
分割指令與詢問
使用異常替代返回錯(cuò)誤碼
別重復(fù)自己
結(jié)構(gòu)化編程