代碼規範

版本管理
 
 
時間
版本號
內容
整理
2013年10月
 V1.0
 初建
xiaojianjun
 
  1. 書寫原則

     

    要表達的意思完整準確,
    易於理解,易於記憶,易於他人擴展維護,
    簡潔,不用拼音,使用英語,
    一般用駱駝命名法和下劃線間隔法,
    傻瓜寫的代碼只有計算機看得懂,好工程師寫的代碼人看的懂,
    達成規則的約定後,即便有疑義,也要遵照。
     
  2. 命名規範

    1. 第一個字段是com. 第二個字段是公司名,每三個字段應該是產品線的名字,咱們以全小寫的方式來給包命名,最好使用名詞或者動名詞,而不要使用動詞,副詞,或者形容詞: 好比com.vox.afenti.model.wordcorrection
      1. 若是一個包名實包含了若干實現了類似功能的類,那就用一個名詞的複數形式來作包名,好比 charts, collections, containers 。
      2. 若是一個包包含了實現了一類功能的類,那就用動名詞來作包名,好比 binding, logging, messaging, printing 。
      3. 若是一個包裏面的類都支持同一個組件,好比 FooBar,那就取名叫 foobarclasses
         
    2. 以大寫字母開頭,名詞[+模式] 的形式構成,「模式」是指MVC中的模式。好比ControlView , ButtonFactory
    3. 函數

      動詞[+名詞],以小寫字母開頭。推薦函數所帶的形參以 $ 符號開頭,且用有意義的詞彙代碼通性詞彙,好比用 $price 代碼 $value 。 
    4. 類級變量

      私有變量定義以」_」開頭,靜態變量一般以大寫字母開始。
    5. 函數內局部變量

      以小寫字母開頭,不要與類級變量名稱重名。
    6. 表示事件的類型的常量

      爲了和類中的其餘常量區分,要以Evt_開頭 
    7. 事件響應函數

      on發出事件的對象_事件名Handler。好比 onStopBtn_clickHandler
    8. 組件 

      名稱定義要有package,最好加上後綴來講明本組件的類型,好比 com.iqiyi.player.components.ConfirmBtn
    9. 縮略單詞

      在保證別人看得懂的狀況下,能夠用縮略詞,有一些公認的縮略詞:acc 代替 accessibility, 好比: ButtonAccImplauto 代替 automatic, 好比: autoLayoutauto 代替 automatic, 好比: autoLayouteval 代替 evaluate, 好比: EvalBindingResponderimpl 代替 implementation, 好比: ButtonAccImplinfo 代替 information, 好比: GridRowInfonum 代替 number of, 好比: numChildrenmin 代替 minimum, 好比: minWidthmax 代替 maximum, 好比: maxHeightnav 代替 navigation, 好比: NavBarregexp 代替 regular expression, 好比: RegExpValidator
    10. 縮略詞組

      縮略詞組一般用所有大寫或者所有小寫,好比 SWF 或者 swf ,可是 Swf 是不容許的,所有小寫的縮略詞組一般只在只包含縮略詞組的變量,或者必須以小寫開頭的變量裏面,好比 uid,imeMode,其他時候就應該用大寫。
       
    11. 詞組的鏈接

      駝峯式( 好比LayoutManager ) 與下劃線連結式 ( 好比 object_proxy )一般用駝峯式,有不少單詞的時候使用駝峯式,會難於看懂,這時可用下劃線連結式,但儘可能少用。
    12. 子類

      通常以父類的命名來結尾,好比: Event 的子類 FooBarEvent。
       
    13. 常量

      常量命名所有采用大寫字母,而且用下劃線的方式鏈接多個單詞,力求語義表達完整,不要嫌名字長。變量名必須與值的單詞一致,只是大小寫不同而已 ( 筆者認爲徹底同樣也能夠 ) 。好比: public static const FOO_BAR:String = 「fooBar」;
       
    14. 循環變量

      通常在for循環的第一層裏面使用i作臨時變量,用j作第二層作臨時變量, 但筆者我的認爲用有意義的詞彙來表示更好。好比 row, column 。
    15. getter/setter 變量

      若是一個getter/setter方法是foo,那相對應的存儲變量(私有變量)應該爲 _foo。
    16. 偏向屬性設置類型的函數名

      好比 getFooBar() 有時候可能實現了太多功能,那儘可能採用 calculateFooBar(),findFooBar(),determineFooBar( ) 之類的命名。
    17. 布爾性變量

      這類變量要注意很容易理解反。建議這類變量的意義都要是確定正面的。
       
  3. 代碼級書寫規範

    1. 類型聲明

      類型聲明類型範圍越小越好。好比,循環腳標必須採用 int 型,而非Number型,
      1. 採用具體類型,而不要用Object或者 * 類型。
      2. mouseDownHandler函數的參數要用MouseEvent,而不要用Event
      3. 就算是一個非負整數,也儘可能聲明爲整數。
      4. uint只在RGB的顏色值,位運算與其餘非數值類型裏面用到
      5. 只在一個值可能爲undefined的時候用,若是一個值在未出生以前爲null,那就用Object類型,而不要用*
    2. 初始化

      1. 初始化數組的時候儘可能使用 [ ] ,而非 new Array ( )
      2. 初始化最基礎對象時,使用{ } 代替new Object( )
    3. +與—操做符

      儘可能選擇後置的 + , – -
       
    4. import 類

      最好寫完整導入的類的全飾路徑,不用使用.*
    5. if

      1. 若是一個if後面只跟了一個語句,那就不要用{ }的語句塊了,直接用單句就能夠了,但請不要換行。
      2. 把最有可能出現的條件寫在最前面
    6. switch

      全部case塊都要以break結束
       
    7. 逗號

      逗號後要一位空格.
       
    8. 數組裏的元素

      1. 數組的左邊括號後,右括號前都要用空格符,而且每一個逗號後面都應該有空格符
      2. 若是元素不少,請用多行來格式化。
         
    9. 大括號

      要單獨佔一行,要用 tab 上下對齊縮進
       
       
  4. 工程級書寫規範

    1. 註釋

      1. 原則: 準確,爲方便他人,只要有其它人有可能看不懂的地方,就有必要加註釋.4.1.2 對於接口(特別是獨立模塊的對外統一接口)必須添加註釋,說明接口的意義與使用過程當中的注意事項.
      2. 類模塊須要增長簡要的功能說明,類模塊的說明要在構造函數以前。
    2. 外部模塊的使用

      外部模塊爲第三方模塊,該模塊由非本組成員(或本公司)完成。應該將該模塊編繹成庫( SWC 或 SWF )來使用,模塊最後生成應該爲:{name}-{version}.{extension},好比,JSON庫的命名能夠爲:as3corelib-0.92.swc。在開發應用的每一版本中,應該明確對第三方庫的版本依賴。如需修改第三方模塊的,能夠對其進行擴展以後,造成模塊與應用關聯。
       
    3. 日誌記錄

      日誌記錄按照log4j標準執行(as3代碼已經實現)。在程序中定義日誌等級的時候,要慎重對待,特別是release階段的日誌。Debug信息的輸出分爲兩種,一種是經過trace輸出,一般是用於調試階段,另外一種是經過第三方工具(如Arthropod),用於測試階段的bug排查,這部分信息能夠有比較大的冗餘。
      在flash項目中,爲了明確日誌層級,做出如下約定:
      1. DEBUG:用於debug階段,該級別的信息調試階段,幫助開發人員進行調試工做。
        (如下爲release階段)
      2. INFO: 一般寫在用戶的日誌中,當用戶投訴,將該信息上傳,該信息要求精練且嚴謹。
      3. WARN:當程序發生錯誤,但不影響正常流程,對用戶影響不大。
      4. ERROR: 程序發生錯誤,不影響正常流程,但已經嚴重影響用戶使用。
      5. FATAL:程序發生嚴重錯誤,影響正常邏輯。
         
    4. 警告

      警告的緣由一般是由錯誤或定義不明確(也就是說寫代碼的人可能並不明確其中的意思),所以,爲提升代碼質量,必須杜絕一切編繹警告。
       
    5. 代碼行數

      代碼行數絕大多數狀況下,不計註釋,代碼行數不該超過300行,底線是500行。對於須要超過500行的模塊,通常狀況下,應該是不合理的,應該考慮對該模塊進行細化。
       
    6. 代碼修改

      儘量不要刪除原有代碼,採用註釋的辦法,註釋時要標明修改人,修改時間,以及爲了解決什麼問題而修改。當達到一個比較穩定版本以後,並在一段時間以後,經過討論,肯定之前的代碼無用的狀況下,能夠刪除相關注釋代碼。
       
    7. 版本號

      在目前只有一個版本號的狀況下,版本號由產品部門與技術部門共同維護。在版本號定義上統一爲:以小數點分割的三個數字爲版本號(x1.x2.x3)各版本號的意義:
      X1 主版本號,通常用於對系統重構時更改。
      X2 次版本號,通常用於有重大更新時更改。
      X3 build版本號,通常用於bug修復和小的改進。當主版本號發生變化時,另兩個版本號要歸零。
      提測時,應該在版本號後增長一個,即:x1.x2.x3.x4。其中x4表示提測版本號。正式上線時,刪除x4。
       
  5. 附錄:生成ASDoc的方法:

      1. 打開cmd命令行窗口
      2. 執行命令:asdoc -source-path 【 src文件夾的路徑(包括src) 】-library-path 【全部庫文件的路徑】-doc-sources 【生成的ASDoc文件的存放路徑】
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息