代碼編寫規範

  作爲一名優秀的程序員,咱們要從基礎作起---代碼命名規範。代碼是拿來讓別人看的,如本身的代碼別人看不懂,那就是五個一,永遠都不會成爲五個萬!程序員

 1 註釋規範算法

     自建代碼文件註釋數據庫

/*************************************************express

做者:模塊化

小組: 函數

說明:編碼

建立日期:spa

版本號:orm

**********************************************/xml

 代碼間註釋

代碼間註釋分爲單行註釋和多行註釋:

單行註釋:

//<單行註釋>

多行註釋:

     /*多行註釋1

     多行註釋2

     多行註釋3*/

代碼中遇到語句塊時必須添加註釋(if,for,foreach,……),添加的註釋必須可以說明此語句塊的做用和實現手段(所用算法、循環條件、不一樣分支的意義等等)。

  1. 命名整體規則
  1. 名字應該可以標識事物的特性,而且與業務掛鉤。
  2. 名字一概使用英文單詞,而不能爲拼音。
  3. 名字能夠有兩個或三個單詞組成,但不該多於4個,控制在3至30個字母之內。
  4. 在名字中,多個單詞用大寫第一個字母(其它字母小寫)來分隔。例如:IsSuperUser。

命名規範:

Pascal命名法:全部單詞的首字母都大寫,其餘字母小寫

Camel命名法:除首字母外,其餘單詞的首字母大寫,其餘字母小寫

  1. 不要將縮寫或縮略形式用做標識符名稱的組成部分。例如,使用 GetWindow,而不要使用 GetWin。
  2. 不要使用計算機領域中未被廣泛接受的縮寫。
  3. 在適當的時候,使用衆所周知的縮寫替換冗長的詞組名稱。例如,用 UI 做爲 User Interface 縮寫,用 OLAP 做爲 On-line Analytical Processing 的縮寫。
  4. 在使用縮寫時,對於超過兩個字符長度的縮寫請使用 Pascal 大小寫或 Camel 大小寫。可是,應當大寫僅有兩個字符的縮寫,如,System.IO,而不是 System.Io。
  5. 對於某些名字中單詞都比較長的狀況,能夠自行寫一個縮寫名字(名字中的關鍵字不能縮寫),將全部的縮寫作一個說明文件,放在同級目錄下的開頭。
  6. 類使用 Pascal 大小寫

接口

  1. 如下規則概述接口的命名指南:

  2. 使用 Pascal 大小寫。
  3. 在原有類名基礎上加「I」,如:IUserDao
  4. 不使用下劃線(_)。
  5. 當類是接口的標準執行時,定義這一對類/接口組合就要使用類似的名稱。兩個名稱的不一樣之處只是接口名前有一個I前綴。在實現類名後加「Impl」後綴。
  1. 對於 Enum 類型和值名稱使用 Pascal 大小寫。
  2. 命名不能縮寫,枚舉內的內容能夠縮寫。
  3. 命名禁止加Enum 後綴[夢1] 。

參數

  1. 參數名稱使用Camel大小寫[夢2] 
  2. 參數名稱可縮寫

方法

  1. 以動詞開頭。[夢3] 
  2. 使用 Pascal 大小寫。
  3. 禁止縮寫,除非名詞自己含有縮寫。如:AddStudentMgr ()

屬性 (property)

  1. 以名詞或形容詞命名。[夢4] 
  2. 使用 Pascal 大小寫。
  3. 禁止縮寫。

委託

  1. 以名詞或形容詞命名。[夢5] 
  2. 使用 Pascal 大小寫。
  3. 禁止縮寫。
  4. 若是與事件(event)關聯,則名稱命名使用EventHandler後綴,不然其餘名稱均以Delegate後綴結尾。如

事件

  1. 使用 Pascal 大小寫。
  2. 禁止縮寫。
  3. 名稱命名使用 Event後綴。
  4. 用動詞或名詞命名,帶有時間意義,如:MouseMove事件、Closing 事件、Closed 事件。
  5. 指定兩個名爲 sender 和 e 的參數。sender 參數表示引起事件的對象。e爲事件類的實例。e參數類型使用適當而特定的事件類。
  6. 用 EventArgs 後綴命名事件參數類。
  1. 書寫規則:
  2.             if (expression)      (推薦)

                {

     

                }

    或:

                if (expression) {

     

                }     

  3.  

縮進規則

  1. 使用一個「Tab」爲每層次縮進(默認4個空格,有的規範也要求2個空格,依要求而定,全部IDE均可以設置)。

小括號規則

不要把小括號和關鍵詞(if 、while等)緊貼在一塊兒,要用空格隔開它們。如:

  1. 不要把小括號和函數名緊貼在一塊兒。
  2. 除非必要,不要在Return返回語句中使用小括號。由於關鍵字不是函數,若是小括號緊貼着函數名和關鍵字,兩者很容易被當作是一體的。

單語句規則

模塊化規則

函數複雜度規則

  1. 單一功能子函數代碼不得超過50行、形參個數不得超過7個、程序嵌套深度不得超過7層。
  2. 圈複雜度必須在15之內,對程序的修改或擴展不得增長其原有圈複雜度。

編碼風格規則

  1. 代碼未寫,文檔先行,註釋必須按照固定統一範式撰寫。
  2.  關係運算必須常量在左、變量在右。
  3. 不準使用複雜的運算表達式,必要時添加括號而不依賴於優先級。
  4. 魔鬼數字需用宏定義替代。
  5.  局部變量必須初定義、避免沒必要要的內存操做、內存操做必須考慮異常處理。

數據庫名

  1. 數據庫名採用首字母大寫,避免系統保留的表名。如:LibraryMaintainSystem

數據庫表

  1. 使用T_表名,表名採用首字母大寫。

           如:T_Class

     

    若是系統分多個子系統模塊,那麼將模塊的縮寫加在T後,用下劃線與表名分開。

           如:

                  基礎系統:TB_Class          (Basic)

    評教系統:TA_表名              (Assess)

    考試系統:TE_表名              (Exam)

    選課系統:TC_表名              (Choose)

     

    關聯數據表:TR_表A表B  ,兩個表首字母大寫。       

    一對多關係,多在前,一在後。

    一對一和多對多關係,兩個表的前後,以字母排序。

     

    若是分模塊,那麼將模塊縮寫添加在T後

           如:TBR_ClassGrade 表示基礎系統,班級和年級的關係表。

     

表字段

  1. 第一個字母小寫[劉慧超1] ,後面的單詞或拼音,採用第一個字母大寫,命名規則只來自於業務,儘可能表達出列的含義。命名通常爲名詞或形容詞。

     

視圖

  1. 視圖名 = V + 「_」 + 名稱

主鍵

  1. 主鍵名 = PK + 「_」+ 表名

外鍵

  1. 外鍵名 = FK + 「_」 + 表名

索引

  1. 索引名 = IDX + 「_」 + 表名 + 相關字段/索引含義。

關聯

  1. 關聯指數據庫表之間的外鍵關係

    關聯名 = RL + 「_」 + 主表名+ 從表名。

存儲過程

  1. 存儲過程名 = PROC + 「_」 + 存儲過程含義。[夢2] 

觸發器

  1. 觸發器名 = TR + 「_」+ 表名 +「_」+ 觸發器類型/自定義名稱

    觸發器類型:Insert觸發器加"_I",Delete觸發器加"_D",Update觸發器加"_U",如:

    TR_Customer_I,TR_Customer_D,TR_Customer_U。

    附:控件命名規範

    類 型

    前 綴

    示 例

    Adrotator

    adrt

    adrtTopAd

    AccessDataSource

    ads

    adsPubs

    BulletedList

    blst

    blstCity

    Button

    btn

    btnSubmit

    Calendar

    cal

    calMettingDates

    CheckBox

    chk

    chkBlue

    CheckBoxList

    chkl

    chklFavColors

    DataList

    dlst

    dlstTitles

    DetailView

    dvw

    dvwTitles

    DropDownList

    drop

    dropCountries

    FileUpLoad

    fup

    fupImage

    FormView

    fvw

    fvwFonts

    GridView

    gvw

    gvwCity

    HiddenField

    hfld

    hfldName

    HyperLink

    hlk

    hlkDetails

    Image

    img

    imgAuntBetty

    ImageButton

    ibtn

    ibtnSubmit

    ImageMap

    imap

    imapSite

    Label

    lbl

    lblResults

    LinkButton

    lbtn

    lbtnSubmit

    ListBox

    lst

    lstCountries

    Literal

    ltl

    ltlTitle

    Localize

    loc

    locChina

    MultiView

    mvw

    mvwForm1

    ObjectDataSource

    ods

    odsMenus

    Panel

    pnl

    pnlForm2

    PlaceHolder

    plh

    plhFormContents

    RadioButton

    rad

    radFemale

    RadioButtonList

    radl

    radlGender

    Repeater

    rpt

    rptQueryResults

    ReportViewer

    rvw

    rvwRecord

    SiteMapDataSource

    smds

    smdsSite

    SqlDataSource

    sds

    sdsBooks

    SubStitution

    subs

    subsTime

    Table

    tbl

    tblCountryCodes

    TextBox

    txt

    txtFirstName

    View

    vw

    vwCity

    Wizard

    wiz

    wizRegister

    Xml

    xml

    xmlBooks

    XmlDataSource

    xds

    xdsTitles