J2ee核心:J2EE項目代碼編寫規(guī)范

字號:

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