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

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

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

    java代碼開發規范

    Java代碼開發規范

                           

    格式規范:                                                                     

          1、TAB空格的數量。編輯器上的TAB空格數量統一取值為4

          2、換行, 每行120字符

          3、if語句的嵌套層數3層以內   

          4、匿名內部類20行以內 ,太長的匿名內部類影響代碼可讀性,建議重構為命名的

            (普通)內部類。

          5、文件長度2000行以內

          6、方法長度150行以內

          7、邏輯上相關序代碼與其前后之程序代碼間應以空白行加以分隔;在注釋段與程序

             段、以及不同程序段插入空行。提高可讀性

       

         8、方法(構造器)參數在5個以內 ,太多的方法(構造器)參數影響代碼可讀性。

             考慮用值對象代替這些參數或重新設計。

          9、CC 度量值不大于10

             解釋:CC(CyclomaticComplexity)圈復雜度指一個方法的獨立路徑的數量,可以

             用一個方法內if,while,do,for,catch,switch,case,?:語句與&&,||操作符的

             總個數來度量。

         10、NPath度量值不大于200

             解釋:NPath度量值表示一個方法內可能的執行路徑的條數。

         11、布爾表達式中的布爾運算符(&&,||)的個數不超過3個

          

    命名規范:                                                                                                               

    開發人員如果遇到以下未列舉的類型,請書面通知相關管理人員,由管理人員集中更新列

     表內容,不得擅自啟用未經確定的新變量前綴

       

     包名 必須全部用小寫。

     命名方式:業務領域名.子系統名.層名 如com.iteach.dao.weibo

       

    類名 以英文單詞取名,首字母必須大寫,多個英文單詞以大寫字母間隔,避免使用單詞的縮寫,除非它的縮寫已經廣為人知,如HTTP。類名中不允許'_'、 '-'等符號。[A4] 

       

    屬性 在類定義的開始,按照public,protected,package,private順序放置。定義local變量盡量在那段代碼的開始處,如方法的開始處。

    如果是if,for,while段,盡量在左大括號"{"的下一行處定義要使用的local變量。

    盡量用相同含義英文單詞表示,不允許'_'、 '-'等符號,如:custName。第一個字母小寫,中間單詞的第一個字母大寫。不要用_或&等符號作為第一個字母。 單字符的變量名一般只用于生命期非常短暫的變量。如:i,j,k,m,n一般用于int。如果變量是集合,則變量名應用復數,即以小寫s結尾 。例如:

    序號

    變量名稱

    注    釋

    1

    strFileName

    "文件名"字符串類型

    2

    intFileCount

    "文件總數"整型

    3

    strFames

    多個"文件名"的集合

    4

    gMemory

    全局變量

       

     常量名 均全部大寫,單詞間以'_'隔開。例如:

    序號

    常量名稱

    注 釋

    1

    MAX_NUM

    最大數

    2

    public static final String FUNCTION_LIST = "function_list";

       

    方法 命名采用"動作+屬性" 的方法。并且,動作以小寫字母開始,屬性以大寫字母開始。常用的動作有:is、get、set、add、 update、del等。

    例如:getName、setName、isSysManager、saveXXX、mdfXXX、delXXX等。

    規則名稱

    規則

    說明

    新增數據

    addXXX

      

    修改數據

    updateXXX

      

    刪除數據

    deleteXXX

      

    查詢數據

    findXXX

    getXXX

    findUserByName() 獲取單個

    getUserByName()  獲取所有

    備注:

          遇到縮寫如XML時,僅首字母大寫,即loadXmlDocument()而不是

              loadXMLDocument()

       

              為了基于接口編程,不采用首字母為I或加上IF后綴的命名方式,如

              IBookDao,BookDaoIF。

       

              頁面部件名建議命名為:btnOK、lblName或okBtn、nameLbl

              其中btn、lbl縮寫代表按鈕(Button)、標簽(Label)。

       

    注釋規范:                                                                      

    在類、方法開始之前需要添加中文注釋,類和方法的注釋采用Java自動生成的注釋格式。

          1、類注釋:

          /**

           * 類功能說明

           * 類創建者 創建日期

         */

          2、函數注釋

         /**

          * 函數功能說明

          * 創建者名字 創建日期

          * 修改者名字 修改日期

          * 修改內容

          * @param 參數名稱  參數類型 參數說明

          * @return 返回值類型 返回值說明

          */

          3、程序段注釋

                 如果做過修改需加上修改者和日期   //修改者 修改日期 說明

        或者     

              /**

               *修改者 修改日期

               *說明

                      */

          4、變量或屬性注釋

              //說明

          5、失效代碼注釋

                由/*...*/界定,標準的C-Style的注釋,專用于注釋已失效的代碼

        

           注:沒有意義的注釋語句刪掉,不留空的注釋語句

       

       

       

        備注建議的注釋:(非下劃線標注的規范建議使用,不強制)

           循環語句和判斷語句前必須注釋。

            特殊變量聲明時需要注釋。

            如果方法允許Null作為參數,或者允許返回值為Null,必須在JavaDoc中說明。

       

               注釋中的第一個句子要以(英文)句號、問號或者感嘆號結束。Javadoc生成

               工具會將注釋中的第一個句子放在方法匯總表和索引中。

               

               為了在JavaDoc和IDE中能快速鏈接跳轉到相關聯的類與方法,盡量多的使用

               @see xxx.MyClass,@see xx.MyClass#find(String)。

       

               如果注釋中有超過一個段落,用<p>分隔。

               示例代碼以<pre></pre>包裹。

               標識(java keyword, class/method/field/argument名,Constants) 以<code></code>

               包裹。

       

               標識在第一次出現時以{@linkxxx.Myclass}注解以便JavaDoc與IDE中可以鏈

               接。

                  

               如果該注釋是廢話,連同標簽刪掉它,而不是自動生成一堆空的標簽,如空的

               @param name,空的@return。

       推薦的注釋內容:

               對于API函數如果存在契約,必須寫明它的前置條件(precondition),后置條件

               (postcondition),及不變式(invariant)。

       

               對于調用復雜的API盡量提供代碼示例。

               對于已知的Bug需要聲明。

               在本函數中拋出的unchecked exception盡量用@throws說明。

       

               代碼質量不好但能正常運行,或者還沒有實現的代碼用//TODO: 或 //XXX:

               聲明存在錯誤隱患的代碼用//FIXME:聲明

       

    異常處理:                                                                     

              重新拋出的異常必須保留原來的異常,即throw new NewException("message", e);

              而不能寫成throw new NewException("message")。

       

              在所有異常被捕獲且沒有重新拋出的地方必須寫日志。

              如果屬于正常異常的空異常處理塊必須注釋說明原因,否則不允許空的catch塊。

       

              框架盡量捕獲低級異常并封裝成高級異常重新拋出,隱藏低級異常的細節,方便 

              系統能夠更好的跟蹤運行情況。

               

               

              如果一個層要拋出多個異常,那么所有自定義異常必須統一繼承一個父類異常。

              這樣上層可以通過父類異常捕獲。

       

    編寫細節建議規范:                                              

       

       1、 為了提高可讀性,一般情況下,字符串的連接使用"+",而不是StringBuffer

                  中的方法。在考慮速度性能的時候才考使用StringBuffer

       

          2、(不強制)沒有特殊原因,不要定義synchronized 的方法。而是在方法內實

                 際需要同步的代碼段加入synchronized限定,如:

                      public void sharedMethod() {
    			

     

                             String display = null;
    			

     

                             synchronized( this ) {
    			

     

                           display = mySharedObject.getHelloWorld();
    			

     

                              }
    			

     

                               System.out.println( display );
    			

     

                         }
    			

     

       

       

        3、   捕捉例外的標準書寫規則如下:

    try{

           // some stuff

    } catch ( FileNotFoundException fnfe ) {

           // some stuff

    } finally {

           // some stuff

    }

                  例外的變量名統一規定為例外類名中大寫字母的組合。

       

           4、  (不強制)對于一個方法或實例化類調用是否成功,不采用返回boolean值來判

                  斷,而采用捕捉例外的方法,如:

    Order m_order = new Order();

    try {

           m_order.init();

    } catch ( OrderNotFoundException onfe ) {

           // some stuff

    }

    http://cobaya.cn/

    posted on 2012-09-11 16:51 Nirvana reborn 閱讀(4911) 評論(3)  編輯  收藏 所屬分類: ★項目架構

    評論

    # re: java代碼開發規范 2012-09-12 09:41 莊虎

    好文章 我要打印下來保存  回復  更多評論   

    # re: java代碼開發規范 2012-09-12 12:35 Nirvana reborn

    @莊虎
    拙作,多多交流,多多支持,謝謝!  回復  更多評論   

    # re: java代碼開發規范 2012-09-17 15:10 Nirvana reborn

    @tb
    多多交流!!!  回復  更多評論   


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    <2012年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導航

    統計

    公告

    我好喜歡它,
    我的 QQ 66013804
    我想做技術流,可是我很懶,
    博客新地址:<a href="

    隨筆分類(19)

    文章檔案(1)

    博主鏈接

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 日韩精品极品视频在线观看免费| 一级毛片完整版免费播放一区| 免费人成在线观看网站品爱网| 亚洲一区视频在线播放| 午夜不卡AV免费| 国产国拍亚洲精品福利| 91视频免费观看| 亚洲成av人片天堂网| 免费人成在线观看视频高潮 | 女人张腿给男人桶视频免费版| 亚洲国产精品综合一区在线| 国产免费久久精品99re丫y| 亚洲香蕉久久一区二区| 在线观看免费污视频| 狠狠入ady亚洲精品| 亚洲人午夜射精精品日韩| 永久免费av无码网站yy| 亚洲激情中文字幕| 免费观看成人毛片a片2008| 在线视频亚洲一区| 久久亚洲2019中文字幕| 97青青草原国产免费观看| 亚洲一级毛片免观看| 免费一级一片一毛片| 久久成人免费大片| 亚洲卡一卡二卡乱码新区| 四虎精品亚洲一区二区三区| 成人免费ā片在线观看| 亚洲精品视频专区| 国产三级电影免费观看| 国产亚洲精品免费视频播放| 亚洲美女视频网址| 国产精品视_精品国产免费 | 亚洲人片在线观看天堂无码| 亚洲综合色成在线播放| 5555在线播放免费播放| 国产成人亚洲精品蜜芽影院| 亚洲视频在线播放| 国产成人3p视频免费观看| 免费无码又爽又刺激高潮视频| 亚洲色大成网站www久久九|