作為程序員和自身工作相關(guān)的就是每天編寫(xiě)的代碼了,那么開(kāi)發(fā)人員良好的編碼風(fēng)格應該具有哪些特征呢?下面來(lái)詳細了解一下:
代碼的版面和樣式比較多,每個(gè)項目組基本上都有自己的編碼規范,大家都希望形成良好的代碼風(fēng)格,以便提高代碼的可讀性,方便生成維護文檔,減少缺陷出現的幾率等,在Java的開(kāi)發(fā)中一般都是按照《TheJavaLanguageSpecification》(即《Java編碼規范》)來(lái)制定編碼規范的,但是基本上每個(gè)項目組都會(huì )有一些自己的個(gè)性特征,大連軟件開(kāi)發(fā)不去評說(shuō)哪一個(gè)代碼風(fēng)格優(yōu)秀,哪一個(gè)風(fēng)格較差,而是來(lái)分析一下優(yōu)秀團隊的編碼風(fēng)格應該具有哪些特征。
(1)整潔的代碼
不管代碼風(fēng)格的定義有多優(yōu)秀,有多適合開(kāi)發(fā)人員,如果代碼結構混亂不堪,即使效率再高,也會(huì )使維護難以持續。大連軟件開(kāi)發(fā)中我們知道,代碼首先是給人看的,然后才是給機器執行的,對于機器來(lái)說(shuō),只要代碼符合規范,不在乎其格式是否整潔、是否有縮進(jìn)、是否有回車(chē),只要代碼正確就能正常運行,而人就不同了,沒(méi)有縮進(jìn)沒(méi)有回車(chē)的代碼基本上是不可閱讀的。試想一下一個(gè)沒(méi)有標點(diǎn)符號的文檔,整篇就是一個(gè)段落,能讀懂的基本上是天才(或許你會(huì )說(shuō)古代的詩(shī)詞就是沒(méi)有標點(diǎn)符號的。確實(shí),但它有韻律)。
(2)統一的代碼格式
從一個(gè)團隊中誕生的代碼應該具有一致的風(fēng)格,要使用下掛式括號就全部使用下掛式括號,要使用tab縮進(jìn)就全部使用tab縮進(jìn),要使用小駝峰方式命名就全部使用小駝峰方式命名,不要帶有個(gè)人色彩的風(fēng)格標識。這樣可以讓我們的代碼看起來(lái)很職業(yè),而不是一幫烏合之眾產(chǎn)生的“稻草”式代碼。
統一的代碼風(fēng)格還要求具有連貫性,我們應該在不同的模塊、層級中使用相同的編碼風(fēng)格,而不能在展現層使用一種編碼,在邏輯層又使用另外一種編碼風(fēng)格。一個(gè)項目的編碼風(fēng)格不應該因為所處的功能區不同而有所差異。當然,若使用多種異構語(yǔ)言開(kāi)發(fā)項目,則可以考慮為不同的語(yǔ)言提供不同的規范。
(3)流行
一種潮流風(fēng)行世界的時(shí)候必然有其誕生的原因(感冒也包括在內),一種編碼格式的流行也必然有它存在的理由,我們完全可以借鑒流行的編碼格式,沒(méi)有必要對這種風(fēng)格進(jìn)行重塑,而且使用流行風(fēng)格可以讓新成員盡快融入項目,避免出現進(jìn)入一個(gè)新環(huán)境而出現茫茫無(wú)助的狀態(tài)。
不要讓您的代碼規范標新立異,獨樹(shù)一幟,跟隨“風(fēng)尚”也許是一種省事、省力、省心的最好編碼風(fēng)格。
(4)代碼要便捷
制定出來(lái)的編碼規范必須有通用開(kāi)發(fā)工具支撐,不能制定出只能由個(gè)別開(kāi)發(fā)工具支持的規范,甚至是綁定在某一個(gè)IDE上。在小范圍內獨樂(lè )樂(lè ),可以提升代碼的友好度,方便使用,但很難大范圍內推而廣之,特別是很難上升到工程級別。代碼風(fēng)格是為一個(gè)團隊準備的,如果團隊中就只有一個(gè)開(kāi)發(fā)人員,基本上代碼風(fēng)格不會(huì )有太大差異,這是習慣和個(gè)性使然,但是如果團隊中有多個(gè)成員,就需要防止給開(kāi)發(fā)人員過(guò)度的自由了,不符合開(kāi)發(fā)規范的代碼要堅決予以重構,以使團隊代碼風(fēng)格一致。
現在的項目中源代碼逐漸增多,完全依靠人工來(lái)做代碼走查很難查出問(wèn)題,我們可以使用工具來(lái)統計代碼,這里推薦使用Checkstyle,它可以自定義代碼模板,然后根據模板檢查代碼是否遵循規范,從而減少枯燥的代碼走查。
Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號 google網(wǎng)站地圖 百度網(wǎng)站地圖 網(wǎng)站地圖
公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話(huà):0411-39943997 QQ:2088827823 37482752
法律聲明:未經(jīng)許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明