版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計語言編碼規(guī)范江蘇微軟技術(shù)中心編碼規(guī)范之函數(shù)過程與審查編譯第六章
教學(xué)內(nèi)容
函數(shù)的編碼規(guī)范。審查與編譯的編碼規(guī)范。函數(shù)規(guī)范1.明確函數(shù)功能,精確(而不是近似)地實現(xiàn)函數(shù)設(shè)計。按照詳細(xì)設(shè)計,實現(xiàn)函數(shù)的功能。函數(shù)規(guī)范2.方法的命名第一個單詞一般是動詞。第一個字母是小寫,但是中間單詞的第一個字母是大寫。
函數(shù)規(guī)范在同一項目組應(yīng)明確規(guī)定對接口函數(shù)參數(shù)的合法性檢查應(yīng)由函數(shù)的調(diào)用者負(fù)責(zé)還是由接口函數(shù)本身負(fù)責(zé),缺省是由函數(shù)調(diào)用者負(fù)責(zé)。說明:對于模塊間接口函數(shù)的參數(shù)的合法性檢查這一問題,往往有兩個極端現(xiàn)象,即:要么是調(diào)用者和被調(diào)用者對參數(shù)均不作合法性檢查,結(jié)果就遺漏了合法性檢查這一必要的處理過程,造成問題隱患;要么就是調(diào)用者和被調(diào)用者均對參數(shù)進(jìn)行合法性檢查,這種情況雖不會造成問題,但產(chǎn)生了冗余代碼,降低了效率。函數(shù)規(guī)范防止將函數(shù)的參數(shù)作為工作變量。說明:將函數(shù)的參數(shù)作為工作變量,有可能錯誤地改變參數(shù)內(nèi)容,所以很危險。對必須改變的參數(shù),最好先用局部變量代之,最后再將該局部變量的內(nèi)容賦給該參數(shù)。函數(shù)規(guī)范函數(shù)的規(guī)模盡量限制在200行以內(nèi)說明:不包括注釋和空格行。函數(shù)規(guī)范為簡單功能編寫函數(shù)說明:雖然為僅用一兩行就可完成的功能去編函數(shù)好象沒有必要,但用函數(shù)可使功能明確化,增加程序可讀性,亦可方便維護(hù)、測試。示例:如下語句的功能不很明顯。value=(a>b)?a:b;改為如下就很清晰了。intmax(inta,intb){
return((a>b)?a:b);}value=max(a,b);函數(shù)規(guī)范函數(shù)的功能應(yīng)該是可以預(yù)測的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出。說明:如函數(shù)內(nèi)部使用了全局變量或靜態(tài)變量。當(dāng)其它代碼修改了該全局或靜態(tài)變量時,該函數(shù)在內(nèi)部運(yùn)算時使用到該值發(fā)生改變,將不會得到預(yù)期的結(jié)果。這是一個典型的在語法上是正確的。但是在應(yīng)用中確不可使用的方法。函數(shù)規(guī)范避免設(shè)計多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。說明:目的減少函數(shù)間接口的復(fù)雜度。函數(shù)規(guī)范檢查函數(shù)所有參數(shù)輸入的有效性。函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。函數(shù)規(guī)范使用動賓詞組為執(zhí)行某操作的函數(shù)命名。如果是OOP方法,可以只有動詞(名詞是對象本身)。示例:參照如下方式命名函數(shù)。voidprint_record(int
rec_ind);函數(shù)規(guī)范在調(diào)用函數(shù)填寫參數(shù)時,應(yīng)盡量減少沒有必要的數(shù)據(jù)類型轉(zhuǎn)換或強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換。說明:因為數(shù)據(jù)類型轉(zhuǎn)換或多或少存在危險。函數(shù)規(guī)范避免函數(shù)中不必要語句,防止程序中的垃圾代碼。程序中的垃圾代碼不僅占用額外的空間,而且還常常影響程序的功能與性能,很可能給程序的測試、維護(hù)等造成不必要的麻煩。函數(shù)規(guī)范減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。說明:遞歸調(diào)用特別是函數(shù)間的遞歸調(diào)用(如A->B->C->A),影響程序的可理解性;遞歸調(diào)用一般都占用較多的系統(tǒng)資源(如棧空間);遞歸調(diào)用對程序的測試有一定影響。故除非為某些算法或功能的實現(xiàn)方便,應(yīng)減少沒必要的遞歸調(diào)用。函數(shù)規(guī)范當(dāng)一個過程(函數(shù))中對較長變量(一般是結(jié)構(gòu)的成員)有較多引用時,可以用一個意義相當(dāng)?shù)暮甏?。說明:這樣可以增加編程效率和程序的可讀性。示例:在某過程中較多引用TheReceiveBuffer[FirstSocket].byDataPtr
則可以通過以下宏定義來代替:#definepSOCKDATATheReceiveBuffer[FirstScoket].byDataPtr審查規(guī)范1.在產(chǎn)品軟件(項目組)中,要統(tǒng)一編譯開關(guān)選項。2.通過代碼走讀及審查方式對代碼進(jìn)行檢查。3.測試部測試產(chǎn)品之前,應(yīng)對代碼進(jìn)行抽查及評審。審查規(guī)范4.單元測試要求至少達(dá)到語句覆蓋。5.單元測試開始要跟蹤每一條語句,并觀察數(shù)據(jù)流及變量的變化。6.正式版本上軟件的任何修改都應(yīng)有詳細(xì)的文檔記錄。本章總結(jié)函數(shù)規(guī)范精確實現(xiàn)功能用動詞(動賓)作方法名參數(shù)檢查不要改變參數(shù)值不超過200行為簡單邏輯功能編寫函數(shù)輸出可預(yù)期去掉無用參數(shù)檢查輸入有效性函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 呼吸系統(tǒng)疾病患者的營養(yǎng)支持
- 勞動爭議調(diào)查試題和答案
- 獸醫(yī)學(xué)題庫及答案
- 中級會計師考試模擬試題及答案
- 企業(yè)文化試題與答案(供參考)
- 《傳染病護(hù)理》考試試卷及答案
- 產(chǎn)科規(guī)培考試試題附答案
- 鹽山縣輔警考試公安基礎(chǔ)知識考試真題庫及答案
- 教師招聘考試教育學(xué)題庫及答案
- 稅法考試真題卷子及答案
- (一診)重慶市九龍坡區(qū)區(qū)2026屆高三學(xué)業(yè)質(zhì)量調(diào)研抽測(第一次)物理試題
- 2026新疆伊犁州新源縣總工會面向社會招聘工會社會工作者3人考試備考試題及答案解析
- 2026年榆能集團(tuán)陜西精益化工有限公司招聘備考題庫完整答案詳解
- 2026廣東省環(huán)境科學(xué)研究院招聘專業(yè)技術(shù)人員16人筆試參考題庫及答案解析
- 2026年保安員理論考試題庫
- 駱駝祥子劇本殺課件
- DGTJ08-10-2022 城鎮(zhèn)天然氣管道工程技術(shù)標(biāo)準(zhǔn)
- 加油站安保反恐工作總結(jié)分享范文
- 反洗錢風(fēng)險自評價制度
- 隱框、半隱框玻璃幕墻分項工程檢驗批質(zhì)量驗收記錄
- 包扎技術(shù)課件
評論
0/150
提交評論