什么是整潔代碼?
經(jīng)驗(yàn)豐富的程序員:
Bjarne Stroustrup: 我喜歡優(yōu)雅和高效的代碼,代碼邏輯應(yīng)當(dāng)直截了當(dāng),叫缺陷難以隱藏;盡量減少依賴關(guān)系,使之便于維護(hù);依據(jù)某種分層戰(zhàn)略完善錯(cuò)誤處理代碼;性能調(diào)至最優(yōu),省得引誘別人做沒規(guī)矩的優(yōu)化,搞出一堆混亂來。整潔的代碼只做好一件事。
Grady Booch: 整潔的代碼簡單直接。整潔的代碼如同優(yōu)美的散文。整潔的代碼從不隱藏設(shè)計(jì)者的意圖,充滿了干凈利落的抽象和直截了當(dāng)?shù)目刂普Z句。
Dave Thomas: 整潔的代碼應(yīng)可由作者之外的開發(fā)者閱讀和增補(bǔ)。它應(yīng)有單元測(cè)試和驗(yàn)收測(cè)試。它使用有意義的命名。它只提供一種而非多種做一件事的途徑。它只有盡量少的依賴關(guān)系,而且要明確地定義和提供清晰、盡量少的 API。代碼應(yīng)通過其字面表達(dá)含義,因?yàn)椴煌恼Z言導(dǎo)致并非所有必需信息均可通過代碼自身清晰表達(dá)。
Michael Feathers: 我可以列出我留意到的整潔代碼的所有特點(diǎn),但其中有一條是根本性的。整潔的代碼總是看起來像是某位特別在意它的人寫的,幾乎沒有改進(jìn)的余地。代碼作者什么都想到了,如果你企圖改進(jìn)它,總會(huì)回到原點(diǎn),贊嘆某人留給你的代碼——全心投入的某人留下的代碼。
什么樣的代碼算是整潔?
- 只做好一件事情
- 沒有重復(fù)代碼
- 代碼邏輯直接了當(dāng),只包含必須的代碼
- 盡可能少的依賴關(guān)系,便于維護(hù)
- 明確的定義,提供清晰的盡可能少的API
- 小塊的代碼塊
- 好的表達(dá)力(體現(xiàn)在變量名,方法和類的抽象等)
- 完善錯(cuò)誤處理代碼(容易被忽略的細(xì)節(jié))
- 一致性(架構(gòu)設(shè)計(jì),變量名,編碼規(guī)范等)
- 趕上期限的唯一方法:始終盡可能保持代碼整潔。
- 整潔的代碼只做好一件事。
- 整本書的主旨,不要重復(fù)代碼,只做一件事,表達(dá)力,小規(guī)模抽象。
- 要想干得快,要想快點(diǎn)做完,要想輕松寫代碼,先讓代碼易讀吧。
- 讓每次簽入時(shí),代碼都比簽出時(shí)干凈。