<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks

    一、規范存在的意義

    ??? 應用編碼規范對于軟件本身和軟件開發人員而言尤為重要,有以下幾個原因:
    ??? 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 等。





    -The End-

    posted on 2008-08-04 14:55 decode360-3 閱讀(634) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 免费亚洲视频在线观看| 免费人成视频在线观看网站| 色播在线永久免费视频| 国产精品99久久免费观看 | 免费看一级毛片在线观看精品视频| 丰满少妇作爱视频免费观看| 亚洲成年人啊啊aa在线观看| 亚洲av片不卡无码久久| 免费看黄视频网站| 综合亚洲伊人午夜网 | 亚洲最新中文字幕| 日韩在线视频免费| 国产一卡2卡3卡4卡2021免费观看| 亚洲电影在线播放| 四虎影院免费在线播放| 美女视频黄频a免费大全视频| 67194成手机免费观看| 亚洲免费观看在线视频| 青青青国产免费一夜七次郎| 美美女高清毛片视频黄的一免费 | 91视频免费网址| 国产亚洲人成网站在线观看| 亚洲日韩精品无码AV海量| 一区二区三区在线免费看| 亚洲国产成人久久综合碰| 国产精品免费大片一区二区| 亚洲成A人片777777| 久久精品女人天堂AV免费观看| 亚洲αⅴ无码乱码在线观看性色| 免费精品国产日韩热久久| 久久无码av亚洲精品色午夜 | 色窝窝亚洲av网| 亚洲男人都懂得羞羞网站| 水蜜桃视频在线观看免费| 日本亚洲成高清一区二区三区| 中文字幕免费视频| 免费的黄网站男人的天堂| 666精品国产精品亚洲| 性xxxxx大片免费视频| 亚洲欧洲AV无码专区| 亚洲精品无码Av人在线观看国产|