源碼源代碼編寫及審查_第1頁
源碼源代碼編寫及審查_第2頁
源碼源代碼編寫及審查_第3頁
源碼源代碼編寫及審查_第4頁
源碼源代碼編寫及審查_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、:BJZR-TE-DMSCGF-V1.0中心科研產品部源代碼編寫及規(guī)范編制:中軟信息系統(tǒng)工程編制人:日期:2013.03.16審核:日期:2013.03.18日期:2013.03.21批準:文件更改序號版本日期所修改章節(jié)所修改頁備注目錄協同開發(fā)工作規(guī)范說明1簽入簽出1編碼規(guī)范1源代碼編寫規(guī)范122.12.2說明1命名規(guī)范..42.2.5變量常量名規(guī)范2名規(guī)范2函數及過程名名規(guī)范2函數及過程參量命名規(guī)范2單元、類、結構、對象命名規(guī)范22.3注釋說明...62.3.7文件頭注釋3注釋4函

2、數或過程的注釋4參量注釋4變量注釋4選擇結構的注釋4示例書寫規(guī)范6格式規(guī)范6其他6數據庫編程規(guī)范633.13.2說明6命名規(guī)范6數據庫對象命名規(guī)范6參量命名規(guī)范6注釋說明.33.3.4頭注釋7參量注釋7選擇結構的注釋7示例(T-SQL)73.4書寫規(guī)范8格式規(guī)范8其他8樣式表命名規(guī)范8樣式表文件命名8樣式命名95源代碼規(guī)范911.1協同開發(fā)工作規(guī)范說明項目開發(fā)不是一個人的事情,需要大家通力協作才能完成。集成開發(fā)環(huán)境本身給提供了協同開發(fā)解決方案,但仍需要嚴格遵循一些規(guī)范,包括:簽入簽出、編碼規(guī)范等,以提高團隊整體開發(fā)效率,保證快速高質量的完成

3、項目開發(fā)任務。1.2 簽入簽出多數開發(fā)環(huán)境集成了版本控制、源代碼管理功能,支持項目的協同開發(fā),還可以借助 TFS、VSS、CVS 等進行源代碼管理;開發(fā)使用各自的賬號簽出相應資源進行協同開發(fā)。為使各開發(fā)的工作互不,提高開發(fā)效率,保證開發(fā)質量,資源的簽入和簽出需遵循一定的規(guī)范: 只簽出自己必須的資源資源被一個人簽出后,將無法被其他人簽出使用,因此開發(fā)應只簽出自己必須的資源,避免占用某些自己用不到的資源,而使別人的工作無法展開。 公共資源用完后及時簽入公共資源是大家公用的,隨時都可能有人需要簽出來使用,為了不影響他人的工作,如果自己已不再需要用這些資源時請立即簽入。 不簽入編譯未通過的資源不要簽入

4、編譯未通過的資源,避免使他人無法正常調用該資源的其它方法。 下班時簽入所有資源為了便于管理者檢查工作進度,另外可能第二天這些任務會有別的成員來做,請在下班時簽入所有自己簽出的資源;對于未完成的資源,請注釋掉編譯未通過的代碼,將資源編譯后再簽入。 簽入資源填寫簽入說明和關聯工作任務簽入資源時,應填寫簽入說明并關聯對應工作任務,以便和管理工作。1.3 編碼規(guī)范大家在共同開發(fā)一個項目,其中一個類或單元,甚至一個方法的編寫任務很可能會由若干個人來完成,且項目的后期工作通常是另外一些;為保證程序代碼的美觀、可讀性以及護性,在編寫程序代碼時必須遵循嚴格規(guī)范,包括:命名規(guī)范,注釋說明,書寫規(guī)范,格式規(guī)范等,

5、具體內容參見本文檔“源代碼編寫規(guī)范”章節(jié)。源代碼編寫規(guī)范說明使用各類開發(fā)工具及代碼編輯器編寫程序代碼時必須遵循嚴格的規(guī)范,包括:命名規(guī)范,注釋說明,書寫規(guī)范,格式規(guī)范等,以保證程序代碼的美觀以及性。護2.2 命名規(guī)范2.2.1變量名規(guī)范命名要有意義;命名時所用的英文單詞要盡量完整,使用英文縮寫也要保證意義明顯易懂,每個英文單詞的首字母要大寫;如果使用的是取漢語拼音的首字母,則要全部大寫;要加上 str、(或簡寫為 s、i)等類型標識;例如:strFileName(文件名),WJSL(文件數量)。2.2.2常量名規(guī)范命名要有意義; 命名時所用的英文單詞要盡量完整,使用英文縮寫也要保證意義明顯易懂

6、,每個英文單詞的首字母要大寫;如果使用的是取漢語拼音的首字母,則要全部大寫; 要加上 c 前綴標識其為常量; 例如:cFilePath(文件路徑)。2.2.3函數及過程名名規(guī)范自定義的函數和過程須遵守此規(guī)范,IDE 自動生成的事件不再此例; 命名要有意義,應包含動作、狀態(tài)、結果等信息; 應該符合變量名規(guī)范; 例如:GetFileName(獲得文件名) Get 動作,FileName 結果;StrTo(字符串類型轉化為整數類型) Str 當前狀態(tài),To 動作,結果狀態(tài)。2.2.4函數及過程參量命名規(guī)范命名要有意義; 命名時所用的英文單詞要盡量完整,使用英文縮寫也要保證意義明顯易懂,每個英文單詞的

7、首字母要大寫;如果使用的是取漢語拼音的首字母,則要全部大寫; 多于一處出現的相同用處的常數定義成常量; 要加上 str,(或簡寫為 s,i)等類型標識; 例如:GetFileNum(string strPath)。2.2.5單元、類、結構、對象命名規(guī)范命名要有意義; 命名時所用的英文單詞要盡量完整,使用英文縮寫也要保證意義明顯易懂,每個英文單詞的首字母要大寫;如果使用的是取漢語拼音的首字母,則要全部大寫; 實例名要加上 obj 前綴; 例如:CommonUnit、MainForm、JTHSK(靜態(tài)函數庫);實例名objConnection 或 objConn(數據庫連接對象實例)。2.2.6U

8、I 元素命名規(guī)范界面上各類控件應進行規(guī)范命名,特別代碼中需要命名要有意義;、調用的控件;命名時所用的英文單詞要盡量完整,使用英文縮寫也要保證意義明顯易懂,每個英文單詞的首字母要大寫;如果使用的是取漢語拼音的首字母,則要全部大寫;加上類型前綴;例如:Button,btn_Close;PicturesBox,pb_Us等。hoto;TextBox,tb_UserName2.3 注釋說明2.3.1文件頭注釋一個類或單元通常為一個文件,應在文件頭即代碼段之前添加文件頭注釋,說明該類或單元的主要功能以及主要函數過程。JSP、JS、JAV、VB、HTML/HTM、ASP/ASPX、CSS 等文件要求在文件

9、頭添加注釋,.NET 自定義類(CS 等)多個類或結構體為一個文件時在文件頭添加注釋,一個類只為一個文件時添加類注釋即可;注釋有兩大部分組成,一部分是:完成的基本信息;另一部分是:修改的基本信息。完成的基本信息包括:功能:此類或單元的功能概明;實例化說明:說明如何實例化(初始化)該類或單元;主要函數和過程:列出其中主要的函數和過程;作者:主要創(chuàng)建者的;完成時間:完成的時間。修改的基本信息包括:修改者:修改者的;修改時間:修改的時間;修改說明:修改的內容及作用。注意:有多個修改者時,修改信息只能往下面添加,而不能在原來的修改信息上進行重新修改,每部分之間要空出一行;例如 DELPHI 或起步中:

10、*主要功能:靜態(tài)函數庫,提供一些公用的靜態(tài)函數實 例 化 說 明:靜態(tài)函數庫無須初始化,直接調用函數主要函數和過程:GetFileName、GetFilePath等作完者:等成時間:2006-05-09 16:00*修改內容:修改函數 GetFileName修 改 者:修改時間:2006-05-10 16:00*例如 C#自定義類中:/ / 示例類/ / Exle objExle=new Exle(CO,無色);objExle.ShowColor();/ dhp/ 2010-03-24/ 添加ModifyColor函數_dhp_2012-04-16 2.3.2注釋變量、函數等的處也應添加注釋,

11、說明該變量的意義,函數的功能和作用等。例如(起步、DELPHI):PublicstrConnection :string;/數據庫連接串根據路徑取得文件名Function GetFileName (strFilePath:string; ResultCode:例如(C#):Public string strConnection;/ 數據庫連接串/獲取文件名稱/文件名稱(含擴展名稱) string GetFileName()eger):string2.3.3函數或過程的注釋自定義的(不包括自動創(chuàng)建的事件)函數實體或過程實體之前應該添加函數或過程的注釋,說明該函數或過程的功能和作用、參數說明、創(chuàng)建

12、信息(作者_完成時間)以及修改信息(修改內容_修改者_修改時間);示例 2.3.7。2.3.4參量注釋說明參數的意義和作用,同函數或過程的注在一起。2.3.5變量注釋變量分行書寫,結尾添加“/”和注釋說明;例如X;/整型變量。2.3.6選擇結構的注釋函數或過程有多個出口時,要對每個出口加注釋說明。另外過程中若有選擇結構,要在其后面加上該選擇結構的作用,并為每個分支添加注釋說明。2.3.7示例 起步、Delphi 示例:函數功能:根據路徑取得文件名參數說明:strFilePath 文件路徑, ResultCode 結果類型標示(0-不含擴展名 1-含擴展名)創(chuàng)建信息:_2006-05-10 10

13、:00修改信息:簡化判斷結構_2006-05-10 14:00Sic Function TcommonUnit.GetFileName (strFilePath:string Var strTemp:string;/臨時字符串X: eger;/整型變量BeginResultCode:eger):stringIfResultCode=0 then/判斷返回的文件名是否要包含擴展名 Begin/返回不包含擴展名的文件名 GetFileName:=結果;EndElseBegin/返回包含擴展名的文件名 GetFileName:=結果;End;End C#示例:/ / 根據路徑取得文件名/ / 文件路

14、徑/ param name=/ ResultCode結果類型標示(0-不含擴展名1-含擴展名)/ 2012-04-16/ 簡化判斷結構_/ 文件名_2012-04-17public string GetFileName(string strFilePath,string strTemp = filename;/臨時字符串ResultCode)if (ResultCode = 0)/判斷返回的文件名是否要包含擴展名/返回不包含擴展名的文件名 return strTemp;else/返回包含擴展名的文件名 return strTemp + .xml;2.4書寫規(guī)范SQL 語句中的保留字全部要大寫,

15、的函數名稱要全部要大寫;變量、常量、函數過程、類、實例等名稱要按照命名規(guī)范中規(guī)定的書寫。2.5格式規(guī)范層次分明,注意縮進,不同層次的縮進使用 TAB 鍵或兩個空格健;運算符左右要有空格隔開;單行代碼不易過長,應盡量分行書寫;多個變量,分行書寫并在之后添加注釋說明。2.6其他代碼要盡量簡潔,不拉雜;代碼文件要按功能模塊規(guī)范存放,不同功能集存放到不同的目錄中;多處使用的代碼段應盡量抽取出來作為函數或過程;編寫函數時應該功能非常具體專一,這樣能保持函數之間有較強的獨立性,若干個功能用幾次函數調用去實現,這樣程序看起來比較清晰且不容易出錯;過程中創(chuàng)建了實例,應確保退出(包括每個出口)之前把實例占用的資

16、源掉。33.1數據庫編程規(guī)范說明表、視圖、觸發(fā)器、過程、函數等數據庫對象的創(chuàng)建和修改必須遵循嚴格規(guī)范,包括:命名規(guī)范,注釋說明,書寫規(guī)范,格式規(guī)范等,以保證過程代碼的美觀以及護性。3.2 命名規(guī)范3.2.1數據庫對象命名規(guī)范應符合變量名規(guī)范;視圖命名加“V_”前綴;表命名加“T_”前綴;表名及字段命名,無特殊要求時,項目使用漢語拼音首字母;表、視圖命名格式按模塊(系統(tǒng))名、功能(欄目)名分段書寫,例如:T_XTGL_YHGL_YHJBXX 或 T_SysManage_UserManage_UserInfo;過程、函數命名格式按模塊(系統(tǒng))名、功能(欄目)名、操作名分段書寫,例如:SysMana

17、ge_UserManage_AddUserInfo。3.2.2參量命名規(guī)范命名要有意義;命名時所用的英文單詞要盡量完整,使用英文縮寫也要保證意義明顯易懂,每個英文單詞的首字母要大寫;如果使用的是取漢語拼音的首字母,則要全部大寫。3.3 注釋說明3.3.1頭注釋頭注釋是創(chuàng)建和修改過程、函數、觸發(fā)器、視圖的注釋說明,注釋緊跟著其名稱后面,另起一行,由/*和*/標識。注釋有兩大部分組成,一部分是:完成的基本信息;另一部分是:修改的基本信息。完成的基本信息包括:功能:說明此過程(函數)的作用; 作者:主要創(chuàng)建者的完成時間:完成的時間。修改的基本信息包括:;修改者:修改者的;修改時間:修改的時間;修改說

18、明:修改的內容及作用。注意:有多個修改者時,修改信息只能往下面添加,而不能在原來的修改信息上進行重新修改。3.3.2參量注釋要在每個參量的后面加上該參量表示的意義,適用性,由“-”起頭,加上注釋說明。3.3.3選擇結構的注釋當過程或函數有多個出口時,要對每個出口加注釋說明。另外,過程中若有選擇結構,要在其后面加上該選擇結構的作用,加注釋的方法同 3.3.2。3.3.4示例(T-SQL)CREATE PROCEDURE dbo.DesignModule_Publish_SavePublishMemo- =- Author:- Create date:- Description:- Modify:

19、- =-清冊ID-清冊版本-說明信息-操作iCableList sRevi sPublishMemo sUserName, VARCHAR(3), VARCHAR(4000), VARCHAR(50)ASBEGINDECLARE sTemp VARCHAR(20) -字符串臨時變量-整型臨時變量DECLARE iTypeCodeSELECTiTypeCode=TypeCode,sTemp=SUBSTRING(Title,1,10)+.FROM v_publishInfoWHERE OrderNum=iCableListIF iTypeCode is null-判斷是否存在清冊ID為iCable

20、List的TypeCode BEGIN-不存在時的處理邏輯 GOTO ErrEND ELSEBEGIN-不存在時的處理邏輯IF ERROR0 BEGIN-異常處理邏輯 GOTO ErrENDEND RETURN 1Err: RETURN 0END GO3.4 書寫規(guī)范 SQL 語句中的保留字全部要大寫;的函數名稱要全部要大寫。3.5 格式規(guī)范 層次分明,注意縮進,不同層次的縮進一律使用 TAB 鍵;運算符左右要有空格隔開;SQL 語句中的多個檢索字段和多表檢索,以及多個檢索條件都要分行書寫;多個參量,分行書寫。3.6其他過程(函數)結束用 RETURN;書寫結束加 GO;不允許出現無謂的空行;

21、不允許把整個 SQL 語句作為參數傳入;所有變量必須添加類型前綴;所有英文單詞的第一個字母都要大些;多于一處出現的相同用處的常數定義成常量。44.1樣式表命名規(guī)范樣式表文件命名樣式表文件名應與欄目名相符合,如:news.css,page.css,main_style.css。4.2樣式命名本樣式命名適用于非 HTML樣式名,即用戶自己定義的樣式。樣式命名按照以下原則:樣式名使用小寫字母,使用漢字;樣式名使用。_YYY 進行命名。其中,一般用來指明此樣式所使用的地點,而 YYY 一般用以指名此樣式的特點,如:.bg_blue藍色背景;.nav 使用于導航;.copyright 使用于;.news

22、_copyright 使用于新聞的樣式;樣式名應使用標準,在此有以下約定:5源代碼展開源代碼規(guī)范工作的目的包括三個方面,一是規(guī)范開發(fā),提高源代碼的護性;二是彌補黑盒測試的,幫助檢查黑盒測試無法發(fā)現的程序邏輯缺陷;三是知識、促進交流,使開發(fā)相互學習、共同提高。源代碼工作的組織方式和周期另行制定,且適時調整。本章以單形式列出代碼要點及準則,單如下:地點名應使用的約定buttonbtbackgroundbgnavigationnavtexttexttabletb源代碼單檢 查 人檢查日期檢查單號項目名稱項目開發(fā)經理內容結果好 中 差序號要點及準則執(zhí)行情況備注免查不符合數1.書寫及格式規(guī)范1.1程序塊

23、縮進、大小寫等符合代碼書寫規(guī)范?!尽俊尽?.2過程、函數、觸發(fā)器縮進、大小寫等符合書寫規(guī)范?!尽俊尽?.3相對獨立的程序塊之間、變量說明之后應加空行?!尽俊尽?.4較長的語句(80 字符)要分成多行書寫,長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進行適當的縮進,使排版整齊,語句可讀?!尽俊尽?.5循環(huán)、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分,長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首?!尽俊尽?.6若函數或過程中的參數較長,則要進行適當的劃分?!尽俊尽?.7不允許把多個短語句寫在一行中,即一行只寫一條語句?!尽俊尽?.8if、whil

24、e、for、defauo 等語句自占一行?!尽俊尽?.9函數或過程的開始、結構的定義及循環(huán)、判斷等語句中的代碼都要采用縮進風格,case 語句下的情況處理語句也要遵從語句縮進要求?!尽俊尽?.10程序塊的分界符(如 C/C+語言的大括號和)應各獨占一行并且位于同一列,同時與它們的語句左對齊。在函數體的開始、類的定義、結構的定義、枚舉的定義以及 if、 for、do、while0、switch、case 語句中的程序都要采用如上的縮進方式。【】【】1.11在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者前后要加空格;進行非對等操作時,如果是關系密切的立即操作符(如),后不應加空格。【】【】2.注釋規(guī)范2.1按規(guī)范書寫文件頭注釋。【】【】2.2按規(guī)范對進行注釋?!尽俊尽?.3按規(guī)范對函數或過程進行注釋?!尽俊尽?.4按規(guī)范對參、變量進行注釋?!尽俊尽?.5按規(guī)范對程序塊(選擇結構等)進行注釋?!尽俊尽?.6注釋說明應準確、全面、無歧義、易于理解?!尽俊尽?.7數據庫對象按規(guī)范注釋說明?!尽俊尽?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論