软件开发规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发规范
1. 目的
为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。编码规范对于程序员而言尤为重要,有以下几个原因:
- 一个软件的生命周期中,80%的花费在于维护
- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护
- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码
- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品
为了执行规范,每个软件开发人员必须一致遵守编码规范。每个人。
2. 范围
适用于企业所有基于C#.NET平台的软件开发工作。
3. 规范内容
3.1. 文件规范
3.1.1. 文件命名
与类名名称相同
3.1.2. 文件内容格式
开头注释
引用
命名空间
类体
变量(代理事件):用#region 变量………#endregion包括
属性:用#region属性………#endregion包括
构造:
方法(事件的实现):用#region方法………#endregion包括
3.2. 代码格式
所有的缩进以Tab代替空格。
在代码中垂直对齐左括号{和右括号}。
if(x==0)
{
Response.Write("用户编号必须输入!");
}
不允许以下情况:
if(x==0) {
Response.Write("用户编号必须输入!");
}
或者:
if(x==0){ Response.Write("用户编号必须输入!");}
为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏
当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。
每一行上放置的语句避免超过一条,即一条语句一行。
在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。
例:
int j = i + k;
而不应写为
int j=i+k;
将大的复杂代码节分为较小的、易于理解的模块。
编写SQL 语句时,对于关键字使用全部大写,对于数据库元素(如表、列和视图)使用大写。
将每个主要的SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如:SELECT FirstName, LastName
FROM Customers
WHERE State = 'W A'
3.3. 注释(Comment)规范
注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释
3.3.1. 模块(类)注释规范
模块开始必须以以下形式书写模块注释:
///
///定义某某类的方法
///
///
///
///
如果模块有修改,则每次修改必须添加以下注释:
///
3.3.2. 类属性注释规范
在类的属性必须以以下格式编写属性注释:
///
///属性说明
///
3.3.3. 方法注释规范
在类的方法声明前必须以以下格式编写注释
///
/// 说明:<对该方法的说明>
///
/// <参数说明>
///
///
代码间注释规范
代码间注释分为单行注释和多行注释:
单行注释:
//<单行注释>
多行注释:
/*多行注释1
多行注释2
多行注释3*/
代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。
别每行代码,每个声明的变量都做注释
在需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。
行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。
如果因为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。
对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。
简言之,要写清晰,可读的代码以致无须什么注释就能理解。
对注释做拼写检查,保证语法和标点符号的正确使用
3.4. 变量(V ariable)命名规范
3.4.1. 程序文件(*.cs)中的变量命名规则
程序中变量名称= 变量的前缀+代表变量含意的英文单词或单词缩写
- 不能使用“_”,必须用有意义的,描述性的词语来命名变量。
- 合理使用缩写。不能用nam, addr, sal等代替name, address, salary
- 别使用单个字母的变量象i, n, x 等. 使用index, temp等,用于循环迭代的变量例外:
- 变量名中不使用数字。
- 命名空间需按照标准的统一的模式命名
- 文件名要和类名匹配,例如,对于类HelloWorld, 相应的类文件名应为helloworld.cs
- 如果变量只用于迭代计数,没有在循环的其他地方出现,可以使用i, n, x 等,而不是另外取名。for ( int i = 0; i < count; i++ ){ ...}
3.4.2. 类模块级的变量以变量类型的缩写作前缀
public class hello
{
private string strName;
private DateTime dtDate;
}
3.4.3. 类的属性所对应的变量,采用属性名前加类型的缩写作前缀前缀的形式
public class hello
{
private string s_Name;
public string Name
{
get
{
return m_Name;
}
}