軟件開發(fā)流程-程序編碼
2014-04-28 18:22:07 訪問:
一、軟件編碼-簡介
隨著軟件產(chǎn)品的功能增添和版本的提高,代碼越來越龐雜,源文件也越來越多, 對濟南軟件開發(fā)人員來說,除了保證程序運行的正確性和提高代碼的運行效率之外,規(guī)范風(fēng)格的編碼會對軟件的升級、修改、維護帶來極大的方便性,也保證程序員不會陷入“代碼泥潭”中無奈自拔。開發(fā)一個成熟的軟件產(chǎn)品,除了有詳細(xì)豐盛的開發(fā)文檔之外,必需在編寫代碼的時候就井井有條,過細(xì)謹(jǐn)嚴(yán)。
以下的編碼標(biāo)準(zhǔn)包括了程序排版、解釋、命名、可讀性、變量、程序效力、品質(zhì)保障、代碼編譯、代碼測試跟版本把持等留神事項。
二、編碼規(guī)則-排版要求:
1.要害詞和操作符之間加適當(dāng)?shù)目崭瘛?/p>
2.絕對獨破的程序塊與塊之間加空行
3.較長的語句、表達式等要分成多行書寫。
4.劃分出的新行要進行適應(yīng)的縮進,使排版整潔,語句可讀。
5.長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首。
6.循環(huán)、判斷等語句中若有較長的表白式或語句,則要進行適應(yīng)的劃分。
7.若函數(shù)或進程中的參數(shù)較長,則要進行恰當(dāng)?shù)膭澐帧?/p>
8.不容許把多個短語句寫在一行中,即一行只寫一條語句。
9.函數(shù)或過程的開端、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采取縮進風(fēng)格。
10.C/C++語言是用大括號‘{’和‘}’界定一段程序塊的,編寫程序塊時‘{’和‘}’應(yīng)各獨有一行并且位于同一列,同時與引用它們的語句左對齊。在函數(shù)體的開始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進方式。
三、編碼規(guī)則-注釋注意事項
1.注釋要簡略明了。
2.邊寫代碼邊注釋,修改代碼同時修改相應(yīng)的注釋,以保證注釋與代碼的一致性。
3.在必要的處所注釋,注釋量要適中。注釋的內(nèi)容要明白、明了,含義精確,防止注釋二義性。堅持注釋與其描述的代碼相鄰,即注釋的就近原則。
4.對代碼的正文應(yīng)放在其上方相鄰地位,不可放在下面。
5.對數(shù)據(jù)結(jié)構(gòu)的注釋應(yīng)放在其上方相鄰位置,不可放在下面;對結(jié)構(gòu)中的每個域的注解應(yīng)放在此域的右方;統(tǒng)一構(gòu)造中不同域的注釋要對齊。
6.變量、常量的注釋應(yīng)放在其上方相鄰位置或右方。
7.全局變量要有較具體的注釋,包括對其功能、取值規(guī)模、哪些函數(shù)或過程存取它以及存取時注意事項等的闡明。
8.在每個源文件的頭部要有必要的注釋信息,包含:文件名;版本號;作者;天生日期;模塊功能描寫(如功能、重要算法、內(nèi)部各局部之間的關(guān)系、該文件與其它文件關(guān)系等);主要函數(shù)或過程清單及本文件歷史修改記載等。
9.在每個函數(shù)或過程的前面要有必要的注釋信息,包括:函數(shù)或過程名稱;功能描述;輸入、輸出及返回值說明;調(diào)用關(guān)系及被調(diào)用關(guān)系說明等。
四、編碼規(guī)則-命名方法
1.較短的單詞可通從前掉“元音”構(gòu)成縮寫;
2.較長的單詞可取單詞的頭多少發(fā)符的優(yōu)先級,并用括號明確抒發(fā)式的操作次序,避免使用默認(rèn)優(yōu)先級。
3.使用匈牙利表現(xiàn)法
五、編碼規(guī)則-可讀性方面
1.避免使用不易理解的數(shù)字,用有意思的標(biāo)識來替換。
2.不要使用難懂的技能性很高的語句。
3.源程序中關(guān)系較為嚴(yán)密的代碼應(yīng)盡可能相鄰。
六、編碼規(guī)則-變量設(shè)置
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ù)時,要非常警惕,防止賦與分歧理的值或越界等景象產(chǎn)生。
6.預(yù)防局部變量與公共變量同名。
7.仔細(xì)設(shè)計結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易懂得、節(jié)儉占用空間,并減少引起誤用現(xiàn)象。
8.結(jié)構(gòu)的設(shè)計要盡量斟酌向前兼容和當(dāng)前的版本進級,并為某些將來可能的利用保存余地(如預(yù)留一些空間等)。
9.留心詳細(xì)語言及編譯器處理不同數(shù)據(jù)類型的原則及有關(guān)細(xì)節(jié)。
10.嚴(yán)禁使用未經(jīng)初始化的變量。申明變量的同時對變量進行初始化。
11.編程時,要注意數(shù)據(jù)類型的強迫轉(zhuǎn)換。
七、編碼規(guī)則-函數(shù)、過程
1.函數(shù)的范圍盡量限度在200行以內(nèi)。
2.一個函數(shù)最好僅實現(xiàn)一件功能。
3.為簡單功能編寫函數(shù)。
4.函數(shù)的功能應(yīng)當(dāng)是能夠猜測的,也就是只有輸入數(shù)據(jù)相同就應(yīng)發(fā)生同樣的輸出。
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)正確描述函數(shù)的功能。
11.避免使用無意義或含義不清的動詞為函數(shù)命名
12.函數(shù)的返回值要清晰、明了,讓使用者不輕易疏忽過錯情形。
13/明確函數(shù)功能,準(zhǔn)確(而不是近似)地實現(xiàn)函數(shù)設(shè)計。
14.減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。
15.編寫可重入函數(shù)時,若使用全局變量,則應(yīng)通過關(guān)中止、信號量(即P、V操作)等手段對其加以維護。
八、編碼規(guī)則-可測性
1.在編寫代碼之前,應(yīng)預(yù)先設(shè)計好程序調(diào)試與測試的方式和手腕,并設(shè)計好各種調(diào)測開關(guān)及相應(yīng)測試代碼如打印函數(shù)等。
2.在進行集成測試/系統(tǒng)聯(lián)調(diào)之前,要結(jié)構(gòu)好測試環(huán)境、測試項目及測試用例,同時仔細(xì)剖析并優(yōu)化測試用例,以進步測試效率。
九、編碼規(guī)則-程序效率
1.編程時要常常注意代碼的效率。
2.在保證軟件系統(tǒng)的正確性、穩(wěn)定性、可讀性及可測性的條件下,提高代碼效率。
3.不能一味地尋求代碼效率,而對軟件的準(zhǔn)確性、穩(wěn)定性、可讀性及可測性造成影響。
4.編程時,要隨時留意代碼效率;優(yōu)化代碼時,要考慮周全。
5.要仔細(xì)地構(gòu)造或直接用匯編編寫調(diào)用頻繁或機能要求極高的函數(shù)。
6.通過對系統(tǒng)數(shù)據(jù)結(jié)構(gòu)劃分與組織的改良,以及對程序算法的優(yōu)化來提高空間效率。
7.在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層。
8.盡量減少循環(huán)嵌套檔次。
9.防止輪回體內(nèi)含判定語句,應(yīng)將循環(huán)語句置于斷定語句的代碼塊之中。
10.盡量用乘法或其它辦法取代除法,特殊是浮點運算中的除法。
十、編碼規(guī)則-質(zhì)量保證
1.在軟件設(shè)計過程中構(gòu)筑軟件質(zhì)量。
代碼質(zhì)量保證優(yōu)先準(zhǔn)則
(1)正確性,指程序要實現(xiàn)設(shè)計要求的功能。
(2)穩(wěn)固性、保險性,指程序穩(wěn)定、牢靠、平安。
(3)可測試性,指程序要存在良好的可測試性。
(4)規(guī)范/可讀性,指程序書寫作風(fēng)、命名規(guī)矩等要合乎規(guī)范。
(5)全局效率,指軟件系統(tǒng)的整體效率。
(6)部分效率,指某個模塊/子模塊/函數(shù)的自身效率。
(7)個人表達方法/個人方便性,指個人編程習(xí)慣。
2.只引用屬于本人的存貯空間。
3.防止引用已經(jīng)開釋的內(nèi)存空間。
4.過程/函數(shù)中調(diào)配的內(nèi)存,在過程/函數(shù)退出之前要釋放。
5.過程/函數(shù)中申請的(為打開文件而使用的)文件句柄,在過程/函數(shù)退出前要封閉。
6.防止內(nèi)存操作越界。
7.時刻注意表達式是否會上溢、下溢。
8.當(dāng)真處置程序所能碰到的各種犯錯情況。
9.體系運行之初,要初始化有關(guān)變量及運行環(huán)境,避免未經(jīng)初始化的變量被援用。
10.系統(tǒng)運行之初,要對加載到系統(tǒng)中的數(shù)據(jù)進行一致性檢查。
11.嚴(yán)禁隨意更改其它模塊或系統(tǒng)的有關(guān)設(shè)置和配置。
12.不能隨便轉(zhuǎn)變與其它模塊的接口。
13.充足懂得系統(tǒng)的接口之后,再使用系統(tǒng)供給的功效。
14.要時刻注意易混雜的操作符。當(dāng)編完程序后,應(yīng)從頭至尾檢查一遍這些操作符。
15.不使用與硬件或操作系統(tǒng)關(guān)聯(lián)很大的語句,而使用倡議的尺度語句。
16.提議:使用第三方提供的濟南軟件開發(fā)工具包或控件時,要注意以下幾點:
(1)充分了解運用接口、使用環(huán)境及使用時注意事項。
(2)不能過火信任其正確性。
(3)除非必要,不要使用不熟習(xí)的第三方工具包與控件。
十一、編碼規(guī)則-代碼編譯
1.編寫代碼時要注意隨時保留,并按期備份,防止因為斷電、硬盤破壞等起因造成代碼喪失。
2.同一名目組內(nèi),最好使用相同的編纂器,濟南IOS開發(fā),并使用雷同的設(shè)置選項。
3.公道地設(shè)計軟件系統(tǒng)目錄,便利開發(fā)職員應(yīng)用。
4.翻開編譯器的所有告警開關(guān)對程序進行編譯。
5.在同一項目組或產(chǎn)品組中,要同一編譯開關(guān)選項。
6.使用工具軟件(如Visual SourceSafe)對代碼版本進行保護。
十二、編碼規(guī)則-代碼測試、維護
1.單元測試請求至少到達語句籠罩。
2.單元測試開始要跟蹤每一條語句,并察看數(shù)據(jù)流及變量的變更。
3.清算、收拾或優(yōu)化后的代碼要經(jīng)由審查及測試。
4.代碼版本升級要經(jīng)過嚴(yán)厲測試。