代碼更清晰高效的一些經(jīng)驗
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
一、排版:
1、關(guān)鍵詞和操作符之間加適當(dāng)?shù)目崭瘛?BR> 2、相對獨(dú)立的程序塊與塊之間加空行 3、較長的語句、表達(dá)式等要分成多行書寫。 4、劃分出的新行要進(jìn)行適應(yīng)的縮進(jìn),使排版整齊,語句可讀。 5、長表達(dá)式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首。 6、循環(huán)、判斷等語句中若有較長的表達(dá)式或語句,則要進(jìn)行適應(yīng)的劃分。 7、若函數(shù)或過程中的參數(shù)較長,則要進(jìn)行適當(dāng)?shù)膭澐帧?BR> 8、不允許把多個短語句寫在一行中,即一行只寫一條語句。 9、函數(shù)或過程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采用縮進(jìn)風(fēng)格。 10、C/C++語言是用大括號‘{’和‘}’界定一段程序塊的,編寫程序塊時‘{’和‘}’應(yīng)各獨(dú)占一行并且位于同一列,同時與引用它們的語句左 對齊。在函數(shù)體的開始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進(jìn)方 式。 二、注釋 1、注釋要簡單明了。 2、邊寫代碼邊注釋,修改代碼同時修改相應(yīng)的注釋,以保證注釋與代碼的一致性。 3、在必要的地方注釋,注釋量要適中。注釋的內(nèi)容要清楚、明了,含義準(zhǔn)確,防止注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。 4、對代碼的注釋應(yīng)放在其上方相鄰位置,不可放在下面。 5、對數(shù)據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對結(jié)構(gòu)中的每個域的注釋應(yīng)放在此域的右方;同一結(jié)構(gòu)中不同域的注釋要對齊。 6、變量、常量的注釋應(yīng)放在其上方相鄰位置或右方。 7、全局變量要有較詳細(xì)的注釋,包括對其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時注意事項等的說明。 8、在每個源文件的頭部要有必要的注釋信息,包括:文件名;版本號;作者;生成日期;模塊功能描述(如功能、主要算法、內(nèi)部各部分之間的關(guān)系、該文件與其它文件關(guān)系等);主要函數(shù)或過程清單及本文件歷史修改記錄等。 9、在每個函數(shù)或過程的前面要有必要的注釋信息,包括:函數(shù)或過程名稱;功能描述;輸入、輸出及返回值說明;調(diào)用關(guān)系及被調(diào)用關(guān)系說明等。 三、命名 1、較短的單詞可通過去掉“元音”形成縮寫; 2、較長的單詞可取單詞的頭幾發(fā)符的優(yōu)先級,并用括號明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級。 3、使用匈牙利表示法 四、可讀性 1、避免使用不易理解的數(shù)字,用有意義的標(biāo)識來替代。 2、不要使用難懂的技巧性很高的語句。 3、源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。 五、變量 1、去掉沒必要的公共變量。 2、構(gòu)造僅有一個模塊或函數(shù)可以修改、創(chuàng)建,而其余有關(guān)模塊或函數(shù)只訪問的公共變量,防止多個不同模塊或函數(shù)都可以修改、創(chuàng)建同一公共變量的現(xiàn)象。 3、仔細(xì)定義并明確公共變量的含義、作用、取值范圍及公共變量間的關(guān)系。 4、明確公共變量與操作此公共變量的函數(shù)或過程的關(guān)系,如訪問、修改及創(chuàng)建等。 5、當(dāng)向公共變量傳遞數(shù)據(jù)時,要十分小心,防止賦與不合理的值或越界等現(xiàn)象發(fā)生。 6、防止局部變量與公共變量同名。 7、仔細(xì)設(shè)計結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象。 8、結(jié)構(gòu)的設(shè)計要盡量考慮向前兼容和以后的版本升級,并為某些未來可能的應(yīng)用保留余地(如預(yù)留一些空間等)。 9、留心具體語言及編譯器處理不同數(shù)據(jù)類型的原則及有關(guān)細(xì)節(jié)。 10、嚴(yán)禁使用未經(jīng)初始化的變量。聲明變量的同時對變量進(jìn)行初始化。 11、編程時,要注意數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。 六、函數(shù)、過程 1、函數(shù)的規(guī)模盡量限制在200行以內(nèi)。 2、一個函數(shù)最好僅完成一件功能。 3、為簡單功能編寫函數(shù)。 4、函數(shù)的功能應(yīng)該是可以預(yù)測的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出。 5、盡量不要編寫依賴于其他函數(shù)內(nèi)部實現(xiàn)的函數(shù)。 6、避免設(shè)計多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。 7、用注釋詳細(xì)說明每個參數(shù)的作用、取值范圍及參數(shù)間的關(guān)系。 8、檢查函數(shù)所有參數(shù)輸入的有效性。 9、檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等。 10、函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。 11、避免使用無意義或含義不清的動詞為函數(shù)命名 12、函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯誤情況。 13、明確函數(shù)功能,精確(而不是近似)地實現(xiàn)函數(shù)設(shè)計。 14、減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。 15、編寫可重入函數(shù)時,若使用全局變量,則應(yīng)通過關(guān)中斷、信號量(即P、V操作)等手段對其加以保護(hù)。 七、可測性 1、在編寫代碼之前,應(yīng)預(yù)先設(shè)計好程序調(diào)試與測試的方法和手段,并設(shè)計好各種調(diào)測開關(guān)及相應(yīng)測試代碼如打印函數(shù)等。 2、在進(jìn)行集成測試/系統(tǒng)聯(lián)調(diào)之前,要構(gòu)造好測試環(huán)境、測試項目及測試用例,同時仔細(xì)分析并優(yōu)化測試用例,以提高測試效率。 八、程序效率 1、編程時要經(jīng)常注意代碼的效率。 2、在保證軟件系統(tǒng)的正確性、穩(wěn)定性、可讀性及可測性的前提下,提高代碼效率。 3、不能一味地追求代碼效率,而對軟件的正確性、穩(wěn)定性、可讀性及可測性造成影響。 4、編程時,要隨時留心代碼效率;優(yōu)化代碼時,要考慮周全。 5、要仔細(xì)地構(gòu)造或直接用匯編編寫調(diào)用頻繁或性能要求極高的函數(shù)。 6、通過對系統(tǒng)數(shù)據(jù)結(jié)構(gòu)劃分與組織的改進(jìn),以及對程序算法的優(yōu)化來提高空間效率。 7、在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層。 8、盡量減少循環(huán)嵌套層次。 9、避免循環(huán)體內(nèi)含判斷語句,應(yīng)將循環(huán)語句置于判斷語句的代碼塊之中。 10、盡量用乘法或其它方法代替除法,特別是浮點(diǎn)運(yùn)算中的除法。 九、質(zhì)量保證 1、在軟件設(shè)計過程中構(gòu)筑軟件質(zhì)量。代碼質(zhì)量保證優(yōu)先原則 (1)正確性,指程序要實現(xiàn)設(shè)計要求的功能。 (2)穩(wěn)定性、安全性,指程序穩(wěn)定、可靠、安全。 (3)可測試性,指程序要具有良好的可測試性。 (4)規(guī)范/可讀性,指程序書寫風(fēng)格、命名規(guī)則等要符合規(guī)范。 (5)全局效率,指軟件系統(tǒng)的整體效率。 (6)局部效率,指某個模塊/子模塊/函數(shù)的本身效率。 (7)個人表達(dá)方式/個人方便性,指個人編程習(xí)慣。 2、只引用屬于自己的存貯空間。 3、防止引用已經(jīng)釋放的內(nèi)存空間。 4、過程/函數(shù)中分配的內(nèi)存,在過程/函數(shù)退出之前要釋放。 5、過程/函數(shù)中申請的(為打開文件而使用的)文件句柄,在過程/函數(shù)退出前要關(guān)閉。 6、防止內(nèi)存操作越界。 7、時刻注意表達(dá)式是否會上溢、下溢。 8、認(rèn)真處理程序所能遇到的各種出錯情況。 9、系統(tǒng)運(yùn)行之初,要初始化有關(guān)變量及運(yùn)行環(huán)境,防止未經(jīng)初始化的變量被引用。 10、系統(tǒng)運(yùn)行之初,要對加載到系統(tǒng)中的數(shù)據(jù)進(jìn)行一致性檢查。 11、嚴(yán)禁隨意更改其它模塊或系統(tǒng)的有關(guān)設(shè)置和配置。 12、不能隨意改變與其它模塊的接口。 13、充分了解系統(tǒng)的接口之后,再使用系統(tǒng)提供的功能。 14、要時刻注意易混淆的操作符。當(dāng)編完程序后,應(yīng)從頭至尾檢查一遍這些操作符。 15、不使用與硬件或操作系統(tǒng)關(guān)系很大的語句,而使用建議的標(biāo)準(zhǔn)語句。 16、建議:使用第三方提供的軟件開發(fā)工具包或控件時,要注意以下幾點(diǎn): (1)充分了解應(yīng)用接口、使用環(huán)境及使用時注意事項。 (2)不能過分相信其正確性。 (3)除非必要,不要使用不熟悉的第三方工具包與控件。 十、代碼編譯 1、編寫代碼時要注意隨時保存,并定期備份,防止由于斷電、硬盤損壞等原因造成代碼丟失。 2、同一項目組內(nèi),最好使用相同的編輯器,并使用相同的設(shè)置選項。 3、合理地設(shè)計軟件系統(tǒng)目錄,方便開發(fā)人員使用。 4、打開編譯器的所有告警開關(guān)對程序進(jìn)行編譯。 5、在同一項目組或產(chǎn)品組中,要統(tǒng)一編譯開關(guān)選項。 6、使用工具軟件(如Visual SourceSafe)對代碼版本進(jìn)行維護(hù)。 十一、代碼測試、維護(hù) 1、單元測試要求至少達(dá)到語句覆蓋。 2、單元測試開始要跟蹤每一條語句,并觀察數(shù)據(jù)流及變量的變化。 3、清理、整理或優(yōu)化后的代碼要經(jīng)過審查及測試。 4、代碼版本升級要經(jīng)過嚴(yán)格測試。 該文章在 2010/8/13 17:56:26 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |