J2EE開發時的包命名規則,養成良好的開發習慣

FrankYou發表於2017-07-24

程式碼編寫規範目的:能夠在編碼過程中實現規範化,為以後的程式開發中養成良好的行為習慣。
程式碼編寫規範使用範圍: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

相關文章