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

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

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

    java代碼開發(fā)規(guī)范

    Java代碼開發(fā)規(guī)范

                           

    格式規(guī)范:                                                                     

          1、TAB空格的數(shù)量。編輯器上的TAB空格數(shù)量統(tǒng)一取值為4

          2、換行, 每行120字符

          3、if語句的嵌套層數(shù)3層以內(nèi)   

          4、匿名內(nèi)部類20行以內(nèi) ,太長的匿名內(nèi)部類影響代碼可讀性,建議重構(gòu)為命名的

            (普通)內(nèi)部類。

          5、文件長度2000行以內(nèi)

          6、方法長度150行以內(nèi)

          7、邏輯上相關(guān)序代碼與其前后之程序代碼間應(yīng)以空白行加以分隔;在注釋段與程序

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

       

         8、方法(構(gòu)造器)參數(shù)在5個以內(nèi) ,太多的方法(構(gòu)造器)參數(shù)影響代碼可讀性。

             考慮用值對象代替這些參數(shù)或重新設(shè)計。

          9、CC 度量值不大于10

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

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

             總個數(shù)來度量。

         10、NPath度量值不大于200

             解釋:NPath度量值表示一個方法內(nèi)可能的執(zhí)行路徑的條數(shù)。

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

          

    命名規(guī)范:                                                                                                               

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

     表內(nèi)容,不得擅自啟用未經(jīng)確定的新變量前綴

       

     包名 必須全部用小寫。

     命名方式:業(yè)務(wù)領(lǐng)域名.子系統(tǒng)名.層名 如com.iteach.dao.weibo

       

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

       

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

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

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

    序號

    變量名稱

    注    釋

    1

    strFileName

    "文件名"字符串類型

    2

    intFileCount

    "文件總數(shù)"整型

    3

    strFames

    多個"文件名"的集合

    4

    gMemory

    全局變量

       

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

    序號

    常量名稱

    注 釋

    1

    MAX_NUM

    最大數(shù)

    2

    public static final String FUNCTION_LIST = "function_list";

       

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

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

    規(guī)則名稱

    規(guī)則

    說明

    新增數(shù)據(jù)

    addXXX

      

    修改數(shù)據(jù)

    updateXXX

      

    刪除數(shù)據(jù)

    deleteXXX

      

    查詢數(shù)據(jù)

    findXXX

    getXXX

    findUserByName() 獲取單個

    getUserByName()  獲取所有

    備注:

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

              loadXMLDocument()

       

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

              IBookDao,BookDaoIF。

       

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

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

       

    注釋規(guī)范:                                                                      

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

          1、類注釋:

          /**

           * 類功能說明

           * 類創(chuàng)建者 創(chuàng)建日期

         */

          2、函數(shù)注釋

         /**

          * 函數(shù)功能說明

          * 創(chuàng)建者名字 創(chuàng)建日期

          * 修改者名字 修改日期

          * 修改內(nèi)容

          * @param 參數(shù)名稱  參數(shù)類型 參數(shù)說明

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

          */

          3、程序段注釋

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

        或者     

              /**

               *修改者 修改日期

               *說明

                      */

          4、變量或?qū)傩宰⑨?

              //說明

          5、失效代碼注釋

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

        

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

       

       

       

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

           循環(huán)語句和判斷語句前必須注釋。

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

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

       

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

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

               

               為了在JavaDoc和IDE中能快速鏈接跳轉(zhuǎn)到相關(guān)聯(lián)的類與方法,盡量多的使用

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

       

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

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

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

               包裹。

       

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

               接。

                  

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

               @param name,空的@return。

       推薦的注釋內(nèi)容:

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

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

       

               對于調(diào)用復(fù)雜的API盡量提供代碼示例。

               對于已知的Bug需要聲明。

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

       

               代碼質(zhì)量不好但能正常運行,或者還沒有實現(xiàn)的代碼用//TODO: 或 //XXX:

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

       

    異常處理:                                                                     

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

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

       

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

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

       

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

              系統(tǒng)能夠更好的跟蹤運行情況。

               

               

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

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

       

    編寫細節(jié)建議規(guī)范:                                              

       

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

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

       

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

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

                      public void sharedMethod() {
    			

     

                             String display = null;
    			

     

                             synchronized( this ) {
    			

     

                           display = mySharedObject.getHelloWorld();
    			

     

                              }
    			

     

                               System.out.println( display );
    			

     

                         }
    			

     

       

       

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

    try{

           // some stuff

    } catch ( FileNotFoundException fnfe ) {

           // some stuff

    } finally {

           // some stuff

    }

                  例外的變量名統(tǒng)一規(guī)定為例外類名中大寫字母的組合。

       

           4、  (不強制)對于一個方法或?qū)嵗愓{(diào)用是否成功,不采用返回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 閱讀(4910) 評論(3)  編輯  收藏 所屬分類: ★項目架構(gòu)

    評論

    # re: java代碼開發(fā)規(guī)范 2012-09-12 09:41 莊虎

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

    # re: java代碼開發(fā)規(guī)范 2012-09-12 12:35 Nirvana reborn

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

    # re: java代碼開發(fā)規(guī)范 2012-09-17 15:10 Nirvana reborn

    @tb
    多多交流!?。?nbsp; 回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     
    <2012年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導(dǎo)航

    統(tǒng)計

    公告

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

    隨筆分類(19)

    文章檔案(1)

    博主鏈接

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 国产日韩久久免费影院| 国产精品久久久久久久久免费| 亚洲Av无码精品色午夜| 99久久99这里只有免费费精品| 亚洲综合av一区二区三区不卡| 亚洲毛片av日韩av无码| 84pao国产成视频免费播放| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲精品国精品久久99热一| 999久久久免费精品国产| 永久免费观看黄网站| 亚洲黄色在线视频| 五月婷婷亚洲综合| 亚洲电影在线免费观看| xxxx日本在线播放免费不卡| 亚洲人成电影院在线观看| 久久精品国产精品亚洲人人 | 少妇人妻偷人精品免费视频 | 狠狠综合亚洲综合亚洲色| 亚洲国产综合91精品麻豆| 国产18禁黄网站免费观看| 久久香蕉国产线看免费| 国产偷国产偷亚洲高清人| 久久久亚洲AV波多野结衣| 国产亚洲精品拍拍拍拍拍| 天天看片天天爽_免费播放| 午夜免费福利视频| 一道本在线免费视频| 亚洲人成欧美中文字幕| 亚洲男人第一av网站| 亚洲中文字幕久久精品无码APP | 成人免费午间影院在线观看| 久久久久国产精品免费网站| 全黄A免费一级毛片| 亚洲欧美日韩国产精品一区| 久久av无码专区亚洲av桃花岛| 亚洲欧洲自拍拍偷精品 美利坚| 女人18毛片特级一级免费视频| 在线人成精品免费视频| 成人A片产无码免费视频在线观看| 粉色视频免费入口|