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