編碼書寫規(guī)范-Java_第1頁
編碼書寫規(guī)范-Java_第2頁
編碼書寫規(guī)范-Java_第3頁
編碼書寫規(guī)范-Java_第4頁
編碼書寫規(guī)范-Java_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1/1編碼書寫規(guī)范-Java目錄1.命名約定11.1.一般概念1.2.示范112.注釋約定32.1.一般概念2.2.示范2.3.注釋哪些部分4453.文件樣式約定53.1.JAVA(*.JAVA)3.1.1.版權(quán)信息3.1.2.PACKAGE/IMPORTS5553.1.3.CLASS63.1.4.CLASSFIELDS63.1.5.存取方法(類的設(shè)置與獲取成員函數(shù))3.1.6.構(gòu)造函數(shù)3.1.7.克隆方法3.1.8.類方法(類的普通成員函數(shù))3.1.9.TOSTRING方法3.1.10.MAIN方法3.2.JAVASERVERPAGE(*.JSP)3.2.1.版本信息3.2.2.TAG7778889993.2.3.定義3.2.4.值輸出3.2.5.嵌入代碼段1010104.其它代碼書寫風(fēng)格約定114.1.文檔化4.2.縮進(jìn)4.3.頁寬4.4.{}對(duì)4.5.括號(hào)4.6.運(yùn)算符4.7.參數(shù)之間111111111112124.8.JSP文件命名4.9.SERVLET類命名12125.附件125.1.使用方法13-1-1.命名約定除了以下幾個(gè)特例之外,命名時(shí)應(yīng)始終采用完整的英文描述符。

此外,一般應(yīng)采用小寫字母,但類名、接口名以及任何非初始單詞的第一個(gè)字母要大寫。

1.1.一般概念盡量使用完整的英文描述符采用適用于相關(guān)領(lǐng)域的術(shù)語采用大小寫混合使名字可讀盡量少用縮寫,但如果用了,要明智地使用,且在整個(gè)工程中統(tǒng)一避免使用長(zhǎng)的名字(盡量小于25個(gè)字母)避免使用類似的名字,或者僅僅是大小寫不同的名字避免使用下劃線(除靜態(tài)常量等)1.2.示范包(Package)采用完整的英文描述符,應(yīng)該都是由小寫字母組成,格式為com.dcosft.*。

如:

com.dcsoft.ework.workflowcom.dcsoft.commonscom.dcsoft.utility類(Class)采用完整的英文描述符,所有單詞的第一個(gè)字母大寫,在上下文語境允許的情況下,可以使用縮略詞,但必須保證整個(gè)開發(fā)小組的一致性,比如:

number可縮寫為num。

如:

接口(Interface)采用完整的英文描述符說明接口封裝,所有單詞的第一個(gè)字母大寫。

在接口名稱的最前面使用大寫的I表明這是一個(gè)接口。

習(xí)慣上,CustomerSavingsAccount-2-名字后面加上后綴able,ible或者er,但這不是必需的。

如:

組件/部件(Component)使用完整的英文描述來說明組件的用途,前端加上組件類型。

如:

異常(Exception)采用異常類型的各單詞首字母表示異常。

如:

字段/屬性字段采用完整的英文描述,第一個(gè)字母小寫,任何中間單詞的首字母大寫。

實(shí)參/參數(shù)同字段/屬性的命名規(guī)則局部變量同字段/屬性的命名規(guī)則獲取成員函數(shù)被訪問字段名的前面加上前綴get。

布爾型的獲取成員函數(shù)所有的布爾型獲取函數(shù)必須用單詞is做前綴。

設(shè)置成員函數(shù)被訪問字段名的前面加上前綴set。

IContactableIPrompterbtnOKlstCustomermenuFileExcpetioneIOExceptionioefirstNamelastNamepublicvoidsetFirstName(StringfirstName){this.firstName=firstName;}getFirstName()getLastName()isPersistent()isString()-3-普通成員函數(shù)采用完整的英文描述說明成員函數(shù)功能,第一個(gè)單詞盡可能采用一個(gè)生動(dòng)的動(dòng)詞,第一個(gè)字母小寫。

靜態(tài)常量字段(staticfinal)全部采用大寫字母,單詞之間用下劃線分隔。

循環(huán)計(jì)數(shù)器通常采用字母i,j,k,m,n或者counter都可以接受。

數(shù)組數(shù)組數(shù)組應(yīng)該總是用下面的方式來命名:

objectType[]variant,不得使用objectTypevariant[]方式。

對(duì)象實(shí)例同組件/部件2.注釋約定一個(gè)很好的可遵循的有關(guān)注釋的經(jīng)驗(yàn)法則是:

問問你自己,你如果從未見過這段代碼,要在合理的時(shí)間內(nèi)有效地明白這段代碼,你需要哪些信息。

setFirstName()setLastName()setWarpSpeed()openFile()addAccount()MIN_BALANCE,DEFAULT_DATEi,j,km,n,counterint[]arrInt;;String[]args;byte[]arrBuffer;StringBuffersbContent;-4-2.1.一般概念注釋應(yīng)該增加代碼的清晰度保持注釋的簡(jiǎn)潔在寫代碼之前寫注釋注釋出為什么做了一些事,而不僅僅是做了什么2.2.示范文檔注釋在緊靠接口、類、成員函數(shù)和字段聲明的前面注釋它們。

C語言風(fēng)格采用C語言風(fēng)格的注釋去掉不再使用但你仍想保留的代碼。

仍想保留是因?yàn)橛脩羧f一會(huì)改變想法,或者在調(diào)試過程中想讓它暫時(shí)失效。

單行在成員函數(shù)內(nèi)采用單行注釋,來說明業(yè)務(wù)邏輯、代碼段和暫時(shí)變量的聲明。

注釋符//后必須緊跟一個(gè)空格,然后才是注釋信息。

即約定主要的說明性注釋使用文檔注釋;C風(fēng)格注釋只用來標(biāo)注過期不用的代碼;單行注釋用來標(biāo)注一些簡(jiǎn)單卻容易混淆的邏輯,比較長(zhǎng)的單獨(dú)作為一行,較簡(jiǎn)潔的可以放在代碼行尾。

/**客戶:

客戶是我們將服務(wù)和產(chǎn)品賣給的人或機(jī)構(gòu)。

*/Stringcustomer;/*這部分代碼因?yàn)橐驯凰暗拇a取代,由B.Gustafsson,*于1999年6月4日注釋掉。

如果兩年之后還未使用,將*其刪除。

...*(源代碼)*///遵照Sarek的規(guī)定,給所有//超過$1000的發(fā)貨單//打5%的折扣。

讓利活//動(dòng)于1995年2月開始.-5-2.3.注釋哪些部分類:

類的目的、即類所完成的功能,注釋出采用的不變量。

接口:

設(shè)置接口的目的、它應(yīng)如何被使用以及如何不被使用。

成員函數(shù)注釋:

對(duì)于設(shè)置與獲取成員函數(shù),在成員變量已有說明的情況下,可以不加注釋;普通成員函數(shù)要求說明完成什么功能,參數(shù)含義是什么返回什么;普通成員函數(shù)內(nèi)部注釋:

控制結(jié)構(gòu),代碼做了些什么以及為什么這樣做,處理順序等。

實(shí)參/參數(shù):

參數(shù)含義、及其它任何約束或前提條件字段/屬性:

字段描述局部變量:

無特別意義的情況下不加注釋3.文件樣式約定3.1.Java(*.java)所有的Java(*.java)文件都必須遵守如下的樣式規(guī)則:

3.1.1.版權(quán)信息版權(quán)信息必須在java文件的開頭,比如:

其他不需要出現(xiàn)在javadoc的信息也可以包含在這里。

3.1.2.Package/Importspackage行要在import行之前,import中標(biāo)準(zhǔn)的包名要在本地的包名之前,而且按照字母順序排列。

如果import行中包含了同一個(gè)包中的不同子目錄,則應(yīng)該用*來處理。

/***Copyright2005ShandongSuccessSoftCo.Ltd.*Allrightreserved.*/-6-這里java.io.*是用來代替InputStreamandOutputStream的。

3.1.3.Class接下來的是類的注釋,一般是用來解釋類的,包含版本信息。

接下來是類定義,包含了在不同的行的extends和implements3.1.4.ClassFields接下來是類的成員變量:

public的成員變量必須生成文檔(JavaDoc)。

proceted、private和package定義的成員變量如果名字含義明確的話,可以沒有注釋。

packagehotlava.net.stats;importjava.io.*;importjava.util.Observable;importhotlava.util.Application;/***pTitle:文件名稱/p*pDescription:類內(nèi)容的簡(jiǎn)介/p*pb更新記錄:

/b*格式:[更新日期][修改的版本][操作人]內(nèi)容br*[2005-06-28][1.0][張三]完善create方法。

br*/p*pCopyright:Copyright(c)2005/p*pCompany:山東軟件有限公司/p*@version:1.1*/publicclassCounterSetextendsObservableimplementsCloneable{}/***Packetcounters*/protectedint[]packets;-7-3.1.5.存取方法(類的設(shè)置與獲取成員函數(shù))接下來是類變量的存取的方法。

它只是簡(jiǎn)單的用來將類的變量賦值獲取值的話,可以簡(jiǎn)單的寫在一行上,如類的成員變量已經(jīng)有注釋,類變量的存取方法可以沒有注釋。

要求說明的是,對(duì)于集合,加入成員函數(shù)來插入和刪除項(xiàng);另其它的方法不要寫在一行上。

3.1.6.構(gòu)造函數(shù)接下來是構(gòu)造函數(shù),它應(yīng)該用遞增的方式寫(比如:

參數(shù)多的寫在后面)。

3.1.7.克隆方法如果這個(gè)類是可以被克隆的,那么下一步就是clone方法:

publicint[]getPackets(){returnthis.packets;}publicvoidsetPackets(int[]packets){this.packets=packets;}publicCounterSet(){this.size=100;}publicCounterSet(intsize){this.size=size;}-8-3.1.8.類方法(類的普通成員函數(shù))下面開始寫類的方法:

3.1.9.toString方法一般情況下,每一個(gè)類都應(yīng)該定義toString方法:

3.1.10.main方法普通類,考慮置入一個(gè)main()方法,其中包含用于測(cè)試那個(gè)類的代碼,如果包含了main()方法,那么它應(yīng)該寫在類的底部。

publicObjectclone(){try{}catch(CloneNotSupportedExceptione){}}/***Setthepacketcounters*paramr1-*paramr2-**/protectedfinalvoidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)throwsIllegalArgumentException{//Ensurethearraysareofequalsize}publicStringtoString(){}-9-3.2.JavaServerPage(*.jsp)所有的Jsp(*.jsp)文件都必須遵守如下的樣式規(guī)則:

3.2.1.版本信息文件開頭應(yīng)有一個(gè)文件的版本注釋,格式為3.2.2.tag關(guān)鍵tag的書寫順序?yàn)樽⒁馐马?xiàng)使用國(guó)標(biāo)擴(kuò)展字符集(GBK)作為content的charsetcontentType在被包含的文件一定不能寫,而其他文件一定要寫建議用以下兩種格式:

%--Copyright:

Copyright2005--%%--Company:

山東軟件有限公司--%%功能簡(jiǎn)介:

對(duì)這一個(gè)實(shí)現(xiàn)的功能作一個(gè)簡(jiǎn)介。

傳入?yún)?shù):

列出該頁接收的所有參數(shù)傳入?yún)?shù)的說明,以及沒有接收到參數(shù)的處理方式如果有session,列出所有的session,然后說明session,以及session的影響%%--Version:

版本號(hào)--%%--[更新日期][修改的版本][操作人]內(nèi)容--%%@pageimport=%jsp:useBeanid=scope=class=/%@includefile=%%@pageContentType=text/html;charset=GBK%-10-tag一律用小寫,屬性的值用雙引號(hào)引起來。

出錯(cuò)信息定向到公用的出錯(cuò)頁面3.2.3.定義在JSP中定義方法或類變量時(shí)使用單獨(dú)行%!開頭,單獨(dú)行%結(jié)尾,注釋參見2,代碼塊縮進(jìn)參見4.2。

3.2.4.值輸出輸出值時(shí)使用%=value%。

3.2.5.嵌入代碼段使用單獨(dú)行%開頭,單獨(dú)行%結(jié)尾,注釋參見2,代碼塊縮進(jìn)參見4.2。

%@pageimport=java.util.*,java.sql.*%%--多個(gè)import之間用逗號(hào)隔開,結(jié)尾不要分號(hào)--%%@pageimport=java.util.*%%@pageimport=java.sql.*%%--所有的import均分開寫--%%!/**userId*/privateStringuserId;/***isValidData*/privatebooleanisValidData(){}%%for(inti=0;i10;i++){out.println(i);}%-11-4.其它代碼書寫風(fēng)格約定4.1.文檔化必須用javadoc來為類生成文檔。

不僅因?yàn)樗菢?biāo)準(zhǔn),這也是被各種java編譯器都認(rèn)可的方法。

使用@author標(biāo)記是不被推薦的,因?yàn)榇a不應(yīng)該是被個(gè)人擁有的。

4.2.縮進(jìn)縮進(jìn)應(yīng)該是每行3個(gè)空格。

不要在源文件中保存Tab字符,在使用不同的源代碼管理工具時(shí)Tab字符將因?yàn)橛脩粼O(shè)置的不同而擴(kuò)展為不同的寬度。

4.3.頁寬頁寬應(yīng)該設(shè)置為80字符。

源代碼一般不會(huì)超過這個(gè)寬度,并導(dǎo)致無法完整顯示,但這一設(shè)置也可以靈活調(diào)整。

在任何情況下,超長(zhǎng)的語句應(yīng)該在一個(gè)逗號(hào)或者一個(gè)操作符后折行。

一條語句折行后,應(yīng)該比原來的語句再縮進(jìn)3個(gè)字符。

4.4.{}對(duì){}中的語句應(yīng)該單獨(dú)作為一行。

例如:

4.5.括號(hào)左括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格;同樣,右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格。

例如:

if(i0){i++;}CallProc(AParameter);//不符合規(guī)范CallProc(AParameter);//符合規(guī)范-12-不要在語句中使用無意義的括號(hào),括號(hào)只應(yīng)該為達(dá)到某種目的而出現(xiàn)在源代碼中。

4.6.運(yùn)算符每個(gè)運(yùn)算符與兩邊的字符之間都應(yīng)該有一個(gè)空格。

4.7.參數(shù)之間多個(gè)參數(shù)之間的,應(yīng)緊跟前面的參數(shù),與后面的參數(shù)之間有一個(gè)空格。

4.8.JSP文件命名采用完整的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論