饱满骑士团队第六次作业—beta冲刺+事后诸葛亮:代码规范

1代码格式与风格

代码的格式包括缩进、换行、空行、空格等,为了保持一致的代码风格并且不影响编码的效率,所有开发人员统一使用VS默认的格式化(Ctrl+K+D)。

2命名规范

2.1大小写约定

使用下面的三种大写标识符约定:

PascalCasing(帕斯卡命名法)

PascalCasing约定被用于除了参数名之外的所有标识符,把标识符中每个单词的首字母(包括长度为两个字符以上的首字母缩写词)大写。例如:

PropertyDescriptor

UserName

camelCasing 大小写(驼峰命名法)

标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:

userName

大写

两个字母长的首字母缩写词是一个特例,在这种情况下两个字母都要大写。例如:

System.IO;

System.Web.UI;

IOStream

2.2类命名指南

以下规则概述命名类的指南:

  • 使用名词或名词短语命名类。

  • 使用 Pascal 大小写。

  • 少用缩写。

  • 不要使用类型前缀,如在类名称上对类使用 C 前缀。例如,使用类名称 FileStream,而不是 CFileStream。

  • 不要使用下划线字符 (_)。

  • 有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 是适当的。

  • 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部分将使名称不必要地加长。

2.3接口命名指南

以下规则概述接口的命名指南:

  • 用名词或名词短语,或者描述行为的形容词命名接口。例如,接口名称 IComponent 使用描述性名词。接口名称 ICustomAttributeProvider 使用名词短语。名称 IPersistable 使用形容词。

  • 使用 Pascal 大小写。

  • 给接口名称加上字母 I 前缀,以指示该类型为接口。

  • 在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。两个名称的区别应该只是接口名称上有字母 I 前缀。

  • 不要使用下划线字符 (_)。

2.4枚举类型命名指南

枚举 (Enum) 值类型从 Enum 类继承。以下规则概述枚举的命名指南:

  • 对于 Enum 类型和值名称使用 Pascal 大小写。

  • 少用缩写。

  • 不要在 Enum 类型名称上使用 Enum 后缀。

  • 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。

  • 总是将 FlagsAttribute 添加到位域 Enum 类型。

2.5静态字段命名指南

以下规则概述静态字段的命名指南:

  • 使用名词、名词短语或者名词的缩写命名静态字段。

  • 使用 Pascal 大小写。

  • 建议尽可能使用静态属性而不是公共静态字段。

2.6参数命名指南

以下规则概述参数的命名指南:

  • 使用描述性参数名称。参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。

  • 对参数名称使用 Camel 大小写。

  • 使用描述参数的含义的名称,而不要使用描述参数的类型的名称。开发工具将提供有关参数的类型的有意义的信息。因此,通过描述意义,可以更好地使用参数的名称。少用基于类型的参数名称,仅在适合使用它们的地方使用它们。

  • 不要使用保留的参数。保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。

  • 不要给参数名称加匈牙利语类型表示法的前缀。

2.7方法命名指南

以下规则概述方法的命名指南:

  • 使用动词或动词短语命名方法。

  • 使用 Pascal 大小写。

2.8属性命名指南

以下规则概述属性的命名指南:

  • 使用名词或名词短语命名属性。

  • 使用 Pascal 大小写。

  • 不要使用匈牙利语表示法。

  • 考虑用与属性的基础类型相同的名称创建属性。例如,如果声明名为 Color 的属性,则属性的类型同样应该是 Color。

2.9事件命名指南

以下规则概述事件的命名指南:

  • 对事件处理程序名称使用 EventHandler 后缀。

  • 指定两个名为 sendere 的参数。sender 参数表示引发事件的对象。sender 参数始终是 object 类型的,即使在可以使用更为特定的类型时也如此。与事件相关联的状态封装在名为 e 的事件类的实例中。对 e 参数类型使用适当而特定的事件类。

  • 用 EventArgs 后缀命名事件参数类。

  • 考虑用动词命名事件。

  • 使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。例如,可以取消的 Close 事件应当具有 Closing 事件和 Closed 事件。不要使用 BeforeXxx/AfterXxx 命名模式。

  • 不要在类型的事件声明上使用前缀或者后缀。例如,使用 Close,而不要使用 OnClose

  • 通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为 OnXxx)。此方法只应具有事件参数 e,因为发送方总是类型的实例。

3注释规范

3.1模块(类)注释规范

模块开始必须以以下形式书写模块注释:

​ ///

​ ///模块编号:<模块编号,可以引用系统设计中的模块编号>

​ ///作用:<对此类的描述,可以引用系统设计中的描述>

​ ///作者:作者中文名

​ ///编写日期:<模块创建日期,格式:YYYY-MM-DD>

​ ///

如果模块有修改,则每次修改必须添加以下注释:

​ ///

​ ///Log编号:<Log编号,从1开始一次增加>

​ ///修改描述:<对此修改的描述>

​ ///作者:修改者中文名

​ ///修改日期:<模块修改日期,格式:YYYY-MM-DD>

​ ///

3.2类属性注释规范

在类的属性必须以以下格式编写属性注释:

​ ///

​ ///类说明

​ ///

3.3方法注释规范

在类的方法声明前必须以以下格式编写注释

​ ///

​ /// 说明:<对该方法的说明>

​ ///

​ /// <参数说明>

///

///<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>

​ ///

3.4代码间注释规范

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

​ 单行注释:

​ //

​ 多行注释:

​ /*多行注释1

​ 多行注释2

​ 多行注释3*/

posted @ 2021-06-09 15:39  饱满骑士开发组  阅读(67)  评论(6编辑  收藏  举报