JAVA開發(fā)規(guī)則規(guī)范_第1頁(yè)
JAVA開發(fā)規(guī)則規(guī)范_第2頁(yè)
JAVA開發(fā)規(guī)則規(guī)范_第3頁(yè)
JAVA開發(fā)規(guī)則規(guī)范_第4頁(yè)
JAVA開發(fā)規(guī)則規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Java開發(fā)規(guī)范×××2011-09-28目錄1.引言2.命名規(guī)范3.注釋規(guī)范4.編碼規(guī)范1.引言-綜述軟件開發(fā)涉及到各方面人員的交互、協(xié)作,為了有效地進(jìn)行項(xiàng)目開發(fā)的溝通,完善代碼的維護(hù)和交付,有必要在項(xiàng)目開發(fā)中采用統(tǒng)一的軟件開發(fā)標(biāo)準(zhǔn)。無論從時(shí)間跨度還是從工作量來說,一個(gè)軟件系統(tǒng)生存期的大部分是維護(hù),不是開發(fā)。你今天所編寫的代碼,會(huì)一直使用很多年,并且很有可能被其他人維護(hù)和改進(jìn)。所以,我們必須努力寫出“干凈”和易讀的代碼。1.引言-好處方便軟件維護(hù)據(jù)統(tǒng)計(jì),80%的軟件開發(fā)費(fèi)用在維護(hù),規(guī)范化的代碼才方便維護(hù),降低維護(hù)成本。提高可讀性好的編碼規(guī)范能夠大大增強(qiáng)代碼的可讀性,便于開發(fā)人員快速的理解新代碼。保證軟件質(zhì)量規(guī)范化的代碼是軟件質(zhì)量的保證手段之一,也是軟件過程能夠流暢的基礎(chǔ)。目錄1.引言2.命名規(guī)范3.注釋規(guī)范4.編碼規(guī)范2.命名規(guī)范基本命名規(guī)范常量命名規(guī)范變量命名規(guī)范方法命名規(guī)范包的命名規(guī)范2.命名規(guī)范-基本命名規(guī)范字符集在26個(gè)英文字母、0到9的阿拉伯?dāng)?shù)字和下劃線之中命名需要有一定的意義,推薦采用問題域中的術(shù)語(yǔ)命名命名盡量的短,如果命名太長(zhǎng),可以采用別名的方式,或者縮寫來簡(jiǎn)化命名不要用前導(dǎo)下劃線,也不要在命名的末尾用下劃線2.命名規(guī)范-常量命名規(guī)范所有的字符都必須大寫。采用有意義的單詞組合表達(dá),單詞與單詞之間以“_”下劃線隔開。命名盡量簡(jiǎn)短,不要超過16個(gè)字符例如:

publicfinalintMAX_SIZE=120;publicfinalintMAX_WIDTH=100;publicfinalStringPROPERTY_NAME="menu";2.命名規(guī)范-變量命名規(guī)范避免在命名中采用數(shù)字,除非有其他特殊含義變量名稱是名詞意義第一個(gè)單詞全部小寫,后續(xù)的每個(gè)單詞采用首字母大寫,其余小寫命名盡量簡(jiǎn)短,不要超過16個(gè)字符除了生命周期很短的臨時(shí)變量外,避免采用單字符作為變量名2.命名規(guī)范-變量命名規(guī)范在某些情況下,變量可能需要加上類型前綴(后綴),前綴(后綴)與變量名稱的實(shí)體部分沒有任何間隔例如:

publicStringstrName;ListuserList=newArrayList();ButtonsubmitBtn=newButton();

2.命名規(guī)范-方法命名規(guī)范命名多數(shù)為動(dòng)詞結(jié)構(gòu)第一個(gè)單詞采用小寫,后續(xù)的每個(gè)單詞采用首字母大寫,其余小寫,沒有特別理由不用下劃線作為分隔符構(gòu)造方法的命名與類名一致2.命名規(guī)范-方法命名規(guī)范在Java中對(duì)屬性方法命名遵循JavaBean的標(biāo)準(zhǔn):getter方法:get+屬性名,對(duì)boolean型采用is+屬性名,有些特定的屬性名用has,can代替is可能更好setter方法:set+屬性名

StringgetName();booleanisStopped();booleanhasChild();

2.命名規(guī)范-包的命名規(guī)范JSP目錄規(guī)范目錄說明common公共資源(包括公共jsp,公共js組件,部門公共js等等)pages應(yīng)用的頁(yè)面文件目錄pages/power應(yīng)用的power模塊的頁(yè)面文件目錄pages/js公共腳本styles頁(yè)面樣式文件目錄WEB-INFWeb應(yīng)用系統(tǒng)部分,包括配置文件、庫(kù)文件、類文件等widgetsWEB組件目錄2.命名規(guī)范-包的命名規(guī)范JAVA目錄規(guī)范包名說明**.common公共類文件目錄**.common.constants公共常量靜態(tài)類目錄**.common.filter公共過濾器目錄**.common.util公共工具類目錄**.common.

servlet公共servlet類目錄**.modelPOJO對(duì)象目錄**.facade接口目錄**.springSpring方式實(shí)現(xiàn)目錄**.

vo自定義VO類**.webStruts2方式的Action目錄目錄1.引言2.命名規(guī)范3.注釋規(guī)范4.編碼規(guī)范3.注釋規(guī)范基本規(guī)范三種注釋方式說明變量注釋方法注釋算法注釋修改記錄3.注釋規(guī)范-基本規(guī)范注釋應(yīng)該使代碼更加清晰易懂注釋要簡(jiǎn)單明了,只要提供能夠明確理解程序所必要的信息就可以了注釋不僅描述程序做了什么,還要描述為什么要這樣做,以及約束對(duì)于一般的getter、setter方法不用注釋注釋不能嵌套一般注釋要使用中文編寫3.注釋規(guī)范-三種注釋方式說明3.1文檔注釋/***/可以用多行,一般用來對(duì)類、接口、成員方法、成員變量、靜態(tài)字段、靜態(tài)方法、常量進(jìn)行說明。Javadoc可以用它來產(chǎn)生代碼的文檔。為了可讀性,可以有縮進(jìn)和格式控制。文檔注釋常采用一些標(biāo)簽進(jìn)行文檔的特定用途描述,用于幫助Javadoc產(chǎn)生文檔。

3.注釋規(guī)范-三種注釋方式說明

常用的文檔注釋標(biāo)簽有:標(biāo)簽Usedfor目的@author類/接口描述代碼的作者,每個(gè)作者對(duì)應(yīng)一個(gè)這樣的標(biāo)簽@deprecated類/成員方法說明該段API已經(jīng)被廢除@exception

或@throws成員方法描述方法拋出的異常每個(gè)異常一個(gè)對(duì)應(yīng)一個(gè)這樣的標(biāo)簽@param成員方法描述成員方法中的參數(shù)用途和意義,一個(gè)參數(shù)對(duì)應(yīng)一個(gè)這樣的標(biāo)簽@return成員方法描述成員方法的返回值的意義…...3.注釋規(guī)范-三種注釋方式說明3.2行注釋//一次只能注釋一行,一般用來簡(jiǎn)短的描述某一個(gè)局部變量在該程序塊的作用。3.3塊注釋:/**/可以用多行,一般用來對(duì)程序塊、算法實(shí)現(xiàn)、類的實(shí)現(xiàn)進(jìn)行說明。為了可讀性,可以有縮進(jìn)和格式控制。一般在行注釋不能滿足注釋需要的時(shí)候采用。一般用來作為文件頭、復(fù)雜算法的說明,方法體內(nèi)的復(fù)雜過程說明等3.注釋規(guī)范-變量注釋成員變量、類靜態(tài)變量采用文檔注釋,對(duì)成員變量的注釋通常包括:變量的意義變量的合法值域?qū)Σl(fā)訪問的限制局部變量,如算法相關(guān)的變量采用塊或行注釋

voidfunc(){inti;//用于循環(huán)計(jì)數(shù)

…………}3.注釋規(guī)范-方法注釋描述函數(shù)的功能,對(duì)成員方法,靜態(tài)方法一般采用文檔描述,特別是公開的方法。注釋可以很詳細(xì),為了可讀性強(qiáng)也可包含格式控制。3.注釋規(guī)范-算法注釋算法描述指在實(shí)現(xiàn)級(jí)別的描述注釋,如在方法內(nèi)的注釋,對(duì)類實(shí)現(xiàn)的注釋,這樣使得程序更加易懂,方便程序算法的修改和BUG的修復(fù)。一般采用塊/行注釋,對(duì)于簡(jiǎn)短的描述采用行注釋,不要用文檔注釋。注釋的主要內(nèi)容包括:某些局部變量的意義和用途復(fù)雜的控制結(jié)構(gòu)的注釋,如循環(huán),分枝,條件表達(dá)式。說明控制所要達(dá)到的目標(biāo)復(fù)雜的代碼段的描述,說明代碼完成的功能,以及為什么這樣做。使用@inheritDoc開始3.注釋規(guī)范-修改記錄注釋修改記錄注釋的格式為: /**MODIFYBEGIN修改人SVN賬號(hào),修改類型,日期 JAVA代碼…… MODIFYEND*//**MODIFYBEGINguoqingwei,UPDATE,2011-09-28JAVA代碼……MODIFYEND*/目錄1.引言2.命名規(guī)范3.注釋規(guī)范4.編碼規(guī)范4.編碼規(guī)范基本規(guī)則類編寫規(guī)范變量編寫規(guī)范方法編寫規(guī)范語(yǔ)言使用及書寫規(guī)范4.編碼規(guī)范-基本原則一個(gè)類文件最好不要超過2000行盡可能縮小對(duì)象的作用域,這樣對(duì)象的可見范圍和生存期也都會(huì)盡可能地小一個(gè)方法所完成的功能要單一,不同的功能封裝為不同的方法盡可能的處理異常或轉(zhuǎn)換異常,不要一味的包裝異常4.編碼規(guī)范-基本原則如果對(duì)象在某個(gè)特定范圍內(nèi)必須被清理(而不是作為垃圾被回收),請(qǐng)使用帶有finally子句的try塊,在finally子句中進(jìn)行清理。對(duì)于把一些邏輯相關(guān)的類組織在一起,可以考慮把一個(gè)類的定義放在另一個(gè)類的定義中,這種情況推薦使用內(nèi)部類(比如界面層中的事件響應(yīng)等)。內(nèi)部類擁有所有外圍類所有成員的訪問權(quán)。4.編碼規(guī)范-基本原則對(duì)成員變量的訪問最好通過getter/setter方法,這樣能夠保證訪問的合法性,以及代碼調(diào)整在處理可變String的時(shí)候要必須使用StringBuffer類,可變范圍在5次以內(nèi)可以使用String4.編碼規(guī)范-基本原則使用java標(biāo)準(zhǔn)庫(kù)提供的容器。精通他們的用法,將極大地提高工作效率。優(yōu)先選擇ArrayList來處理順序結(jié)構(gòu),選擇HashSet來處理集合,選擇HashMap來處理關(guān)聯(lián)數(shù)組,選擇linkedList來處理堆棧和隊(duì)列,它對(duì)順序訪問進(jìn)行了優(yōu)化,向List中間插入與刪除的開銷小,但隨機(jī)訪問則較慢。4.編碼規(guī)范-類編寫規(guī)范類的組織結(jié)構(gòu),一般按照如下的順序常量聲明靜態(tài)變量聲明成員變量聲明構(gòu)造函數(shù)部分Finalize部分成員方法部分靜態(tài)方法部分4.編碼規(guī)范-變量編寫規(guī)范對(duì)成員變量,盡量采用private每一個(gè)變量聲明/定義占一行(參數(shù)變量除外)局部變量在使用前必須初始化,一般在聲明時(shí)初始化變量的聲明要放在程序塊的開始位置inta;intb;4.編碼規(guī)范-方法編寫規(guī)范對(duì)成員方法,不要輕易的采用public的成員變量。主要的修飾符有public,private,protected,無空方法中方法聲明和函數(shù)體可都在一行。如:voidfunc(){}方法和方法之間空一行方法的文檔注釋放在方法的緊前面,不能空一行4.編碼規(guī)范-方法編寫規(guī)范避免過多的參數(shù)列表,盡量控制在5個(gè)以內(nèi),若需要傳遞多個(gè)參數(shù)時(shí),當(dāng)使用一個(gè)容納這些參數(shù)的對(duì)象進(jìn)行傳遞,以提高程序的可讀性和可擴(kuò)展性方法中的循環(huán)嵌套不能超過2層每個(gè)方法盡量代碼行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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)論