编码命名规范(.NET)(很全 很实用)
- 格式:pdf
- 大小:136.40 KB
- 文档页数:9
基于.NET项目的代码书写规范要求书第一章主体命名规范外挂服务命名规范服务项目命名所有服务项目名使用ESrv(注意大小写)开头,第五位字母开始自订义,但是第五位字母必须大写。
比如ESrvDemo1,其中Demo1为自定义名称。
二、类成员访问权限规范所有类成员要严格的按照成员的使用性质,设置它们的访问修饰符,修饰符的意义如下:声明的可访问性意义l public //访问不l 受限制。
l protected //访问仅限于包含类或从包含类派生的类型。
l internal //访问仅限于当前程序集。
l protected internal //访问仅限于从包含类派生的当前程序集或类型。
l private //访问仅限于包含类型。
第二章代码书写规范一、代码注释规范1) .cs文件的注释所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等格式如下://********************************************************////创建日期: 2004.7.19//作者: XXX//功能说明:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX////********************************************************函数参数命名及过程注释参数一定要能说明要传递的意思,用对应的英文或相近的英文单词表示均小写开头。
所有的函数体开头都要加上注释,所以注释使用.NET注释规范,如下格式:/// <summary>/// 构造函数/// </summary>/// <param name="netPath">示例参数1</param>/// <param name="myPath">示例参数2</param>public UpgradeThread(string netPath, string myPath){程序语句。
华为软件编程规范和范例〔一〕=====[排版] ]=======.〔二〕======[注释]=======.〔三〕=====[标识符命名]=======.〔四〕=====[可读性]======.〔五〕=====[变量、结构]=====.〔六〕=====[函数、过程]=====.〔七〕=====[可测性]=====.〔八〕=====[程序效率]=====.〔九〕=====[质量保证]=====.〔十〕=====[代码编辑、编译、审查]=====.〔十一〕=====[代码测试、维护]=====.〔十二〕=====[宏]=====.〔一〕========[ 排版]========== ¹1-1:程序块要采用缩进风格编写,缩进的空格数为4个说明:对于由开发工具自动生成的代码可以有不一致。
¹1-2:相对独立的程序块之间、变量说明之后必须加空行示例:如下例子不符合规范。
Int ni;if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;应如下书写Int ni;if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;¹1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读示例:perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied= stat_poi[index].occupied;act_task_table[taskno].duration_true_or_false= SYS_get_sccp_statistic_state( stat_item );report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)&& (n7stat_stat_item_valid (stat_item))&& (act_task_table[taskno].result_data != 0));¹1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首示例:if ((taskno < max_act_task_number)&& (n7stat_stat_item_valid (stat_item))){... // program code}for (i = 0, j = 0; (i < BufferKeyword[word_index].word_length)&& (j < NewKeyword.word_length); i++, j++){... // program code}for (i = 0, j = 0;(i < first_word_length) && (j < second_word_length);i++, j++){... // program code}¹1-5:若函数或过程中的参数较长,则要进行适当的划分示例:n7stat_str_compare((BYTE *) & stat_object,(BYTE *) & (act_task_table[taskno].stat_object),sizeof (_STAT_OBJECT));n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER+ index, stat_object );¹1-6:不允许把多个短语句写在一行中,即一行只写一条语句示例:如下例子不符合规范。
.Net项⽬命名规范⽬录dotShare系统改造项⽬的建设过程中,将涉及到Visual 、Web站点,业务对象及数据库,同时项⽬⼈员包括设计⼈员、开发⼈员和测试⼈员等较多。
为了保持应⽤程序、组件、⽂件的⼀致性,便于阅读和管理代码和结构,提⾼开发效率和产品的标准化,特制订⼀套开发规范和标准(包括命名规范和编码规范)。
好的编码约定可使源代码严谨、可读性强且语意清楚,做到与其它语⾔约定相⼀致,并且提⾼直观性。
希望设计/开发⼈员严格遵守此套开发规范和标准,并落实到⾃⼰的设计与代码程序中。
命名规范将包括:编程命名规范,业务对象命名规范,数据库命名规范,Web站点结构命名规范等。
编码规范将包括:C#编码规范,第三⽅模块使⽤规范等本命名规范主要针对使⽤Visual (语⾔及C#语⾔)规范,即编程命名规范部分。
请注意:在本项⽬过程中,C#将作为⾸选语⾔,如⾮特别必要,不要选⽤。
变量命名的总原则是⼀个通⽤性的原则,本规范后续章节中的命名规则都应当符合这些总原则。
·变量名称应当准确完整地描述了变量的含义·名称应当反映了业务上的问题⽽不是技术上或编程上的解决⽅法·名称的长度应当⾜够长·名称的最后⼀部分应当有限定符·应当⽤Count, Index或Nbr代替Num, No.·循环计数变量的的名称应当有含义(如果循环语句的长度超过了两⾏或者存在着嵌套循环,尽量避免使⽤I,j,k之类的变量,应该使⽤有意义的变量)·临时变量的命名应当有意义·所有布尔型变量的命名能够直接从名称上看出为真的条件·枚举类型的变量名称应当包含了基础类型,能够⽅便的分辨变量的类型。
例如:⽤Color变量表⽰ ColorRed, ColorGreen枚据类型的值。
·命名的常量应当代表了抽象的实体⽽⾮他们所代表的值·从变量命名中应当可以看出变量的作⽤域是局部变量,模块变量或者全局变量·变量的名称中不同的单词⾸字母要⼤写,以⽅便阅读·如果不是绝对必须,尽量避免使⽤短的名称·如果变量中单词的缩写只能缩短⼀两个字符则使⽤单词的完全拼写·所有单词的缩写规则应当⼀致·名称具有误导性·两个不同的命名具有相似的含义·不同的命名拼写很相似,仅差⼀两个字符·在变量名称中不应当使⽤数字·完全和变量含义不相关的命名使⽤下⾯的三种⼤写标识符约定。
常见的软件版本编号及命名1、RC,GARC:就是Release Candidate(候选版本)的缩写GA:就是General Availability,正式发布的版本Alpha:内测版。
Alpha是希腊字母的第一位的英文谐音,就是α,用在软件版本中就是表示最初级的版本。
通常情况下Alpha是内部测试版,一般不向外部发布,会有很多Bug。
除非你也是测试人员,否则不建议使用。
Beta:公测版。
Beta是希腊字母的第二位的英文谐音,就是β,是一个比Alpha稍高的版本。
Beta 也是一个测试版本,在正式版推出之前发布,主要用于面向公众进行测试及Bug收集,这个阶段的版本Bug可能较多,并且可能会加入一些新的功能。
Delux:豪华版。
Plus版和Delux版区别不大,比普通版本多了一些附加功能。
EVAL:体验版或评估版。
功能上和正式版没有区别,但存在一些时间或空间上的限制。
Final:正式版。
软件的正式版本,修正了Alpha版和Beta版的Bug。
Free:免费版。
Full:完全版。
OEM:是给计算机厂商随着计算机贩卖的,也就是随机版。
只能随机器出货,不能零售。
如果买笔记型计算机或品牌计算机就会有随机版软件。
包装不像零售版精美,通常只有一面CD和说明书(授权书)。
Plus:加强版。
Pro:专业版。
需要注册后才能解除限制,否则为评估版本。
RC(Release Candidate):Candidate是候选人的意思,用在软件上就是候选版本,而Release Candidate 就是发行候选版本,也就是说这还不能算是正式的发布版。
和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错!RTL(Retail):零售版。
正式上架零售版。
RTM(Release to Manufacture):程序代码开发完成之后,要将母片送到工厂大量压片,这个版本就叫做RTM版。
代码编写规范说明书(c#.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.5 If Then Else规则6.6 比较规则6.7 Case规则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) 注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。
代码规范及编码原则代码规范及编码原则1.1代码风格的原则是:简明,已读,⽆⼆义性。
每⼀个优秀的程序员都应该遵循代码规范及编码原则。
读了《构建之法》第四章后,我们组进⾏简洁总结。
1.2程序风格:1、缩进:4个空格2、⾏宽:限制⾏宽3、括号:在复杂的条件表达式中,⽤括号清楚地表⽰逻辑优先级4、{}号:每个{}号独占⼀⾏5、分⾏:不要把多条语句放在⼀⾏变量命名规则(1) 变量名的命名规则;分析:变量名的命名规则遵循⽤户⾃定义标识符命名规则(1)只能由字母、数字、下划线组成;(2)第⼀个字符必须是英⽂字母;(3)有效长度为255个字符;(4)不可以包含标点符号和类型说明符%,&,!,# ,@,$;(5)不可以是系统的关键词⽐如else注释1、多余的注释要舍弃2、复杂的注释放在函数头函数,过程1.函数的规模尽量限制在200⾏以内。
2.⼀个函数最好仅完成⼀件功能。
3.为简单功能编写函数。
4.函数的功能应该是可以预测的,也就是只要输⼊数据相同就应产⽣同样的输出。
5.函数的命名法应使⽤驼峰命名法或者下划线命名法,驼峰和下划线不能同时使⽤。
除了此书外,《Clean Code》也可以帮助程序员学习代码规范。
下⾯是Clean Code读书笔记⼀、整洁代码1. 概念代码正确简洁明了清晰易读短⼩精确⼆、命名1.准确:名字与意义匹配易于区别2.实⽤使⽤读的出来的名称使⽤可搜索的名称3.明确⼀个概念对应⼀个词不⽤双关语使⽤有意义的语境三、函数1.短⼩2.职责单⼀3.⼀块代码中,函数的抽象层级需⼀致4.函数命名规范(参照⼆)5.参数尽可能少6.如果函数需要的参数要求数量有多种,应考虑将其封装成类7.实⽤异常类代替返回错误码,抽离try/catch代码块,使代码更加简洁四、注释1.少⽤注释,尽可能通过规范的代码来表达2.不使⽤⽆意义的注释3.必要的注释:法律信息提供信息的注释对代码意图进⾏解释的注释警⽰信息,防⽌踩坑TODO注释:未来得及完成的部分4. 对于⽆⽤的代码应直接删除⽽不是注释五、格式1.为什么需要规范格式易维护易拓展2.垂直格式⾏数少,短⼩精悍概念隔离,不同的的概念/逻辑代码实⽤空⾏隔离相关靠近:对于关系紧密的代码,尽量写在⼀起3.⽔平格式缩进、对齐六、对象与数据结构1.区别:过程式代码便于在不改动既有数据结构的前提下添加新函数⾯向对象代码便于在不改动既有函数的前提下添加新类亦即:过程式代码难以添加新数据结构,因为必须修改所有函数⾯向对象代码难以添加新函数,因为必须修改所有类七、错误处理1.使⽤异常⽽⾮返回码:更加美观、整洁2.使⽤不可控异常可控异常的代价是违反开放/闭合原则,因为你需要在使⽤的地⽅捕获异常3.在异常发⽣的地⽅添加环境说明:这样当异常发⽣的时候就可以根据这些信息定位异常原因4.不返回null 也不传递null这样在接收的时候不需要进⾏空值检查⼋、边界翻了下原书,边界是Boundaries 对于这个名字,开始不是⼤理解,就算现在看来也还是觉得不直观标题略晦涩:作者的意思应该是让我们让⾃⼰的代码和第三⽅库代码不要耦合太紧密,需有清新的边界对于第三⽅类库给的学习建议是:探索性地学习测试,以此熟悉类库,写出良好的代码来源:https:///mummyding/article/details/51326238。
C#编码规范文档版本V0.011.目的规范C#代码的书写,提高代码的可读性,使开发人员在代码上更好的协作,减少新开发成员熟悉现有代码的时间,间接提高软件代码的可维护性。
2.命名规范1)命名约定标识符构成:所有标识符应由一个或多个完整的英文单词构成,除通用的缩略词如IO、Http、id等或是项目特定的专用缩略词如项目名称的缩写等,不应使用未被普遍接受的单词缩略形式。
可以适当使用下划线“_”。
2)大小写约定Pascal : 组成标识符的所有单词的首字母大写,如Get、BackColor。
Camel : 组成标识符的第一个单词全小写,后续单词首字母大小,如get、backColor。
全大写:组成标识符的所有单词的所有字母全部大写。
缩略词:➢不要使用半个单词的缩写形式,如GetWin,而应使用GetWindow。
➢不要使用不被普遍认可的首字母缩写。
在适当情况下,使用通用的首字母缩写,如UI表示User interface,而OLAP表示On-line Analytical Processing。
两个字母的缩写单独使用时可以适当使用全大写书写风格替代Pascal风格。
➢不要在标识符或参数名中使用首字母缩写,必须使用时,应使用Camel形式。
➢Id不是首字母缩写,不应使用全大写方式。
3)C#命名规范以.Net 公共语言规范(CLSCompliant)为基础,规定标识符的命名规则。
4)代码书写风格使用Visual Studio默认书写风格,在签入代码之前,应使用Ctrl + K, Ctrl + D快捷键格式化代码,保证源码管理服务器对代码差异的正确评估。
5)编码要求1.单个类、方法的代码行数不应过长,否则应考虑进行拆分。
2.局部变量引用Disposable类实例的,必须使用using 语法进行Dispose 操作。
或在特殊情况下,使用try{..} finally {…} 进行手动Dispose操作。
3.类的实例字段包含Disposable 类型的,类必须也要实现IDisposable接口。
.NET命名规范中⽂版避免使⽤由经常使⽤的名称空间复制的类型名。
类型名不能使⽤下列词语。
System Collections Forms UI 避免避免使⽤与常⽤关键词词语选择避免冲突的标识符。
例如,避免使⽤下列词语。
AddHandlerAddressOf Alias And AnsiAs Assembly Auto BitAnd BitNotBitOr BitXor Boolean ByRef ByteByVal Call Case Catch CBoolCByte CChar CDate CDec CDblChar CInt Class CLng CObjConst CShort CSng CStr CTypeDate Decimal Declare Default DelegateDim Do Double Each ElseElseIf End Enum Erase ErrorEvent Exit ExternalSource False FinallyFor Friend Function Get GetTypeGoto Handles If Implements ImportsIn Inherits Integer Interface IsLet Lib Like Long LoopMe Mod Module MustInherit MustOverrideMyBase MyClass Namespace New NextNot Nothing NotInheritable NotOverridable ObjectOn Option Optional Or OverloadsOverridable Overrides ParamArray Preserve PrivateProperty Protected Public RaiseEvent ReadOnlyReDim Region REM RemoveHandlerResumeReturn Select Set Shadows SharedShort Single Static Step StopString Structure Sub SyncLock ThenThrow To True Try TypeOfUnicode Until Variant When WhileWith WithEvents WriteOnly Xor evalextends instanceof package var不要使⽤缩写。
.NET开发规范编写:审核:批准:目录1.概述 (4)2.命名规范 (4)2.1.类、参数和方法的命名规范 (4)2.2.接口命名规范 (4)2.3.动态语言文件命名规则 (5)2.3.1.格式:性质_描述 (5)2.4.客户端JavaScript规范 (5)2.4.1.变量命名规范 (5)2.4.2.对象命名规范 (5)2.5.控件命名规范 (5)2.6.图片的命名原则 (6)2.7.数据库命名规范 (7)2.7.1.命名规范原则 (7)2.7.2.数据库规范 (7)2.7.3.表命名规范 (7)2.7.4.字段规范 (8)2.7.5.视图规范 (8)2.7.6.存储过程规范 (8)2.7.7.函数规范 (8)2.7.8.索引命名规范 (8)2.7.9.关联命名 (8)2.7.10.设计规范 (8)3.编码规范 (8)3.1.C#代码编写 (8)3.2.Request、Session、Application使用规范 (12)3.3.HTML标记语言编码规范 (12)3.4.注释规范 (12)3.5.异常规范 (15)1.概述为了保持应用程序、组件、文件的一致性,便于阅读和管理代码和结构,提高开发效率和产品的标准化,特制订一套开发规范和标准(包括命名规范和编码规范)。
命名规范将包括:类和参数的命名规范、接口命名规范、数据库命名规范、ASP命名规范、JavaScript命名规范、控件命名规范等。
编码规范将包括:C#编码规范、注释规范、HTML编码规范、编码规范、异常规范等。
2.命名规范2.1.类、参数和方法的命名规范2.1.1.用名词或名词短语命名类。
2.1.2.使用Pascal大写注记:Pascal 大小写形式-所有单词第一个字母大写,其他字母小写。
2.1.3.不要使用匈牙利命名法2.1.4.用有意义的,描述性的词语来命名变量- 别用缩写。
用name, address, salary等代替nam, addr, sal 。