基于.NET项目的代码书写规范要求书

规范|项目

本文为下半年为一项目撰写的简要代码书写规范,不尽详尽,但仍有参考价值。但是代码书写规范更重要的是项目组内组员的意识性的提高,根据此项目到目前为止的状况,就此简单规范的实现情况并不乐观,代码中仍有五花八门各个流派的风格,此问题系软件项目组管理中的不完善所致,在此并不研究此问题。

第一章 主体命名规范
一、外挂服务命名规范
1) 服务项目命名

所有服务项目名使用ESrv(注意大小写)开头,第五位字母开始自订义,但是第五位字母必须大写。比如ESrvDemo1,其中Demo1为自定义名称。

二、类成员访问权限规范
所有类成员要严格的按照成员的使用性质,设置它们的访问修饰符,修饰符的意义如下:

声明的可访问性
意义

public
访问不受限制。

protected
访问仅限于包含类或从包含类派生的类型。

internal
访问仅限于当前程序集。

protected internal
访问仅限于从包含类派生的当前程序集或类型。

private
访问仅限于包含类型。

第二章 代码书写规范
一、代码注释规范
1) .cs文件的注释

所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等

格式如下:

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

//新增日期: 2004.7.19

//作 者: XXX

//內容说明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

2) 函数过程注释

所有的函数体开头都要加上注释,所以注释使用.NET注释规范,如下格式:

/// <summary>

/// 构造函数

/// </summary>

/// <param name="is_xxx1">示例参数1</param>

/// <param name="is_xxx2">示例参数2</param>

public UpgradeThread(string is_xxx1, string is_xxx2)

{

//…

}

3) 常量变量注释

所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加上注释。如下示例:

/// <summary>

/// 当前线程指向的备份文件本地保存路径

/// </summary>

public string StorePath = "";

4) 代码修改注释

当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息,格式如下:

//BEGIN 2004-7-19 Jayson 修正了XXX问题

略…

//END 2004-7-19 Jayson

二、代码排版规范
1) 语句结构

为保证语句结构的清晰和程序的可读性,在编写软件程序时应注意以下几个方面的问题:

l 在一行内只写一条语句,并采用空格、空行和移行保证清楚的视觉效果。

l 每一个嵌套的函数块,使用一个TAB缩进,大括号必须放在条件语句的下一行,单独成一行,便于匹对。

如,有一段程序如下:
for(int i=0; i<10; i++){Console.WriteLine(“xxxxx”)}

应该写为:

for(int i=0; i<10; i++)

{

Console.WriteLine(“xxxxx”)

}

2) 代码书写格式规范

l 文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为2-3行;

l 在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。

l 每行长度尽量避免超过屏幕宽度,应不超过80个字符。

l 尽量用公共过程或子程序去代替重复的功能代码段。

l 使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成 x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。

l 避免采用过于复杂的条件测试。

l 避免过多的循环嵌套和条件嵌套。

l 一个函数不要超过200行。一个文件应避免超过2000行。

l 避免使用goto语句。

l 避免采用多赋值语句,如x = y = z;

三、结构定义规范
1) 命名规则(定义在iTradeDefine 命名空间里面):

l 用大写字母表示

l TAG_XXXX 以TAG大头,下划线后面定义具体结构的名称

2) 示例:

l public struct TAG_ALLMESSAGE

四、枚举类型定义规范
1) 命名规则:

l 用大写字母表示

l EU_XXXX以EU 打头,下划线后面定义类型名称

2) 示例:

l public enum EU_MESSAGE

五、常量定义规范
1) 全局使用常量(定义在iTradeDefine 命名空间里面)

l 示例:

n public const bool G_TRANS_FALSE = false;

l 常量定义规范

n 大写字母命名

n G_XXX_YYY G表示全局,XXX标识常量用途,YYY标识具体的值

2) 局部使用常量(定义在每个Class 的前面)

l 示例:

n public const int L_PRIORITY_LOWEST = 0

l 常量定义规范

n 大写字母命名

n L_XXX_YYY L表示局部,XXX标识常量用途,YYY标识具体的值

六、变量定义规范
1) 变量定义原则

变量定义的基本原则是:变量名=属性+类型+对象描述+自定义。

每一个变量定义尽量在函数、过程的开始处就进行定义,尽量避免在代码中不规则的穿插定义。

2) 变量属性命名表

属性
对应标识符

全局变量
g_

常量
c_

类成员变量
m_

局部变量
无属性前缀

3) 变量类型命名表

类型
对应标识符

句柄
h

布尔型
b

浮点型
f

无符号
u

字符串
sz

数字型
i

4) 变量类型描述表

类型
对应标识符

初始化
Init

临时变量
Tmp

目的对象
Dst

源对象
Src

窗口
Wnd

5) 示例

定义一个全局的字符串型的自定义变量:g_szDemo。

七、函数命名规范
1) 避免在函数名中使用“_”。

2) 同一组功能的函数定义一个功能简写,做为该组函数的前缀。

3) XxxYyyZzz Xxx表示该函数的前缀 Yyy 标识函数的动作 Zzz 标识函数的对象

4) 示例:DelegateGetBody()

八、函数出参入参返回值规范
1) 函数的输入输出参数

函数入参使用前缀“ix”开头,出参用“ox”其后根据变量定义中“类型+对象描述+自定义”的原则来完成。

示例:string isQuePath 入参 ref iTFParam otQueBody 出参

2) 函数返回值

避免使用结构体等复杂类型

使用bool类型:该函数只需要获得成功或者失败的返回信息时候

使用int 类型:错误代码用负数表示,成功返回0

时间: 2024-08-01 19:08:09

基于.NET项目的代码书写规范要求书的相关文章

JavaScript常用代码书写规范的超全面总结_javascript技巧

一.全局命名空间污染 总是将代码包裹在一个立即的函数表达式里面,形成一个独立的模块. 不推荐 var x = 10, y = 100; console.log(window.x + ' ' + window.y); 推荐 ;(function(window){ 'use strict'; var x = 10, y = 100; console.log(window.x + ' ' + window.y); }(window)); 二.立即执行函数 在立即执行函数里面,如果有用到全局变量应该通过

rustysun同学ASP代码书写规范_ASP基础

ASP源程序书写规范 1       规范简介 本规范主要规定ASP源程序在书写过程中所应遵循的规则及注意事项.编写该规范的目的是使项目开发人员的源代码书写习惯保持一致.这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护. 2       一般格式规范 2.1       缩进 缩进就是在当源程序的级改变时为增加可读性而露出的两个空格.缩进的规则为每一级缩进四个空格.不准许使用Tab.因为Tab会因为用户所作的设置不同而产生不同的效果(如果习惯使用空格的话,可以

rustysun同学ASP代码书写规范

ASP源程序书写规范 1       规范简介 本规范主要规定ASP源程序在书写过程中所应遵循的规则及注意事项.编写该规范的目的是使项目开发人员的源代码书写习惯保持一致.这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护. 2       一般格式规范 2.1       缩进 缩进就是在当源程序的级改变时为增加可读性而露出的两个空格.缩进的规则为每一级缩进四个空格.不准许使用Tab.因为Tab会因为用户所作的设置不同而产生不同的效果(如果习惯使用空格的话,可以

C语言的语法风格与代码书写规范指南_C 语言

C代码: #include <stdio.h> int main(void) { printf("That is Right Style\n"); return 0; } 在一个标准的C语言程序中,最特殊的莫过于main函数了,而说到底它就是一个函数而已,仅仅因为它地位特殊拥有第一执行权力,换句话说,难道因为一个人是省长它就不是人类了?所以函数该有的它都应该有,那么函数还有什么呢? 函数大体上分为内联函数(C99)(内联函数并非C++专属,C语言亦有,具体见前方链接)和非内

Java代码书写规范

一.通用规范 1.1命名规范 1. 使用全单词表示 2. 使用贴切的词汇 3. 使用大小写混合 4. 尽量少用缩略词,否则,维护一个标准的缩略词表 5. 避免过长,小于15 6. 避免类似的命名或仅在大小写上区分的命名 7. 标准缩略词做一个单词处理 1.2文档规范 1. 增加注释,以确保代码清晰 2. 无需注释的程序,可能也不值得运行 3. 避免修饰性注释 4. 保持注释简洁 5. 写代码之前写注释 6. 注释中说明代码的原因,而不是结果 二.Java编码规范 2.1命名和大小写规范: 下面这

C#编码,书写规范

C#编码规范C#编程<>规范<>Version 2.0目录第一章 概述<>规范<>制定原则1 方便代码的交流和维护.2 不影响编码的效率,不与大众习惯冲突.3 使代码更美观,阅读更方便.4 使代码的逻辑更清晰,更易于理解.术语定义Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写.可以对三字符或更多字符的标识符使用Pascal 大小写.例如:BackColorCamel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写.例如:

C#书写规范

一.命名对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助.名称应该说明"什么"而不是"如何".通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层.例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement(). 命名原则是:选择正确名称时的困难可能表明需要进一步分析或定义项的目的.使名称足够长以便有一定的意义,并且足够短以避免冗长.唯一名称在编程上仅用于将各项区分开.表现力强的名称是为了帮助人们

C#书写规范_C#教程

C#书写规范  一.命名  对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助.名称应该说明"什么"而不是"如何".通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层.例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement().  命名原则是:  选择正确名称时的困难可能表明需要进一步分析或定义项的目的.使名称足够长以便有一定的意义,并且足够短以避免冗长.唯一名称在编程上仅用于将各项区分开.表

J2EE项目代码编写规范分享_java

码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 servlet类所在包命名规范:公司名称.开发组名称.项目名称.web.servlet 例如:net.linkcn.web.servlet 自定义标签类所在包命名规范:公司名称.开发组名称.项目名称.web.tags 例如:net.linkcn.web.tags 过滤器类所在包命名规范:公司名称.开发组名称.项