格式規(guī)范
好的代碼格式果善,意味著代碼的整潔和對(duì)細(xì)節(jié)的關(guān)注。
- 如果是在團(tuán)隊(duì)中工作成肘,則團(tuán)隊(duì)?wèi)?yīng)該一致同意采用一套簡(jiǎn)單的格式規(guī)則酗昼,所有成員都要遵守,并且貫徹塘偎。使用能幫助你應(yīng)用這些格式規(guī)則的自動(dòng)化工具也很有幫助。
格式的目的
- 先要明確一下,代碼格式很重要言秸。因?yàn)?strong>格式關(guān)乎溝通,而溝通是專業(yè)開(kāi)發(fā)者的頭等大事迎捺。
- 或許你認(rèn)為讓代碼能工作才是專業(yè)開(kāi)發(fā)者的頭等大事举畸。但是實(shí)際上,修改和維護(hù)代碼才是開(kāi)發(fā)者花時(shí)間花得最多的地方凳枝。只有擁有良好的代碼格式抄沮,代碼的可讀性才會(huì)增加,這對(duì)日后修改和維護(hù)產(chǎn)生深遠(yuǎn)影響岖瑰。
垂直格式
- 像報(bào)紙學(xué)習(xí)叛买。源文件要像報(bào)紙文章一樣,名稱如同標(biāo)題一樣蹋订,簡(jiǎn)單且一目了然率挣。源文件最頂部應(yīng)該給出高層次概念和算法,細(xì)節(jié)應(yīng)該往下漸次展開(kāi)露戒。
- 在不同的思路之間的代碼以空白號(hào)為分隔椒功。因?yàn)槊總€(gè)空白行都是一條線索捶箱,標(biāo)識(shí)出新的獨(dú)立概念,往下讀代碼時(shí)你的目光动漾,總會(huì)停留在空白行之后那一行丁屎,而且這樣是代碼,思路更清晰更易懂旱眯。
- 靠近的代碼行則暗示了他們之間的緊密關(guān)系悦屏,緊密相關(guān)的代碼應(yīng)該相互靠近。
垂直距離
- 變量聲明盡可能靠近其使用位置键思。
- 關(guān)系密切的概念础爬,不要放到不同文件中。
- 概念相關(guān)的代碼應(yīng)該放到一起吼鳞,相關(guān)性越強(qiáng)看蚜,彼此之間的距離就該越短。
- 循環(huán)中的控制變量(for(int i...))赔桌,應(yīng)該總是在循環(huán)語(yǔ)句中聲明供炎。
- 類的屬性變量應(yīng)該全部在類的頂部聲明,而不是東一個(gè)西一個(gè)疾党,使人很難找到音诫。
- 若某個(gè)函數(shù)調(diào)用另一個(gè),就應(yīng)當(dāng)把他們放在一起雪位。
垂直順序
- 最上面的代碼應(yīng)該是最抽象的竭钝,底部細(xì)節(jié)應(yīng)該在下面實(shí)現(xiàn)。這樣就能像報(bào)紙文章一樣雹洗,最重要的概念在最前面香罐,底部細(xì)節(jié)最后才會(huì)出來(lái)。
橫向格式
一行的上限是120個(gè)字符时肿。短代碼行庇茫,利于理解,所以應(yīng)該盡力保持代碼行短小(在30個(gè)字符以內(nèi))
- 水平方向上的區(qū)隔與靠近螃成。在賦值操作符周圍加上空格字符達(dá)到強(qiáng)調(diào)目的(a = 2而不是a=2)旦签。
- 水平對(duì)齊。不需要無(wú)意義的水平對(duì)齊寸宏,比如在那類里面聲明屬性的時(shí)候宁炫,那些無(wú)意義的水平對(duì)齊會(huì)在強(qiáng)調(diào)不重要的東西,會(huì)把讀者的目光從真正的意義上拉開(kāi)击吱。
縮進(jìn)
if淋淀,while遥昧,函數(shù)后面都應(yīng)該加上縮進(jìn)覆醇。違反縮進(jìn)規(guī)則的代碼朵纷,通常可讀性極差永脓。
團(tuán)隊(duì)規(guī)則
每個(gè)程序員都要自己喜歡的格式規(guī)則袍辞,但如果在一個(gè)團(tuán)隊(duì)中工作,就必須是團(tuán)隊(duì)說(shuō)了算常摧。
- 一組開(kāi)發(fā)者應(yīng)當(dāng)認(rèn)同一種格式風(fēng)格搅吁,啟動(dòng)項(xiàng)目之前制定一套編碼風(fēng)格,所花時(shí)間很短落午,卻能為為以后閱讀他人代碼谎懦、團(tuán)隊(duì)合作提供了巨大的便捷,并且整個(gè)軟件系統(tǒng)是由一系列讀起來(lái)的不錯(cuò)的溃斋,代碼風(fēng)格統(tǒng)一的代碼文件組成界拦。絕對(duì)不要用各種不同的風(fēng)格來(lái)編寫(xiě)源代碼,這樣會(huì)增加其復(fù)雜度梗劫。