代碼編寫規(guī)范目的:能夠在編碼過程中實(shí)現(xiàn)規(guī)范化,為以后的程序開發(fā)中養(yǎng)成良好的行為習(xí)慣。
代碼編寫規(guī)范使用范圍:J2EE項(xiàng)目開發(fā)。
包命名規(guī)范:
目的:包的命名規(guī)范應(yīng)當(dāng)體現(xiàn)出項(xiàng)目資源良好的劃分
servlet類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.servlet
例如:net.linkcn.web.servlet
自定義標(biāo)簽類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.tags
例如:net.linkcn.web.tags
過濾器類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.filter
例如:net.linkcn.web.filter
Action類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.struts.action
例如:net.linkcn.web.struts.action
ActionForm類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.struts.form
例如:net.linkcn.web.struts.form
Javabean所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.struts.service.impl
例如:net.linkcn.web.service.impl
Javabean實(shí)現(xiàn)接口命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.web.service
例如:net.linkcn.web.service
DAO類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.dao.impl
例如:net.linkcn.dao.impl
DAO類所實(shí)現(xiàn)的接口在包中命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.dao
例如:net.linkcn.dao
POJO類與hbm文件所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.dao.hbm
例如:net.linkcn.dao.hbm
全局公共類、接口類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.global
例如:net.linkcn.global
全局工具類所在包命名規(guī)范:公司名稱.開發(fā)組名稱.項(xiàng)目名稱.util
例如:net.linkcn.util
類命名規(guī)范
基本命名規(guī)范:
類、接口命名
命名規(guī)范:以大寫字母開頭,如果有多個(gè)單詞,每個(gè)單詞頭字母大寫
例如:StudentInfo
接口命名
命名規(guī)范:以大寫字母"I"開頭,如果有多個(gè)單詞,每個(gè)單詞頭字母大寫
例如:IStudentInfo
接口實(shí)現(xiàn)類命名:
命名規(guī)范:將實(shí)現(xiàn)的接口名稱的首字母"I"去掉,以"Impl作為結(jié)尾",如果有多個(gè)單詞,每個(gè)單詞頭字母大寫。
例如:StudentInfoImpl
J2EE+SSH框架命名規(guī)范
servlet類命名:
命名規(guī)范:以Servlet單詞結(jié)尾
例如:LoginServlet
POJO命名:
使用hibernate自動(dòng)生成的類即可
DAO類命名:
使用hibernate自動(dòng)生成的類即可
Action類命名:
命名規(guī)范:Action的命名以POJO名稱來制定,POJO名稱Action
例如:
一個(gè)POJO名稱為Diary,其對應(yīng)的action為DiaryAction
ActionForm類命名:
命名規(guī)范:ActionForm的命名以POJO名稱來制定,POJO名稱Form
例如:
一個(gè)POJO名稱為Diary,其對應(yīng)的actioForm為DiaryForm
業(yè)務(wù)邏輯接口命名:
命名規(guī)范:業(yè)務(wù)邏輯接口的命名以POJO名稱來制定,IPOJO名稱Service
例如:
一個(gè)POJO名稱為Diary,其對應(yīng)的業(yè)務(wù)邏輯接口為IDiaryService
業(yè)務(wù)邏輯實(shí)現(xiàn)類命名:
命名規(guī)范:業(yè)務(wù)邏輯接口實(shí)現(xiàn)類的命名以POJO名稱來制定
例如:
一個(gè)POJO名稱為Diary,對應(yīng)的業(yè)務(wù)邏輯接口實(shí)現(xiàn)類名為DiaryServiceImpl
類變量命名:
命名規(guī)范:變量名首字母必須小寫,如果該變量名有多個(gè)單詞組成,后面的單 詞首字母大寫,單詞與單詞之間不要使用"_"做連接,變量名訪問控制必須為私有, 可以對其增加setter與getter方法。
例如:
private int studentAge;
public int getStudentAge(){
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge=studentAge;
}
常量命名:
命名規(guī)范:所有字母大寫,如果有多個(gè)單詞組成,單詞與單詞之間以” _“隔開。而 且該變量必須是公共、靜態(tài)、final類型
例如:public static final String USER_NAME=”userName“;
方法命名
命名規(guī)范:首字母必須小寫,如果該變量名有多個(gè)單詞組成,后面的單詞首字母 大寫,單詞與單詞之間不要使用"_"做連接。單詞不要使用名詞。
例如:public int checkLogin(String name,String pwd){}
注釋規(guī)范:注釋規(guī)范是整個(gè)開發(fā)規(guī)范中最為重要的組成部分,必須嚴(yán)格執(zhí)行。
類的注釋:
作用:注釋整個(gè)類,簡單概述該類作用。
書寫規(guī)范:類的注釋必須寫在該類的聲明語法之前。在注釋中要描述該類的基 本作用,作者,日期,版本,公司名稱,版權(quán)聲明。
格式:
/* *
* 類功能描述:(大致描述類的功能)
* @author:編寫者名稱
*
* @version: 類文件的版本號 從1.0開始(自己確定版本號的增改
* 情況), 修改情況(修改時(shí)間、作者、改動(dòng)情況)
*
* @see 包名.參考類名 (列出父類,引入類,每個(gè)類占一行),如果有
* 可省略
* 相關(guān)數(shù)據(jù)如:(便于理解本類的一些常量數(shù)據(jù)及某些數(shù)據(jù)的格式
* 或認(rèn)為比較重要的數(shù)據(jù),如果沒有可省略)
*/
類的聲明語法
例如:
/**
* <p>Title:管理員模塊數(shù)據(jù)處理類 </p>
* <p>Description: 兩個(gè)數(shù)相加</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company:華騰軟件公司</p>
*
* @author 童金虎
*
* @version $Revision: 1.7 $ $Date: 2007/07/08$
*/
public class AdminDAO
變量、常量注釋:
作用:簡單描述該變量的意義。
書寫規(guī)范:變量注釋必須寫在變量定義之前,簡單描述其代表的意義。
格式:
/**
* 變量功能描述:(大致描述變量的功能)
*/
例如:
/**
*定義年齡變量
*/
public int age;
方法注釋:
作用:對該方法功能簡單描述,其參數(shù)、返回值意義的注解。
書寫規(guī)范:方法注釋必須寫在方法定義之前。該注釋包括:方法其功能的簡單 描述,方法的參數(shù)、返回值類型、返回值意義簡單的描述。
格式:
/**
* 方法功能說明
* @param args (參數(shù)類型可以寫在參數(shù)后,也可以省
* 略。每個(gè)參數(shù)占一行)
* @return 輸出參數(shù)(多種情況寫在同一行)
* @see 類#參考方法 (與此方法有調(diào)用關(guān)系的方法供參
* 考,不必每個(gè)方法都完整列出,要選擇有意義的,每個(gè)
* 方法占一行)
* @exception 異常處理類(方法中能夠引發(fā)的異常,每
* 個(gè)異常占一行)
*/
例如:
/**
* 修改管理員密碼
* @param adminId 管理員編號
* @param oldPassword 舊密碼
* @param password 新密碼
* @return boolean 是否編輯成功
* @throws UserException
* @throws ServiceException
*/
public booleaneditAdminPassword(int adminId,String oldPassword,
String password) throws UserException,ServiceException;
Jsp頁面命名:
命名規(guī)范:jsp頁面名稱要以小寫字母開頭,如果有多個(gè)單詞組成,后面的單詞以 大寫字母開頭。名稱要體現(xiàn)出該頁面的意義,最好能夠與模塊名稱聯(lián)系在一起。
例如:
login.jsp --登錄頁面
register.jsp --注冊頁面
message.jsp --客戶留言頁面
J2EE項(xiàng)目工程文件夾組織規(guī)范:
目的:規(guī)范學(xué)員web應(yīng)用程序的資源組織形式,形成良好的文件組織習(xí)慣。文件的組織形式應(yīng)當(dāng)體現(xiàn)模塊的劃分。
根據(jù)eclipse工具的特征,項(xiàng)目的目錄結(jié)構(gòu)為:
src
----存放java文件
WebRoot
|--images --存放web程序所需的公共圖片
|--css --存放web程序所需的公共樣式表
|--js --存放web程序所需的公共js文件
|--commons --存放web程序所需的公共文件
|--功能模塊文件夾(存放與某個(gè)功能模塊相關(guān)的資源)
|--images --存放與該功能模塊相關(guān)的圖片
|--css --存放與該模塊相關(guān)的樣式表文件
|--js --存放與該模塊相關(guān)的js文件
|--jsp、html頁面
|--WEB-INF
|--classes
|--lib
|--tld文件
J2EE項(xiàng)目提交規(guī)范
項(xiàng)目完成時(shí)要將項(xiàng)目作為一個(gè)產(chǎn)品交付用戶,良好的項(xiàng)目組織規(guī)范可以使用戶可以方便的找尋項(xiàng)目中需要的資源,同時(shí)也是一個(gè)公司專業(yè)性的體現(xiàn)。項(xiàng)目提交時(shí),要按照下列文件格式進(jìn)行提交。
項(xiàng)目主文件夾:
作用:存放項(xiàng)目其他資源文件。
命名規(guī)范:時(shí)間_班級編號_第X小組。
例如:070706_GS2T18_第四小組。
項(xiàng)目主文件夾下面包括以下文件夾和文件:
|--src:保存.java文件。
|--database:保存數(shù)據(jù)庫的腳本文件或者數(shù)據(jù)庫備份文件。
|--source:保存eclipse工程中WebRoot目錄下的所有文件。
|--depend:保存編譯該程序必須依賴的其他jar文件。
|--javadoc:保存所有類生成的javadoc api文檔。
|--war:保存程序的歸檔文件
|--xx.war:已經(jīng)打包好的工程文件,可以直接運(yùn)行。
|--project:保存開發(fā)項(xiàng)目原工程代碼及文件。
|--產(chǎn)品說明書.doc:圖文方式展現(xiàn)該產(chǎn)品使用方法。
|--build.xml:ant腳本,用于生成運(yùn)行的war文件。
|--項(xiàng)目解說.ppt:進(jìn)行項(xiàng)目講解的ppt(ppt僅供在校模擬項(xiàng)目使用,不用于其他商業(yè)用途)
注:一個(gè)完整的項(xiàng)目中,數(shù)據(jù)庫必須有一定量的有效的測試數(shù)據(jù)來支持該程序的運(yùn)行