kxbin
          成功留給有準備的人
          posts - 10,  comments - 35,  trackbacks - 0

          一、規范存在的意義

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

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

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

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

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

          二、命名規范

          1、一般概念

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

          2、采用適用于相關領域的術語

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

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

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

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

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

          2、標識符類型說明

          1、包( Package )的命名

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

          通常是 com、edu、gov、mil、net、org 等;
          如: 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

          3、MVC 層

          1、Action 控制層

          Action 類名:功能模塊名稱 +Action ;
          Actoin 方法名稱盡可能的描述出頁面遷移的去向
          如: LoginAction( 登錄用 action) , toWelcome( 轉向歡迎頁的 action 方法 )

          2、資源文件

          系統全局資源文件: globalMessages_+ 字符編碼類型 +.properties
          功能模塊內部的資源文件: package.properties

          4、Spring 配置文件

          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

          5、JSP 文件

          采用完整的英文描述說明 JSP 所完成的功能,盡可能包括一個生動的動詞,第一個字母小寫,
          如: viewMessage.jsp 、editUser.jsp 等。


          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lyjia2001/archive/2007/11/02/1863402.aspx

          posted on 2010-02-20 13:45 kxbin 閱讀(245) 評論(0)  編輯  收藏 所屬分類: J2EE
          你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經常在別人面前批評某人,其實潛意識中是想接近他。

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(5)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          J2EE

          java技術網站

          Linux

          平時常去的網站

          數據庫

          電影網站

          網站設計

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东源县| 日土县| 沁水县| 华宁县| 长沙市| 和林格尔县| 南召县| 景谷| 宁化县| 台北县| 南京市| 甘洛县| 广灵县| 万荣县| 武义县| 怀集县| 永仁县| 金秀| 合肥市| 寿光市| 绥化市| 宝应县| 庆安县| 应用必备| 杭锦后旗| 保定市| 兴隆县| 波密县| 澄迈县| 盖州市| 禄劝| 连州市| 民权县| 读书| 瑞丽市| 安平县| 江安县| 达尔| 靖宇县| 惠东县| 酒泉市|