1.1.編寫目的:
使用統(tǒng)一編碼約定集的主要原因,是使應(yīng)用程序的結(jié)構(gòu)和編碼風(fēng)格標(biāo)準(zhǔn)化,以便于閱讀和理解這段編碼。好的編碼約定可使源代碼嚴(yán)謹(jǐn)、可讀性強(qiáng)且意義清楚,與其它語言約定相一致,并且盡可能的直觀。一組通用目的的編碼約定應(yīng)該定義完成上述目的所必需的、能讓程序員自由地創(chuàng)建程序邏輯和功能流程的小的要求。編碼約定的目的是使程序易于閱讀和理解,而不是用過份的約束和絕對(duì)的限制來束縛程序員本身的創(chuàng)造性。
1.2內(nèi)容:
程序設(shè)計(jì)語言的特性和風(fēng)格會(huì)直接影響到軟件開發(fā)的質(zhì)量和可維護(hù)性。
編碼原則:
應(yīng)盡量避免在系統(tǒng)初始化時(shí)運(yùn)行過多的代碼。(此處加入詳細(xì)原則)- 選用控制結(jié)構(gòu)只準(zhǔn)許一個(gè)入口和一個(gè)出口。
- 程序語句組成容易識(shí)別的塊,每塊只有一個(gè)入口和一個(gè)出口。
- 復(fù)雜的結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)。
- 語句中沒有的控制結(jié)構(gòu),可用一段等價(jià)的程序段模擬,但要求該程序段在整個(gè)系統(tǒng)應(yīng)前后一致。
- 嚴(yán)格控制GOTO語句,僅在下列情形才可使用。
- 用一個(gè)非結(jié)構(gòu)化的程序設(shè)計(jì)語言去實(shí)現(xiàn)一個(gè)結(jié)構(gòu)化的構(gòu)造。
-
在某種可以改善而不是損害程序可讀性的情況下。
1.2.1對(duì)象命名約定
公式:對(duì)象名稱=對(duì)象前綴+自定義名稱(自定義名稱要有一定的意義且第一個(gè)字母大寫)說明:如果是不需要對(duì)其編碼的對(duì)象,那么對(duì)象名用默認(rèn)對(duì)象名。
應(yīng)該用一致的前綴來命名對(duì)象,使人們?nèi)菀鬃R(shí)別對(duì)象的類型。下面列出了 Delphi 支持的一些推薦使用的對(duì)象約定。
(1)推薦使用的項(xiàng)目前綴
(2)推薦使用的控件前綴
(3)推薦使用的數(shù)據(jù)訪問對(duì)象的前綴用下列前綴來指示數(shù)據(jù)訪問對(duì)象。
(4)推薦使用的菜單前綴應(yīng)用程序頻繁使用許多菜單控件,對(duì)于這些控件具備一組唯一的命名約定很實(shí)用。除了前面 "mnu" 標(biāo)記以外,菜單控件的前綴應(yīng)該被擴(kuò)展:對(duì)每一級(jí)嵌套增加一個(gè)附加前綴,將終的菜單的標(biāo)題放在名稱字符串的后。下表列出了一些例子。
(2)推薦使用的控件前綴
(3)推薦使用的數(shù)據(jù)訪問對(duì)象的前綴用下列前綴來指示數(shù)據(jù)訪問對(duì)象。
(4)推薦使用的菜單前綴應(yīng)用程序頻繁使用許多菜單控件,對(duì)于這些控件具備一組唯一的命名約定很實(shí)用。除了前面 "mnu" 標(biāo)記以外,菜單控件的前綴應(yīng)該被擴(kuò)展:對(duì)每一級(jí)嵌套增加一個(gè)附加前綴,將終的菜單的標(biāo)題放在名稱字符串的后。下表列出了一些例子。
菜單標(biāo)題序列菜單處理器名稱
(此處加入標(biāo)題序列及處理器名稱)
當(dāng)使用這種命名約定時(shí),一個(gè)特定的菜單組的所有成員一個(gè)接一個(gè)地列在 Visual Basic 的“屬性”窗口中。而且,菜單控件的名字清楚地表示出它們所屬的菜單項(xiàng)。
(5)為其它控件選擇前綴
對(duì)于上面沒有列出的控件,應(yīng)該用唯一的由兩個(gè)或三個(gè)字符組成的前綴使它們標(biāo)準(zhǔn)化,以保持一致性。只有當(dāng)需要澄清時(shí),才使用多于三個(gè)字符的前綴。
例如,(此處加入例子)
1.2.2常量和變量命名約定
公式:常量或變量名稱=常量或變量范圍前綴+常量或變量類型前綴+自定義名稱(自定義名稱要有一定的意義且第一個(gè)字母大寫)除了對(duì)象之外,常量和變量也需要良好格式的命名約定。本節(jié)列出了(此處加入變量列表)。
變量應(yīng)該總是被定義在盡可能小的范圍內(nèi)。全局 (Public) 變量可以導(dǎo)致極其復(fù)雜的狀態(tài)機(jī)構(gòu),并且使一個(gè)應(yīng)用程序的邏輯非常難于理解。全局變量也使代碼的重用和維護(hù)更加困難。
Delphi中的變量可以有下列范圍:
范圍聲明位置 可見位置
過程級(jí)(此處加入名稱)
模塊級(jí)(此處加入名稱)
全局(此處加入名稱)。
較好的編碼習(xí)慣是盡可能寫模塊化的代碼。例如,如果應(yīng)用程序顯示一個(gè)對(duì)話框,就把要完成這一對(duì)話任務(wù)所需要的所有控件和代碼放在單一的窗體中。這有助于將應(yīng)用程序的代碼組織在有用的組件中,并減小它運(yùn)行時(shí)的開銷。
除了全局變量(應(yīng)該是不被傳遞的),過程和函數(shù)應(yīng)該僅對(duì)傳遞給它們的對(duì)象操作。在過程中使用的全局變量應(yīng)該在過程起始處的聲明部分中標(biāo)識(shí)出來。
變量范圍前綴
隨著工程大小的增長,劃分變量范圍的工作也迅速增加。在類型前綴的前面放置單字母范圍前綴標(biāo)明了這種增長,但變量名的長度并沒有增加很多。
范圍 | 前綴 | 例子 |
全局 | g | GstrUserName |
模塊級(jí) | m | MblnCalcInProgress |
本地到過程 | 無 | DblVelocity |
(此處加入說明)
變量
聲明所有的變量將會(huì)(此處加入說明)。
應(yīng)該給變量加前綴來指明它們的數(shù)據(jù)類型。而且前綴可以被擴(kuò)展,用來指明變量范圍,特別是對(duì)大型程序。
變量數(shù)據(jù)類型
用下列前綴來指明一個(gè)變量的數(shù)據(jù)類型。
(此處加入說明)
描述變量和過程名
變量或過程名的主體應(yīng)該使用大小寫混合形式,并且應(yīng)該足夠長以描述它的作用。而且,函數(shù)名(此處加入函數(shù)名稱)。
對(duì)于頻繁使用的或長的項(xiàng),推薦使用標(biāo)準(zhǔn)縮略語以使名稱的長度合理化。一般來說,(此處加入特例說明)就困難了。
當(dāng)使用縮略語時(shí),要確保它們?cè)谡麄€(gè)應(yīng)用程序中的一致性。在一個(gè)工程中,如果一會(huì)兒使用(此處加入說明問題),將導(dǎo)致不必要的混淆。
用戶定義的類型
在一項(xiàng)有許多用戶定義類型的大工程中,常常有必要給每種類型一個(gè)它自己的三個(gè)字符的前綴。如果這些前綴是(此處加入前綴名稱)。
1.2.3結(jié)構(gòu)化編碼約定
(此處加入約定說明)記住下列幾點(diǎn):
每一個(gè)重要變量的聲明應(yīng)該包括(此處加入變量名稱)。
(2)格式化代碼
因?yàn)樵S多程序員(此處加入問題)
(此處加入解決問題的說明)
(3)給常量分組
變量和定義的常量應(yīng)該按功能分組,而不是分散到單獨(dú)區(qū)域或特定文件中。
(4)運(yùn)算符
(此處加入運(yùn)算符列表及說明)
(5)為(此處加入問題) 查詢創(chuàng)建字符串
(此處加入說明)
1.2.4數(shù)據(jù)源的約定
(此處加入數(shù)據(jù)源的約定)1.2.5數(shù)據(jù)庫訪問約定
訪問數(shù)據(jù)庫用ODBC drivers/ADO,但如果在有的技術(shù)ADO解決不了的情況下可用其他方法。數(shù)據(jù)庫訪問技術(shù)有:(此處加入說明)
1.2.6其他約定
(1)當(dāng)日期、時(shí)間型數(shù)據(jù)要求嚴(yán)格時(shí),(此處加入說明)(2)記錄集應(yīng)用約束
【北京華盛恒輝科技有限公司 ——(hivekion)是全球領(lǐng)先的北京軟件開發(fā)公司,專注IT產(chǎn)品研發(fā)與服務(wù),堅(jiān)持穩(wěn)健經(jīng)營、持續(xù)創(chuàng)新、開放合作,在安全生產(chǎn)、大數(shù)據(jù)處理等領(lǐng)域構(gòu)筑了端到端的解決方案優(yōu)勢,為企業(yè)客戶提供有競爭力的IT解決方案、 產(chǎn)品和服務(wù), 并致力于使能未來信息社會(huì)、 構(gòu)建更美好的世界。】