代碼編寫規范目的:能夠在編碼過程中實現規范化,為以后的程序開發中養成良好的行為習慣。
代碼編寫規范使用范圍:J2EE項目開發。
包命名規范:
目的:包的命名規范應當體現出項目資源良好的劃分
servlet類所在包命名規范:公司名稱.開發組名稱.項目名稱.web.servlet
例如:net.linkcn.web.servlet
自定義標簽類所在包命名規范:公司名稱.開發組名稱.項目名稱.web.tags
例如:net.linkcn.web.tags
過濾器類所在包命名規范:公司名稱.開發組名稱.項目名稱.web.filter
例如:net.linkcn.web.filter
Action類所在包命名規范:公司名稱.開發組名稱.項目名稱.web.struts.action
例如:net.linkcn.web.struts.action
ActionForm類所在包命名規范:公司名稱.開發組名稱.項目名稱.web.struts.form
例如:net.linkcn.web.struts.form
Javabean所在包命名規范:公司名稱.開發組名稱.項目名稱.web.struts.service.impl
例如:net.linkcn.web.service.impl
Javabean實現接口命名規范:公司名稱.開發組名稱.項目名稱.web.service
例如:net.linkcn.web.service
DAO類所在包命名規范:公司名稱.開發組名稱.項目名稱.dao.impl
例如:net.linkcn.dao.impl
DAO類所實現的接口在包中命名規范:公司名稱.開發組名稱.項目名稱.dao
例如:net.linkcn.dao
POJO類與hbm文件所在包命名規范:公司名稱.開發組名稱.項目名稱.dao.hbm
例如:net.linkcn.dao.hbm
全局公共類、接口類所在包命名規范:公司名稱.開發組名稱.項目名稱.global
例如:net.linkcn.global
全局工具類所在包命名規范:公司名稱.開發組名稱.項目名稱.util
例如:net.linkcn.util
類命名規范
基本命名規范:
類、接口命名
命名規范:以大寫字母開頭,如果有多個單詞,每個單詞頭字母大寫
例如:StudentInfo
接口命名
命名規范:以大寫字母"I"開頭,如果有多個單詞,每個單詞頭字母大寫
例如:IStudentInfo
接口實現類命名:
命名規范:將實現的接口名稱的首字母"I"去掉,以"Impl作為結尾",如果有多個單詞,每個單詞頭字母大寫。
例如:StudentInfoImpl
J2EE+SSH框架命名規范
servlet類命名:
命名規范:以Servlet單詞結尾
例如:LoginServlet
POJO命名:
使用hibernate自動生成的類即可
DAO類命名:
使用hibernate自動生成的類即可
Action類命名:
命名規范:Action的命名以POJO名稱來制定,POJO名稱Action
例如:
一個POJO名稱為Diary,其對應的action為DiaryAction
ActionForm類命名:
命名規范:ActionForm的命名以POJO名稱來制定,POJO名稱Form
例如:
一個POJO名稱為Diary,其對應的actioForm為DiaryForm
業務邏輯接口命名:
命名規范:業務邏輯接口的命名以POJO名稱來制定,IPOJO名稱Service
例如:
一個POJO名稱為Diary,其對應的業務邏輯接口為IDiaryService
業務邏輯實現類命名:
命名規范:業務邏輯接口實現類的命名以POJO名稱來制定
例如:
一個POJO名稱為Diary,對應的業務邏輯接口實現類名為DiaryServiceImpl
類變量命名:
命名規范:變量名首字母必須小寫,如果該變量名有多個單詞組成,后面的單 詞首字母大寫,單詞與單詞之間不要使用"_"做連接,變量名訪問控制必須為私有, 可以對其增加setter與getter方法。
例如:
private int studentAge;
public int getStudentAge(){
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge=studentAge;
}
常量命名:
命名規范:所有字母大寫,如果有多個單詞組成,單詞與單詞之間以” _“隔開。而 且該變量必須是公共、靜態、final類型
例如:public static final String USER_NAME=”userName“;
方法命名
命名規范:首字母必須小寫,如果該變量名有多個單詞組成,后面的單詞首字母 大寫,單詞與單詞之間不要使用"_"做連接。單詞不要使用名詞。
例如:public int checkLogin(String name,String pwd){}
注釋規范:注釋規范是整個開發規范中最為重要的組成部分,必須嚴格執行。
類的注釋:
作用:注釋整個類,簡單概述該類作用。
書寫規范:類的注釋必須寫在該類的聲明語法之前。在注釋中要描述該類的基 本作用,作者,日期,版本,公司名稱,版權聲明。
格式:
類的聲明語法
例如:
public class AdminDAO
變量、常量注釋:
作用:簡單描述該變量的意義。
書寫規范:變量注釋必須寫在變量定義之前,簡單描述其代表的意義。
格式:
例如:
public int age;
方法注釋:
作用:對該方法功能簡單描述,其參數、返回值意義的注解。
書寫規范:方法注釋必須寫在方法定義之前。該注釋包括:方法其功能的簡單 描述,方法的參數、返回值類型、返回值意義簡單的描述。
格式:
例如:
public booleaneditAdminPassword(int adminId,String oldPassword,
String password) throws UserException,ServiceException;
Jsp頁面命名:
命名規范:jsp頁面名稱要以小寫字母開頭,如果有多個單詞組成,后面的單詞以 大寫字母開頭。名稱要體現出該頁面的意義,最好能夠與模塊名稱聯系在一起。
例如:
login.jsp --登錄頁面
register.jsp --注冊頁面
message.jsp --客戶留言頁面
J2EE項目工程文件夾組織規范:
目的:規范學員web應用程序的資源組織形式,形成良好的文件組織習慣。文件的組織形式應當體現模塊的劃分。
根據eclipse工具的特征,項目的目錄結構為:
src
----存放java文件
WebRoot
|--images --存放web程序所需的公共圖片
|--css --存放web程序所需的公共樣式表
|--js --存放web程序所需的公共js文件
|--commons --存放web程序所需的公共文件
|--功能模塊文件夾(存放與某個功能模塊相關的資源)
|--images --存放與該功能模塊相關的圖片
|--css --存放與該模塊相關的樣式表文件
|--js --存放與該模塊相關的js文件
|--jsp、html頁面
|--WEB-INF
|--classes
|--lib
|--tld文件
J2EE項目提交規范
項目完成時要將項目作為一個產品交付用戶,良好的項目組織規范可以使用戶可以方便的找尋項目中需要的資源,同時也是一個公司專業性的體現。項目提交時,要按照下列文件格式進行提交。
項目主文件夾:
作用:存放項目其他資源文件。
命名規范:時間_班級編號_第X小組。
例如:070706_GS2T18_第四小組。
項目主文件夾下面包括以下文件夾和文件:
|--src:保存.java文件。
|--database:保存數據庫的腳本文件或者數據庫備份文件。
|--source:保存eclipse工程中WebRoot目錄下的所有文件。
|--depend:保存編譯該程序必須依賴的其他jar文件。
|--javadoc:保存所有類生成的javadoc api文檔。
|--war:保存程序的歸檔文件
|--xx.war:已經打包好的工程文件,可以直接運行。
|--project:保存開發項目原工程代碼及文件。
|--產品說明書.doc:圖文方式展現該產品使用方法。
|--build.xml:ant腳本,用于生成運行的war文件。
|--項目解說.ppt:進行項目講解的ppt(ppt僅供在校模擬項目使用,不用于其他商業用途)
注:一個完整的項目中,數據庫必須有一定量的有效的測試數據來支持該程序的運行
包的命名
Java包的名字都是由小寫單詞組成。但是由于Java面向對象編程的特性,每一名Java程序員都可以編寫屬于自己的Java包,為了保障每個 Java包命名的唯一性,在最新的Java編程規范中,要求程序員在自己定義的包的名稱之前加上唯一的前綴。由于互聯網上的域名稱是不會重復的,所以程序 員一般采用自己在互聯網上的域名稱作為自己程序包的唯一前綴。
例如: net.frontfree.javagroup
類的命名
類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單詞組成,則每個單詞的首字母均應為大寫例如TestPage;如果類名 稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由于類是設計用來代表對象的,所以在命名類時應盡量 選擇名詞。
例如: Circle
方法的命名
方法的名字的第一個單詞應以小寫字母作為開頭,后面的單詞則用大寫字母開頭。
例如: sendMessge
常量的命名
常量的名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組成,則應該用下劃線來分割這些單詞。
例如: MAX_VALUE
參數的命名
參數的命名規范和方法的命名規范相同,而且為了避免閱讀程序時造成迷惑,請在盡量保證參數名稱為一個單詞的情況下使參數的命名盡可能明確。
Javadoc注釋
Java除了可以采用我們常見的注釋方式之外,Java語言規范還定義了一種特殊的注釋,也就是我們所說的Javadoc注釋,它是用來記錄我們代 碼中的API的。Javadoc注釋是一種多行注釋,以結束,注釋可以包含一些HTML標記符和專門的關鍵詞。使用Javadoc 注釋的好處是編寫的注釋可以被自動轉為在線文檔,省去了單獨編寫程序文檔的麻煩。
例如:
在每個程序的最開始部分,一般都用Javadoc注釋對程序的總體描述以及版權信息,之后在主程序中可以為每個類、接口、方法、字段添加 Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、接口、方法、字段所完成的功能,這句話應單獨占據一行以突出其概括作用,在這句話后面可以跟 隨更加詳細的描述段落。在描述性段落之后還可以跟隨一些以Javadoc注釋標簽開頭的特殊段落,例如上面例子中的@auther和@version,這 些段落將在生成文檔中以特定方式顯示。
變量和常量命名
變量命名的方法采用匈牙利命名法,基本結構為scope_typeVariableName,它使用3字符前綴來表示數據類型,3個字符的前綴必須 小寫,前綴后面是由表意性強的一個單詞或多個單詞組成的名字,而且每個單詞的首寫字母大寫,其它字母小寫,這樣保證了對變量名能夠進行正確的斷句。例如, 定義一個整形變量,用來記錄文檔數量:intDocCount,其中int表明數據類型,后面為表意的英文名,每個單詞首字母大寫。這樣,在一個變量名就 可以反映出變量類型和變量所存儲的值的意義兩方面內容,這使得代碼語句可讀性強、更加容易理解。byte、int、char、long、float、 double、boolean和short。
變量類型和首字母對照關系如下表:
數據類型/對象類型 / 變量前綴 / 備注
byte bye
char chr
float flt
boolean bln 做布爾變量時,使用bln
Integer/int int
String str
Single sng
short sht
Long/long lng
Double/double dbl
Currency cur
Variant bln astr obj vnt 做布爾變量用時,用bln,做字符串數組用時,用astr,做為對象使用時,用obj,不確定時,用vnt。
對于數組,在數據類型的前綴前再增加一個a,例如字符串數組為astr。對于在多個函數內都要使用的全局變量,在前面再增加“g_”。例如一個全局的字符串變量:g_strUserInfo。
在變量命名時要注意以下幾點:
· 選擇有意義的名字,注意每個單詞首字母要大寫。
· 在一段函數中不使用同一個變量表示前后意義不同的兩個數值。
· i、j、k等只作為小型循環的循環索引變量。
· 避免用Flag來命名狀態變量。
· 用Is來命名邏輯變量,如:blnFileIsFound。通過這種給布爾變量肯定形式的命名方式,使得其它開發人員能夠更為清楚
的理解布爾變量所代表的意義。
· 如果需要的話,在變量最后附加計算限定詞,如:curSalesSum。
· 命名不相包含,curSales和curSalesSum。
· Static Final 變量的名字應該都大寫,并且指出完整含義。
· 如果需要對變量名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性。例如,如果在代碼的某些區域中使用intCnt,而在另一些區域中又使用intCount,就會給代碼增加不必要的復雜性。建議變量名中盡量不要出現縮寫。
· 通過在結尾處放置一個量詞,就可創建更加統一的變量,它們更容易理解,也更容易搜索。例如,請使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量詞后綴有:First(一組變量中的第一個)、Last(一組變量中的最后一個)、Next(一組變量中的下一個變量)、Prev(一組變量中的上 一個)、Cur(一組變量中的當前變量)。
· 為每個變量選擇最佳的數據類型,這樣即能減少對內存的需求量,加快代碼的執行速度,又會降低出錯的可能性。用于變量的數據類型可能會影響該變量進行計算所產生的結果。在這種情況下,編譯器不會產生運行期錯誤,它只是迫使該值符合數據類型的要求。這類問題極難查找。
· 盡量縮小變量的作用域。如果變量的作用域大于它應有的范圍,變量可繼續存在,并且在不再需要該變量后的很長時間內仍然占用資源。它們的主要問題是,任何類 中的任何方法都能對它們進行修改,并且很難跟蹤究竟是何處進行修改的。占用資源是作用域涉及的一個重要問題。對變量來說,盡量縮小作用域將會對應用程序的 可靠性產生巨大的影響。
關于常量的命名方法,在JAVA代碼中,無論什么時候,均提倡應用常量取代數字、固定字符串。也就是說,程序中除0,1以外,盡量不應該出現其他數 字。常量可以集中在程序開始部分定義或者更寬的作用域內,名字應該都使用大寫字母,并且指出該常量完整含義。如果一個常量名稱由多個單詞組成,則應該用下 劃線“_”來分割這些單詞如:NUM_DAYS_IN_WEEK、MAX_VALUE。