<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 :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    Java簡單編碼規則
    ?
    一、規范存在的意義
    ?
    ??? 應用編碼規范對于軟件本身和軟件開發人員而言尤為重要,有以下幾個原因:
    ??? 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的命名規范類似。在滿足Class命名規則的基礎之上,保證開頭第一個字母為"I",便于與普通的Class區別開。
    ??????????? 其實現類名稱取接口名的第二個字母到最后,且滿足類名的命名規范;
    ??????????? <如:IMenuEngine>
    ??????? 4、枚舉(Enum)的命名
    ??????????? 基本與Class的命名規范類似。在滿足Class的命名規則的基礎之上,保證開頭第一個字母為"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 等。
    ?
    ?
    ?
    posted on 2008-08-04 14:55 decode360 閱讀(133) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: www.亚洲精品.com| 最近的中文字幕大全免费版| 亚洲国产精品嫩草影院久久 | 亚洲Av无码精品色午夜| 一本到卡二卡三卡免费高| 亚洲精品线路一在线观看| 青青免费在线视频| 一本久到久久亚洲综合| 青青草97国产精品免费观看| 亚洲av无码国产精品色在线看不卡 | 成人毛片免费观看视频在线| 2020年亚洲天天爽天天噜| 日韩精品成人无码专区免费 | 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲av无码片在线观看| 色se01短视频永久免费| 亚洲中文字幕无码爆乳| 国产成人免费手机在线观看视频 | 在线a人片天堂免费观看高清| 国产亚洲漂亮白嫩美女在线 | 亚洲av日韩精品久久久久久a| 成人亚洲综合天堂| 一个人看的www免费视频在线观看| 亚洲国产二区三区久久| 精品久久久久成人码免费动漫| 亚洲区日韩精品中文字幕| 亚洲乱亚洲乱少妇无码| 四虎影视在线影院在线观看免费视频| 亚洲日韩中文字幕| 四虎影视永久免费观看地址| 67194成是人免费无码| 日韩毛片免费在线观看| 亚洲成av人片在www鸭子| 亚洲午夜无码片在线观看影院猛| 亚欧洲精品在线视频免费观看| 亚洲AV无码乱码国产麻豆穿越| 黄页网站免费在线观看| 一区二区免费在线观看| 亚洲综合激情九月婷婷| 亚洲第一视频在线观看免费| 国产白丝无码免费视频|