软件开发规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1. 目的
为了统一公司软件开发的设计过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护,特制定此规范。
2. 范围
本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。
3. 注释规范
.概述
a) 注释要求中文及中文的标点符号。
b) 注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。
c) 每行注释的最大长度为100个字符。
d) 将注释与注释分隔符用一个空格分开。
e)不允许给注释加外框。
f)编码的同时书写注释。
g)重要变量必须有注释。
h)变量注释和变量在同一行,所有注释必须对齐,与变量分开至少两个空格。
如:
string title; 模块(类)注释
模块开始必须以以下形式书写模块注释:
类属性注释
在类的属性必须以以下格式编写属性注释:
方法注释
在类的方法声明前必须以以下格式编写注释
代码间注释
代码间注释分为单行注释和多行注释:
单行注释:
命名总体规则
➢名字应该能够标识事物的特性,是有意义的,描述性的词语。能够一眼看出它作什么。
别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。➢名字尽量使用英文单词。
➢名字尽量不使用缩写,除非它是众所周知的。
➢名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。
➢在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。➢名字尽量使用前缀而不是后缀。
➢名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete (而不是FunctionDeleteUser)。
在具体任务开发中,如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报。
5. 命名规范
具体可参考微软命名规范
. 命名规范样式的分类
a) 有意义的,描述性的词语来命名。能够一眼看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。
b) 名字尽量不使用缩写,除非它是众所周知的。
c) 名字尽量使用英文单词,特殊情况下才使用拼音。
d). 除用于循环,别使用单个字母的变量象i, n, x 等. 而要使用 index, temp等。
for ( int i = 0; i < count; i ){ ...}
e) 类命名规则
类名应该为名词及名词短语,尽可能使用完整的词.
使用Pascal规则。
不要使用类前缀 - 。不要使用下划线字符 (_)。不要使用任何类前缀(比如C)。
有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 就是适当的。
在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。
例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。
例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将Control 作为类名称的一部分将使名称不必要地加长。
public class FileStream { }
f) 接口命名规则
接口名称应该为名词及名词短语或者描述其行为的形容词,尽可能使用完整的词.
(Example: IComponent or IEnumberable)
使用Pascal规则。
使用字符I为前缀,并紧跟一个大写字母(即接口名的第一个字母大写)
public interface IComponent { }
g) 枚举命名规则
对于 Enum 类型和值名称使用 Pascal规则。
少用缩写。
不要在 Enum 类型名称上使用 Enum 后缀。
public enum FileMode
{
Create,
CreateNew,
Open,
OpenOrCreate,
Truncate
}
h) 静态常量使用名词及名词短语命名规则
使用Upper规则(全部大写,中间用下划线分隔)
int PI =
i) 参数及非常量变量命名举例
使用描述性的命名,名称应该明确表达参数的意义及类型,优先满足参数的意义描述使用Camel 规则
不要对字段名或静态字段名应用前缀。具体说来,不要对字段名称应用前缀来区分静态和非静态字段。例如,应用 g_ 或 s_ 前缀是不正确的。
j) Web UI类的变量命名可以通过特定的规则加入前缀
Type GetType (string typeName)
使用Pascal规则
k) 对方法名采用一致的动词/宾语或宾语/动词顺序。
例如,将动词置于前面时,所使用的名称诸如 InsertWidget 和 InsertSprocket;将宾语置于前面时,所使用的名称诸如 WidgetInsert 和 SprocketInsert。
推荐名称应该为动词或动词短语.例如Save,SaveCustomer,而不要使用CustomerSave 。
不要在方法中重复类的名称。例如,如果某个类已命名为 Book,则不要将某个方法称为,而可以将方法命名为。
l) 属性命名规则
名称应该为名词及名词短语
使用Pascal规则
对于bool型属性或者变量使用Is(is)作为前缀,不要使用Flag后缀,例如应该使用IsDeleted,而不要使用DeleteFlag
public enum Color {...}
m) 集合命名规则
名称应该为名词及名词短语
使用Pascal规则
名称后面追加“Collection”
n) 事件命名规则
event handlers命名使用 EventHandler 后缀.
两个参数分别使用 sender 及 e
使用Pascal规则
事件参数使用EventArgs 后缀
事件命名使用语法时态反映其激发的状态,例如 Changed,Changing.
考虑使用动词命名.
public delegate void MouseEventHandler(object sender, MouseEvent e);
public class MouseEventArgs : EventArgs
{
int x;
int y;
public MouseEventArgs(int x, int y)
{
= x; = y;
}
public int X
{
get { return x; }