Java編程規範(企業版)

一、規範存在的意義

 

應用編碼規範對於軟件本身和軟件開發人員而言尤爲重要,有以下幾個原因:

 

1、好的編碼規範可以儘可能的減少一個軟件的維護成本 , 並且幾乎沒有任何一個軟件,在其整個生命週期中,均由最初的開發人員來維護;

 

2、好的編碼規範可以改善軟件的可讀性,可以讓開發人員儘快而徹底地理解新的代碼;

 

3、好的編碼規範可以最大限度的提高團隊開發的合作效率;

 

4、長期的規範性編碼還可以讓開發人員養成好的編碼習慣,甚至鍛煉出更加嚴謹的思維;

 

 

 

二、命名規範

 

1、一般概念

 

1、儘量使用完整的英文描述符

 

2、採用適用於相關領域的術語

 

3、採用大小寫混合使名字可讀

 

4、儘量少用縮寫,但如果用了,必須符合整個工程中的統一定義

 

5、避免使用長的名字(小於 15 個字母爲正常選擇)

 

6、避免使用類似的名字,或者僅僅是大小寫不同的名字

 

7、避免使用下劃線(除靜態常量等)

 

 

 

2、標識符類型說明

 

1、包( Package )的命名

 

Package 的名字應該採用完整的英文描述符,都是由一個小寫單詞組成。並且包名的前綴總是一個頂級域名,

 

通常是 comedugovmilnetorg 等;

如: com.yjhmily.test

 

2、類( Class )的命名

 

類名應該是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。儘量保證類名簡潔而富於描述。

 

使用完整單詞,避免縮寫詞 ( 除非工程內有統一縮寫規範或該縮寫詞被更廣泛使用,像 URL HTML)

 

如: FileDescription

 

3、接口( Interface )的命名

 

基本與 Class 的命名規範類似。在滿足 Classd 命名規則的基礎之上,保證開頭第一個字母爲 I”,

 

便於與普通的 Class區別開。其實現類名稱取接口名的第二個字母到最後,且滿足類名的命名規範;

 

如: IMenuEngine

 

4、枚舉( Enum )的命名

 

基本與 Class 的命名規範類似。在滿足 Classd 命名規則的基礎之上,保證開頭第一個字母爲 E

 

便於與普通的 Class區別開。

如: EUserRole

 

5、異常( Exception )的命名

 

異常( Exception 通常採用字母 e 表示異常,對於自定義的異常類,其後綴必須爲 Exception

 

如: BusinessException

 

6、方法( Method )的命名

 

方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。

 

方法名儘可能的描述出該方法的動作行爲。返回類型爲 Boolean 值的方法一般由“ is ”或“ has ”來開頭

 

如: getCurrentUser() addUser() hasAuthority()

 

7、參數( Param )的命名

 

第一個單詞的首字母小寫,其後單詞的首字母大寫。參數量名不允許以下劃線或美元符號開頭,

 

雖然這在語法上是允許的。參數名應簡短且富於描述。

 

如: public UserContext getLoginUser(String loginName);

 

8、常量字段 Constants )的命名

 

靜態常量字段( static final 全部採用大寫字母,單詞之間用下劃線分隔;

 

如: public static final Long FEEDBACK;

public static Long USER_STATUS;

 

 

 

三、註釋規範

 

一個很好的可遵循的有關注釋的經驗法則是:

 

問問你自己,你如果從未見過這段代碼,要在合理的時間內有效地明白這段代碼,你需要一些什麼信息???

 

1、一般概念

 

1、註釋應該增加代碼的清晰度

 

2、保持註釋的簡潔

 

3、在寫代碼之前或同時寫註釋

 

4、註釋出爲什麼做了一些事,而不僅僅是做了什麼

 

2、註釋哪些部分

 

<1>Java 文件:必須寫明版權信息以及該文件的創建時間和作者;

 

<2>、類:

 

     類的目的、即類所完成的功能,以及該類創建的時間和作者名稱;多人一次編輯或修改同一個類時,

 

應在作者名稱處出現多人的名稱;

 

<3>、接口:

 

     在滿足類註釋的基礎之上,接口註釋應該包含設置接口的目的、它應如何被使用以及如何不被使用。在接口註釋清楚的前提下對應的實現類可以不加註釋;

 

<4>、方法註釋:

 

     對於設置 (Set 方法 ) 與獲取 (Get 方法 ) 成員的方法,在成員變量已有說明的情況下,可以不加註釋;普通成員方法要求說明完成什麼功能,參數含義是什麼且返回值什麼;另外方法的創建時間必須註釋清楚,爲將來的維護和閱讀提供寶貴線索;

 

<5>、方法內部註釋:

 

     控制結構,代碼做了些什麼以及爲什麼這樣做,處理順序等,特別是複雜的邏輯處理部分,要儘可能的給出詳細的註釋;

 

<6>、參數:

 

    參數含義、及其它任何約束或前提條件;

 

<7>、屬性:

 

    字段描述;

 

<8>、局部 ( 中間 ) 變量:

 

     無特別意義的情況下不加註釋;

 

3、註釋格式

 

遵循工程規定的統一註釋格式,一般情況下會以 codetemplates.xml 格式的文件導入 IDE(Eclipse)

 

或者用Eclipse默認的;

 

四、代碼格式規範

 

遵循工程規定的統一代碼格式,一般情況下直接使用 IDE(Eclipse) 自帶的默認代碼格式對代碼進行格式化;

 

 

 

五、其他規範

 

JSP 文件命名

 

採用完整的英文描述說明 JSP 所完成的功能,儘可能包括一個生動的動詞,第一個字母小寫,

 

如: viewMessage.jsp editUser.jsp 等。

 

六、工程特有命名規範

 

1、持久層

 

<1> Hibernate 映射文件及實體

 

與數據庫表名稱完全對應;

如: Advertisement.hbm.xml Advertisement.java

 

<2>、數據訪問 DAO

 

DAO 接口和實現類名稱必須完全符合正常接口和實現類的命名規則,且最後以 DAO 結尾

 

DAO 內的數據訪問方法必須足夠抽象的描述出對數據庫的基本 CRUD 操作;

如: ICrossAdDAO( 接口 ) CrossAdDAO( 實現類 )

 

<3>、各種操作數據庫的 HQL 配置文件

 

HQL 文件的個數原則上與系統的 Services 層的服務個數相等,且以服務名稱命名 HQL 文件;

 

如: resource.hbm.xml

 

2、服務層

 

<1>、服務接口和實現

 

服務接口和實現類必須完全符合正常接口和實現類的命名規則;以工程定義的服務名爲主體,

 

並統一以 Serv 結尾

如: IResourceServ( 服務接口 ) ResourceServ( 接口實現類 )

 

<2>、服務接口方法

 

方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。

 

方法名儘可能的描述出該方法的動作行爲。

 

返回類型爲 Boolean 值:用“ is ”或“ has ”來開頭

得到某數據: get+ 數據描述名詞複數 + 數據類型;

得到所有數據: get+All+ 數據描述名詞複數 + 數據類型;

通過 XXX 得到 / 查詢某數據: get/query+ 數據描述名詞複數 + 數據類型 +By+ 條件;

添加某數據: save/add+ 數據描述名詞 ()

更新某數據: save/update+ 數據描述名詞;

刪除某數據: delete/remove+ 數據描述名詞;

 

<3>、業務對象

 

 業務名稱 +BO

 

<4>、查詢參數對象

 

 凡是繼承 Abst***QuerySpec 的查詢參數類全部滿足以下規則:

Query+ 所要查詢的數據描述名詞 +Spec

作爲參數傳入時,參數名必須爲:所要查詢的數據描述名詞 +Spec

如: QueryProgramSpec

 

3MVC

 

<1>Action 控制層

 

Action 類名:功能模塊名稱 +Action

Actoin 方法名稱儘可能的描述出頁面遷移的去向

如: LoginAction( 登錄用 action) toWelcome( 轉向歡迎頁的 action 方法 )

 

<2>、資源文件

 

系統全局資源文件: globalMessages_+ 字符編碼類型 +.properties

功能模塊內部的資源文件: package.properties

 

4Spring 配置文件

 

<1>Action 相關配置文件

文件目錄: WebRoot/WEB-INF/spring/action/ 功能模塊名稱 +_ApplicationContext.xml

 

<2>Services 相關配置文件

 

文件目錄: WebRoot/WEB-INF/spring/services/Services_ApplicationContext.xml

 

<3>、全局性配置文件

 

文件目錄: WebRoot/WEB-INF/spring/工程名+_ApplicationContext.xml

 

5JSP 文件

 

採用完整的英文描述說明 JSP 所完成的功能,儘可能包括一個生動的動詞,第一個字母小寫,

如: viewMessage.jsp editUser.jsp 等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章