代码书写规范说明

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

代码编写规范说明书(c#.net与asp.net)目录1目的2范围3注释规范3.1概述3.2自建代码文件注释3.3模块(类)注释3.4类属性注释3.5方法注释3.6代码间注释4命名总体规则5命名规范5.1变量(Variable)命名5.2常量命名5.3类(Class)命名5.4接口(Interface)命名5.5方法(Method)命名5.6名称空间Namespace)命名6编码规则6.1错误检查规则6.2大括号规则6.3缩进规则6.4小括号规则6.5IfThenElse规则6.6比较规则6.7Case规则6.8对齐规则6.9单语句规则6.10单一功能规则6.11简单功能规则6.12明确条件规则6.13选用FALSE规则6.14独立赋值规则6.15定义常量规则6.16模块化规则6.17交流规则7编程准则7.1变量使用7.2数据库操作7.3对象使用7.4模块设计原则7.5结构化要求7.6函数返回值原则8代码包规范8.1代码包的版本号8.2代码包的标识9代码的控制9.1代码库/目录的建立9.2代码归档10输入控制校验规则10.1登陆控制10.2数据录入控制附件1:数据类型缩写表附件2:服务器控件名缩写表1目的一.为了统一公司软件开发设计过程的编程规范二.使网站开发人员能很方便的理解每个目录,变量,控件,类,方法的意义三.为了保证编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。四.编码规范和约定必须能明显改善代码可读性,并有助于代码管理、分类范围适用于企业所有基于.NET平台的软件开发工作2范围本规范适用于开发组全体人员,作用于软件项目开发的代码编写阶段和后期维护阶段。3注释规范3.1概述a)注释要求英文及英文的标点符号。b)注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。c)每行注释的最大长度为100个字符。d)将注释与注释分隔符用一个空格分开。e)不允许给注释加外框。f)编码的同时书写注释。g)重要变量必须有注释。h)变量注释和变量在同一行,所有注释必须对齐,与变量分开至少四个“空格”键。如:intm_iLevel,m_iCount;//m_iLevel....treelevel//m_iCount....countoftreeitemsstringm_strSql;//SQLi)典型算法必须有注释。j)在循环和逻辑分支地方的上行必须就近书写注释。k)程序段或语句的注释在程序段或语句的上一行l)在代码交付之前,必须删掉临时的或无关的注释。m)为便于阅读代码,每行代码的长度应少于100个字符。3.2自建代码文件注释对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释:/******************************************************FileName:Copyright(c)2004-xxxx*********公司技术开发部Writer:createDate:Rewriter:RewriteDate:Impact:MainContent(FunctionName、parameters、returns)******************************************************/3.3模块(类)注释模块开始必须以以下形式书写模块注释:///summary///ModuleID:模块编号,可以引用系统设计中的模块编号///Depiction:对此类的描述,可以引用系统设计中的描述///Author:作者中文名///CreateDate:模块创建日期,格式:YYYY-MM-DD////summary如果模块只进行部分少量代码的修改时,则每次修改须添加以下注释:///RewriterRewriteDate:修改日期:格式YYYY-MM-DDStart1:/*原代码内容*////End1:将原代码内容注释掉,然后添加新代码使用以下注释:///AddedbyAdddate:添加日期,格式:YYYY-MM-DDStart2:///End2:如果模块输入输出参数或功能结构有较大修改,则每次修改必须添加以下注释:///summary///LogID:Log编号,从1开始一次增加///depiction:对此修改的描述///Writer:修改者中文名///RewriteDate:模块修改日期,格式:YYYY-MM-DD////summary3.4类属性注释在类的属性必须以以下格式编写属性注释:///summary///Propertiesdepiction////summary3.5方法注释在类的方法声明前必须以以下格式编写注释///summary///depiction:对该方法的说明////summary///paramname=参数名称参数说明/param///returns///对方法返回值的说明,该说明必须明确说明返回的值代表什么含义////returns///Writer:作者中文名///CreateDate:方法创建日期,格式:YYYY-MM-DD3.6代码间注释代码间注释分为单行注释和多行注释://单行注释/*多行注释1多行注释2多行注释3*/代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。4命名总体规则名字应该能够标识事物的特性。名字一律使用英文单词,而不能为拼音。名字尽量不使用缩写,除非它是众所周知的。名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。名字尽量使用前缀而不是后缀。名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。5命名规范5.1变量(Variable)命名a)程序文件(*.cs)中的变量命名程序中变量名称=变量的前缀+代表变量含意的英文单词或单词缩写。类模块级的变量请用“m_”+数据类型缩写作为前缀(其中,m为“memory”缩写,数据类型缩写见附件中的《数据类型缩写表》)。publicclasshello{privatestringm_strName;privateDateTimem_dtDate;}类的属性所对应的变量,采用属性名前加“m_”+类型缩写前缀的形式publicclasshello{privatestringm_strName;publicstringName{get{returnm_strName;}}}过程级的变量使用类型缩写前缀publicclasshello{voidsay(){stringstrSayWord;}}过程的参数使用“p_”+类型缩写作为前缀(其中,p为“parameter”缩写)publicclasshello{voidsay(stringp_strSayWord){}}补充说明:针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为exp;如果有冲突的情况下,可以用“exp”+标志名称,如:expSql。Try{//yourcodetry{//code}catch(Exceptionexp){//yourcode}}catch(ExceptionexpSql){//yourcode}补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例。例:try{//yourcode}catch(Exceptionexp){}鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如i或j。在变量名中使用互补对,如min/max、begin/end和open/close。不要使用原义数字或原义字符串,如For(i=1;i=7;i++)。而是使用命名常数,如For(i=1;i=NUM_DAYS_IN_WEEK;i++)以便于维护和理解。b)控件命名控件命名=控件名称前二到三个字母+名称,如Labl控件(labUserName)5.2常量命名常量名也应当有一定的意义,格式为NOUN或NOUN_VERB。常量名均为大写,字之间用下划线分隔。例:privateconstboolWEB_ENABLEPAGECACHE_DEFAULT=true;privateconstintWEB_PAGECACHEEXPIRESINSECONDS_DEFAULT=3600;privateconstboolWEB_ENABLESSL_DEFAULT=false;注:变量名和常量名最多可以包含255个字符,但是,超过25到30个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25或30个字符应当足够了。5.3类(Class)命名a)名字应该能够标识事物的特性。b)名字尽量不使用缩写,除非它是众所周知的。c)名字可以有两个或三个单词组成,但通常不应多于三个。d)在名字中,所有单词第一个字母大写。例如IsSuperUser,包含ID的,ID全部大写,如CustomerID。e)使用名词或名词短语命名类。f)少用缩写。g)不要使用下划线字符(_)。例:publicclassFileStreampublicclassButtonpublicclassString5.4接口(Interface)命名和类命名规范相同,唯一区别是接口在名字前加上“I”前缀例:interfaceIDBCommand;interfaceIButton;5.5方法(Method)命名和类命名规范相同。5.6命名空间(NameSpace)命名和类命名规范相同。6编码规则6.1错误检查规则a)编程中要考虑函数的各种执行情况,尽可能处理所有流程情况。b)检查所有的系统调用的错误信息,除非要忽略错误。c)将函数分两类:一类为与屏幕的显示无关,另一类与屏幕的显示有关。对于与屏幕显示无关的函数,函数通过返回值来报告错误。对于与屏幕显示有关的函数,函数要负责向用户发出警告,并进行错误处理。d)错误处理代码一般放在函数末尾。e)对于通用的错误处理,可建立通用的错误处理函数,处理常见的通用的错误。6.2大括号规则将大括号放置在关键词下方的同列处,例如:if($condition)while($condition){{......}}6.3缩进规则使用一个“Tab”为每层次缩进。例如:functionfunc(){if(somethingbad){if(anotherthingbad){while(moreinput){}}}}6.4小括号规则a)不要把小括号和关键词(if、while等)紧贴在一起,要用空格隔开它们。b)不要把小括号和函数名紧贴在一起。c)除非必要,不要在Return返回语句中使用小括号。因为关键字不是函数,如果小括号紧贴着函数名和关键字,二者很容易被看成是一体的。6.5IfThenElse规则如果你有用到elseif语句的话,通常最好有一个else块以用于处理未处理到的其他情况。可以的话放一个记录信息注释在else处,即使在else没有任何的动作。其格式为:if(条件1)//注释{}elseif(条件2)//注释{}else//注释{}注:if和循环的嵌套最多允许4层6.6比较规则总是将恒量放在等号/不等号的左边。一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错。第二个原因是你能立刻找到数值而不是在你的表达式的末端找到它。例如:if(6==$errorNum)...6.7Case规则defaultcase总应该存在,如果不允许到达,则应该保

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功