




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.NET 代码规范学习下边我谈谈.NET代码规范的学习:一、注释规范1,自建代码文件注释:对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释:/*作者:小组: 说明:创建日期:版本号:*/2,标准注释:在模块、类、属性、方法前一行添加注释,以便调用的时候提示用户下以方法声明做例子:/<summary>/depiction:<对该方法的说明>/</summary>/<paramname="<参数名称>"><参数说明></param>/<returns>/<对
2、方法返回值的说明,该说明必须明确说明返回的值代表什么含义>/</returns>如果模块只进行部分少量代码的修改时,则每次修改须添加以下注释:/修改人:/修改日期:< YYYY-MM-DD >/备份: /* 原代码内容*/ 将原代码内容注释掉,然后添加新代码使用以下注释:/添加人: /添加日期: <YYYY-MM-DD> 代码内容/结束: 对于重构的类文件,需要对原来的类文件做备份,然后放在同级目录下,在原有文件名后面添加后缀_BAK,以便日后版本升级时整理源码。3.代码中的注释:代码间注释分为单行注释和多行注释:单行注释:/<单行注释>多
3、行注释:/*多行注释1多行注释2多行注释3*/代码中遇到语句块时必须添加注释(if,for,foreach,),添加的注释必须能够说明此语句块的作用和实现手段(所用算法、循环条件、不同分支的意义等等)。这是添加注释的学习,添加适当的注释,会使你的代码就像课文一样容易读懂。下边看第二部分。二,命名规范:总体来说需要做到这几点:a,名字应该能够标识事物的特性,并且与业务挂钩。b,名字一律使用英文单词,而不能为拼音。c,名字可以有两个或三个单词组成,但不应多于4个,控制在3至30个字母以内。d,在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。在具体任务开发中,
4、如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报质量管理部审计组。分点来说具体的:1,命名概括:Pascal命名法:所有单词的首字母都大写,其他字母小写Camel命名法:除首字母外,其他单词的首字母大写,其他字母小写o 在类属性的名称中包含类名是多余的,如 Book.BookTitle。而是应该使用 Book.Title。o 在变量名中使用互补对,如 min/max、begin/end 和 open/close。o 布尔变量名应该包含 Is,这意味着 Yes/No 或 True/False 值,如 fileIsFound。o 即使对于可能仅出现在几个代码行中的生存期很短的变量,
5、仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。文件名要和类名相同,一般情况下一个类一个文件,文件名遵从Pascal命名法,无特殊情况,扩展名小写,使用统一而又通用的文件扩展名: C# 类 .cs。2,缩写:为了避免混淆和保证跨语言交互操作:o 不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用 GetWindow,而不要使用 GetWin。o 不要使用计算机领域中未被普遍接受的缩写。 o 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为 User Interface 缩写,用 OLAP 作为 On-line Analytical Proc
6、essing 的缩写。o 在使用缩写时,对于超过两个字符长度的缩写请使用 Pascal 大小写或 Camel 大小写。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是 System.Io。o 对于某些名字中单词都比较长的情况,可以自行写一个缩写名字(名字中的关键字不能缩写),将所有的缩写做一个说明文件,放在同级目录下的开头。3,命名空间:o 命名命名空间时的一般性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示: CompanyName.TechnologyName.Feature.Designo 命名空间使用Pascal大小写,用逗号分隔开。 o Technolo
7、gyName 指的是该项目的英文缩写,或软件名。 o 命名空间和类不能使用同样的名字 4,类o 使用 Pascal 大小写。 o 使用全称避免缩写,除非缩写已是一种公认的约定,如URL、HTML。对于某个命名空间、文件夹下类名中单词都比较长的情况,可以缩写(名字中的关键字不能缩写,其他单词只取首字母),将所有的缩写做一个说明文件,放在同级目录下的开头。 o 不使用下划线( _ )。 o 类的命名要见名知意。o 数据访问层:类名后加DAL(Data Access Layer)。注意:在.NET中没有DAO的概念,DAO是在Java中出现的,表示一种数据访问方式。o 业务逻辑层:类名后加BLL(B
8、usiness Logic Layer),如果类名特长可以使用缩写,但在文档中要注明。缩写的全称和意义。o 界面层:asp中针对页面的类,不用添加UI前缀或后缀。o 实体层:实体类后加Entity做结尾,如果其他方法中,调用实体类作为参数,参数前面加小写en,如果参数过长,使用缩写,但在文档中也要注明。o 如果系统规模比较大,应该考虑,对类进行分组放到不同的文件夹中,便于维护,把握粒度。5,接口:o 使用 Pascal 大小写。 o 在原有类名基础上加“I”,如:IUserDaoo 不使用下划线(_)。 o 当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。两个名称的不同之处只
9、是接口名前有一个I前缀。或者在实现类名后加“Impl”后缀。public interface IComponentpublic class Component : IComponentpublic class ComponentImpl : IComponent6,枚举 (Enum)o 对于 Enum 类型和值名称使用 Pascal 大小写。 o 命名不能缩写,枚举内的内容可以缩写。 o 命名禁止加Enum 后缀。7,参数o 参数名称使用Camel大小写 o 参数名称可缩写8,方法o 以动词开头。 o 使用 Pascal 大小写。 o 禁止缩写,除非名词本身含有缩写。如:AddStudentM
10、gr ()9.属性(property) o 以名词或形容词命名。o 使用 Pascal 大小写。 o 禁止缩写。10,委托o 以名词或形容词命名。o 使用 Pascal 大小写。 o 禁止缩写。o 如果与事件(event)关联,则名称命名使用EventHandler后缀,否则其他名称均以Delegate后缀结尾。如/ 普通委托定义public delegate void SetMethodDelegate(string name);/委托与事件关联public delegate void MouseEventHandler(objectsender, MouseEventArgs e);11,
11、事件o 使用 Pascal 大小写。 o 禁止缩写。o 名称命名使用 Event后缀。o 用动词或名词命名,带有时间意义,如:MouseMove事件、Closing 事件、Closed 事件。o 指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。e为事件类的实例。e参数类型使用适当而特定的事件类。 o 用 EventArgs 后缀命名事件参数类。示例:public delegate void MouseEventHandler(objectsender, MouseEventArgs e);public event MouseEventHandlerMouseE
12、vent; /事件定义12,常量 (const)o 全部大写,单词间以“_”分隔。o 禁止缩写。 o13,字段o private、protected 使用 Camel 大小写。o 禁止使用public。14,静态字段o 使用名词、名词短语或者名词的缩写命名静态字段。 o 使用 Pascal 大小写。15,集合o 命名使用复数。16,范型o 以一个大写字母(建议优先使用T)表示类的类型,以一个小写字母(如:t)表示类名。三,编码规则a. 大括号规则o 书写规则:if (expression) (推荐)或:if (expression) b. 缩进规则使用一个“Tab”为每层次缩进(默认4个空格,
13、有的规范也要求2个空格,依要求而定,所有IDE都可以设置)。c. 小括号规则o 不要把小括号和关键词(if 、while等)紧贴在一起,要用空格隔开它们。如:if (true)o 不要把小括号和函数名紧贴在一起。 o 除非必要,不要在Return返回语句中使用小括号。因为关键字不是函数,如果小括号紧贴着函数名和关键字,二者很容易被看成是一体的。d. 单语句规则除非这些语句有很密切的联系,否则每行只写一个语句。e. 模块化规则某一功能,如果重复实现一遍以上,即应考虑模块化,将它写成通用函数。并向小组成员发布。同时要尽可能利用其它人的现成模块。f. 函数复杂度规则单个函数的功能不能过于复杂,不能超
14、过以下限定:o 单一功能子函数代码不得超过50行、形参个数不得超过7个、程序嵌套深度不得超过7层。o 圈复杂度必须在15以内,对程序的修改或扩展不得增加其原有圈复杂度。g. 编码风格规则编码过程中需遵循以下风格习惯:o 代码未写,文档先行,注释必须按照固定统一范式撰写。o 关系运算必须常量在左、变量在右。o 不许使用复杂的运算表达式,必要时添加括号而不依赖于优先级。o 魔鬼数字需用宏定义替代。 o 局部变量必须初定义、避免不必要的内存操作、内存操作必须考虑异常处理。h. 版本管理规则本项目中,每个任务在完成一个稳定的版本后,都应打包并且归档。源码包的版本号由圆点隔开的两个数字组成,第一个数字表
15、示发行号,第二个数字表示该版的修改号。具体用法如下:o 当源码包初版时,版本号为 V1.00; o 当源码包被局部修改或bug修正时,发行号不变,修改号第二个数字增1。例如,对初版源码包作了第一次修订,则版本号为 V1.01; o 当源码包在原有的基础上增加部分功能,发行号不变,修改号第一个数字增1,例如,对V1.12版的基础上增加部分功能,则新版本号为 V1.20; o 当源码包有重要修改或局部修订累积较多导致源码包发生全局变化时,发行号增1。例如,在 V1.15 版的基础上作了一次全面修改,则新版本号为 V2.00。四,数据库命名规则a. 数据库名数据库名采用首字母大写,避免系统保留的表名
16、。如:LibraryMaintainSystemb. 数据库表使用T_表名,表名采用首字母大写。如:T_Class如果系统分多个子系统模块,那么将模块的缩写加在T后,用下划线与表名分开。如:基础系统:TB_Class (Basic)评教系统:TA_表名 (Assess)考试系统:TE_表名 (Exam)选课系统:TC_表名 (Choose)关联数据表:TR_表A表B ,两个表首字母大写。 一对多关系,多在前,一在后。一对一和多对多关系,两个表的先后,以字母排序。如果分模块,那么将模块缩写添加在T后如:TBR_ClassGrade 表示基础系统,班级和年级的关系表。c. 表字段第一个字母小写,后面的单词或拼音,采用第一个字母大写,命名规则只来自于业务,尽量表达出列的含义。命名一般为名词或形容词。d. 视图视图名 = V + “_” + 名称e. 主键主键名 = PK + “_”+ 表名f. 外键外键名 = FK + “_” + 表名g. 索引索引名 = IDX + “_” + 表名 + 相关字段/索引含义。h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025全面协议借款合同
- 2025艺人经纪公司合同范本下载
- 2025综合高级顾问聘请合同范本
- 金融与新质生产力
- 2025咖啡买卖合同范本标准版
- 2025年国家电网招聘之电网计算机自我检测试卷B卷附答案
- 2025建筑拆除工程合同协议书范本
- 2025物业保管合同范文
- 2025合同权益转让协议书模板
- 《室内绿植观赏植物》课件
- 眼视光器械学-第五章-眼底检测仪器课件
- 有毒动植物食物中毒及其预防-河豚鱼中毒(食品安全课件)
- 小鸟简笔画画法课件-小鸟画法简笔画图片
- k线图经典图解
- 对公客户信息泄露应急预案
- 教科版五年级科学下册全套测试卷
- 塞外山城张家口
- 13.外墙涂料工程质量样板验收表格
- 多发伤及复合伤的抢救处理流程
- 房室结折返性心动过速
- 历史学科中考复习方法交流
评论
0/150
提交评论