代码编写规范

  做为一名优秀的程序员,我们要从基础做起---代码命名规范。代码是拿来让别人看的,如自己的代码别人看不懂,那就是五个一,永远都不会成为五个万!

 1 注释规范

     自建代码文件注释

/*************************************************

作者:

小组: 

说明:

创建日期:

版本号:

**********************************************/

 代码间注释

代码间注释分为单行注释和多行注释:

单行注释:

//<单行注释>

多行注释:

     /*多行注释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

     



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值