資源描述:
《源代碼編寫規(guī)范.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應用文檔-天天文庫。
1、源代碼編寫規(guī)范版本<1.0>1簡介31.1目的31.2范圍32代碼格式規(guī)范33代碼注釋規(guī)范44命名規(guī)范85異常處理規(guī)范96其他規(guī)范101簡介1.1目的本文用于定義本公司程序編碼規(guī)范。本文的目的在于規(guī)范和指導軟件編程活動,作為考核標準。1.2范圍本文僅用于指導軟件編程工作,同時作為其他分析和設計工作的參考資料。本文的預期讀者是:軟件工程師/設計員、程序員。本公司各項目可以采用不同的編程語言,并參照本規(guī)范和各語言的習慣定義各自的編程規(guī)范,但是必須經(jīng)過評審通過。編程規(guī)范一旦通過評審,任何人在編程活動中都必須遵循。2代碼格式規(guī)范【規(guī)范1】單行代碼不得超過120字符?!疽?guī)范2
2、】每行代碼最多包含一個獨立的語句?!疽?guī)范3】代碼縮進兩個空格。說明:兩個空格已經(jīng)足夠清晰了,縮進量過大會導致單行代碼很長,反而影響閱讀?!疽?guī)范4】不要使用TAB縮進代替空格縮進?!疽?guī)范5】如果單行代碼過長,則應該遵循以下規(guī)則斷行:w在逗號的后面。w在操作符的前面。w斷行的起始位置應該對其原行表達式的起始位置,如果無法滿足,則縮進2個空格?!疽?guī)范6】每一個變量的聲明獨占一行。【規(guī)范7】將變量的聲明置于代碼塊的開始位置。【規(guī)范8】在java中for、while、do-while循環(huán),if、elseif、else、switch-case分支,try-catch-final
3、ly塊即使僅包含一個語句,也要用{}包含。其他語言參照執(zhí)行。【規(guī)范9】空行的位置:w在邏輯代碼段之間。wfor、while、do-while循環(huán),if、elseif、else、switch-case分支,try-catch-finally塊的前面。w在兩個類或接口的定義之間。w在兩個方法/函數(shù)/過程之間。w方法/函數(shù)/過程內(nèi)部變量定義行和第一個非變量定義行之間。w包含(C++)/引入(Java)完畢之后?!疽?guī)范10】空格的位置:w在一個關(guān)鍵字和做括號“(”之間。注意:不要在方法名和左括號之間加空格。w在參數(shù)列表的每個逗號“,”之后。w一元操作符前后。注意:二元操作符
4、前后都不加空格。例如:inta=10;a=a+1;a++;wfor語句的每個表達式之間。例如:for(inti=0;i<20;i++)…w類型轉(zhuǎn)換語句之后。例如:Strings=(String)c;【建議】空行、空格也是代碼。空行是一個邏輯段起止的標志,它和編程者的思路是一致的。另外,適當?shù)氖褂每招泻涂崭窨梢允鼓愕拇a更加清晰。1代碼注釋規(guī)范【規(guī)范1】代碼注釋的量應該不少于總代碼行數(shù)的1/3。說明:只有足夠的注釋才能充分的說明你的代碼,沒有哪個規(guī)范可以規(guī)定注釋量的上限,但是一般來說1/3應該是下限。如果你的代碼包括注釋、空行共90行,那么注釋應該不少于30行?!疽?guī)范
5、2】在維護代碼的同時,維護你的注釋。說明:我們通常在編寫代碼的同時都會對代碼進行注釋,但是往往在維護代碼的時候忘記同時維護注釋。所以很多注釋在代碼反復修改之后,失去了說明代碼的作用,這樣的注釋還不如不寫?!疽?guī)范3】注釋不要重復你的代碼。例如:Stringstr;//聲明一個String對象:str上面的代碼看上去沒有問題,但是注釋卻是沒有用的――只是對代碼的簡單重復。要記住,注釋是用來說明代碼的,而不是重復代碼的?!窘ㄗh】文件注釋。文件注釋用于說明代碼文件的一些附加信息,它位于源代碼文件的頂部。文件注釋最重要的作用是記錄代碼維護歷史。例如:/**文件名:Demo.j
6、ava*作者:SamLee*完成日期:2004/02/02*維護人員:SamLee*維護日期:2004/02/02*維護原因:修改了對于圖的深度遍歷的算法*當前版本:1.0*前繼版本:0.9beta*/【規(guī)范4】為每一個類編寫類注釋。類的注釋位于類聲明的前面,使用/**/進行注釋(對于java,是/***/)。類的注釋應該說明一下幾點:1)完成了哪些工作,即這個類是作什么的。2)使用的方法和注意事項,如果比較難以表達,那么可以寫一些示例代碼。3)作者列表4)當前版本和完成時間5)參考類,即這個類與哪些類相關(guān)。注意:類注釋不要寫類的實現(xiàn)方法,例如:“Matrix類采用
7、主選消元法實現(xiàn)矩陣的求逆運算,具體算法是:…”,這樣的注釋往往會限制類的擴展,并且加重了類的維護的工作量。我們來看一個好的類注釋:/***TheLong
classwrapsavalueoftheprimitivetype*long
inanobject.AnobjectoftypeLong
*containsasinglefieldwhosetypeislong
.*以上是類的作用*
**Inaddition,thisclassprovidesseveralme