安瑞范文网

代码编写管理规定

|来源:网友投稿

 XXX 公司

 代码编写 管理 规定

 X XX XX 公司

 编号

 编制

 审核

 批准

 发布日期

 修改记录

 序号 文件更改内容

 修改日期 修改人 版本 1 A

  V1.0

  (A- 新增,M-修改,D-删除)

 目录 1.目的 ........................................................ 4 2.范围 ........................................................ 4 3.职责 ........................................................ 4 4.术语 ........................................................ 4 5.程序 ........................................................ 4 6.相关文件 ................................................... 31 7.相关记录 ................................................... 31

 1 1. . 目的

 为确保 XXX 公司软件开发项目代码编写过程得到有效管控,以确保代码的安全性、可读性、适用性,特制定本规定。

 2 2. . 范围

 适用于软件开发项目的代码编写活动。

 3 3. . 职责

 产品事业部:负责代码的编写、评审。

 增值业务部:负责代码的编写、评审。

 4 4. . 术语

 编码:编码是信息从一种形式或格式转换为另一种形式的过程。

 5 5. . 程序

 5.1.asp.net 编码规范 5.1.1页面设计部分 5.1.1.1Img 控件 所有展示类图片都要具有能简要描述图片内容的文字说明。

 5.1.1.2Input 控件 maxlength:所有 INPUT 控件都需要制定 maxlength 属性,默认值为数据库中对应的字段的长度。

 readonly:所有不可更改的信息都要使用 readonly 属性。

 5.1.1.3控件的命名 将默认名称中的序号用有意义的名称代替,如:存储按钮默认为Button1 改为 Button_Save

 5.1.2客户端程序部分 5.1.2.1提示 每次操作都应该返回提示。

 5.1.2.2错误提示信息的处理 所有错误提示信息全部使用中文,标点使用中文半角符号,格式如下:

 "错误:"+提示信息+"!"

 5.1.2.3成功提示信息的处理 所有成功提示信息全部使用中文,标点使用中文半角符号,格式如下:

 "成功:"+提示信息+"!"

 5.1.2.4提交前数据的验证

 1) 是否为数字 2) 长度判断 3) 为空判断 5.1.2.5删除数据前的提示 所有涉及删除的操作,在用户选定以后都要再进行一次确认操作。

 5.1.3服务器端程序部分 5.1.3.1对象的关闭 所有数据库和文件对象都要在使用后尽可能早的 close,同时赋nothing。

 5.1.3.2可移植配置管理 将可能在部署或升级时可能发生变化的信息进行动态设置处理。例如:数据适配器中连接串动态配置。

 5.1.4模糊查询 在文本框中输入!表示匹配单个字符、%表示匹配多个字符。

 5.1.5必输内容标示 用*标示必输内容。

 5.2.C#编程规范 5.2.1命名规范 命名总体原则:

 将默认名称中的序号用有意义的名称代替,如:存储按钮默认为Button1 改为 Button_Save。

 其他命名原则是:

 1)使名称足够长以便有一定的意义,并且足够短以避免冗长; 2)使用容易让人理解的名称,避免容易被主观解释的难懂的名称; 3)尽量减少使用缩写; 4)鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。

 5.2.1.1类 以 Class 声明的类,都必须以名词或名词短语命名,体现类的作用。如:

 Class Indicator 当类是一个特性(Attribute)时,以 Attribute 结尾,当类是一个异常(Exception)时,以 Exception 结尾:

 Class ColorSetException

 Class CauseExceptionAttribute 当类只需有一个对象实例(全局对象,比如 Application 等),必须以Class 结尾,如:

 Class ScreenClass Class SystemClass 当类只用于作为其他类的基类,根据情况,以 Base 结尾:

 MustInherit Class IndicatorBase 如果定义的类是一个窗体,那么名字的后面必须加后缀 Form,如果是Web 窗体,必须加后缀 Page:

 Class PrintForm : Inherits Form "* Windows 窗体 Class StartPage : Inherits Page "* Web 窗体 其他原则:

 1) 使用 Pascal 大写。

 2) 减少类名中缩写的使用量。

 3) 不要使用任何类前缀(比如 C)。

 4) 不要使用带下划线的字符。

 下面是一些正确命名的类名的例子。

 public class FileStream { }

 public class Button { }

  public class String { } 5.2.1.2枚举和结构 同样必须以名词或名词短语命名。最好体现枚举或结构的特点,如:

 Enum ColorButtons "以复数结尾,表明这是一个枚举 Structure CustomerInfoRecord "以 Record 结尾,表明这是一个结构体 5.2.1.3委派类型 普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能:

 Delegate String DataSeeker (String SeekString) 用于事件处理的委派类型,必须以 EventHandler 结尾,如:

 Delegate void DataChangedEventHandler (Sender Object, DataChangedEventArgs e) 5.2.1.4接口 与其他类型不同,接口必须要由 I 作为前缀,并用形容词命名,突出表现实现接口的类将具有什么能力,如:Interface Isortable。

 使用 Pascal 大写。

 减少接口名中缩写的使用量。

 不要使用带下划线的字符。

 不要在类名前加上前缀 C。偶而情况下,需要在类名前加上 I 而并不表示它是一个接口。在这种情况下,只要 I 后面的字符是小写就可(例如,

 IdentityStore。)

 当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。两个名称的不同之处只是接口名前有一个 I 前缀。

 下面我们举个例子,来看看接口 IComponent 和它的标准执行,类Component。

 public interface IComponent {

 }

 public class Component : IComponent {

 }

 public interface IServiceProvider{

 }

 public interface IFormatable {

 } 5.2.1.5模块 模块不是类型,他的名称除了必须以名词命名外,必须加以后缀 Module,

 如:Module SharedFunctionsModule。

 上述所有规则的共同特点是,每个组成名称的词语都必须是大写开头,禁止完全大写或小写的名称。

 5.2.1.6方法 无论是函数还是子程序,方法都必须以动词或动词短语命名。无需区分函数和子程序,也无需指明返回类型。

 public void SetCopyNumber(Int CopyNumber) 参数需要区分 ref 还是 out,这一点写起来会让程序变长,但非常必要。如果没有特别情况,都使用默认。参数的命名方法,参考后面变量的命名方法。需要重载的方法,一般不写 Overloads,根据需要编写重载的方法。

 5.2.1.7属性 原则上,字段(Field)是不能公开的,要访问字段的值,一般使用属性。属性以简洁清晰的名词命名:

 public int Concentration { get { return 0; } set { }

 } 5.2.1.8变量和常数 常数以表明常数意义的名词命名:

 public const int DefaultConcentration = 12 在严格要求的代码中,常数以 c_开头,如 c_DefaultConcentration,但最好不要用它,它会带来输入困难。

 普通类型的变量,只要用有意义的名字命名即可,不可使用简称和无意义的名称诸如 A,x1 等 5.2.1.9标签

 标签就是用于 Goto 跳转的代码标识,由于 Goto 并不推荐使用,所以标签的使用也比较苛刻。标签必须全部大写,中间的空格用下划线_代替,而且应该以_开头,比如:

 _A_LABEL_EXAMPLE: 如此定义标签是为了与其他代码元素充分区别。

 5.2.1.10名称空间 命名名称空间的一般规则如下:

 CompanyName.TechnologyName 这样,我们看到的名称空间应该是这样的:

 Microsoft.Office PowerSoft.PowerBuilder 注意:这只是一个原则。第三方公司可以选择其它的名字。

 避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会

 造成两个公布的名称空间有同一个名称的可能性。(例如,将微软提供的Office 自动类命名为 Microsoft.Office。)

 使 用 Pascal 大 写 方 式 , 用 逗 号 分 隔 逻 辑 成 分 ( 例 如 ,Microsoft.Office.PowerPoint)。如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则(例如,NeXT.WebObjects,和 ee.cummings。)

 该 用 复 数 的 时 候 要 使 用 复 数 的 名 称 空 间 名 。

 例 如 , 使 用System.Collections 而不是 System.Collection。本规则的特例是品牌名称和缩写。例如:使用 System.IO 而不是 System.IOs。

 名称空间和类不能使用同样的名字。例如,有一个类被命名为 Debug后,就不要再使用 Debug 作为一个名称空间名 5.2.2书写格式规范 5.2.2.1总则 格式化使代码的逻辑结构很明显。

 5.2.2.2要求书写格式 1) 使用四个空格作为标准的缩进大小,并一致地使用此标准; 2) 括号位于下一行,要求相匹配的大括号在同一列; 3) 每一行上放置的语句避免超过一条; 4) 对继行则要求再缩进 4 格。

 5.2.3注释规范 5.2.3.1一般性问题 1)其他人得到了代码是否能够很快的理解它;

 2)注释是否解释了代码的意图,而不仅仅是描述重复描述流程; 3)技巧性过强的代码是否重新编写了而不是仅仅加一些注释; 4)注释是否及时更新了,以正确反应最新的程序含义; 5)注释的风格是否能够保证修改注释很容易; 6)使用 XML 文档功能; 7)修改代码时,总是使代码周围的注释保持最新; 8)在每个函数的开始,说明函数的用途、假设和限制等; 9)除了批注变量声明外,避免在代码行的末尾添加注释; 10)在部署之前,移除所有临时或无关的注释; 11)注释应该阐明代码,而不应该增加多义性; 12)在编写代码时就注释,因为以后很可能没有时间这样做; 13)避免多余的或不适当的注释,如幽默的不主要的备注; 14)使用注释来解释代码的意图,而不是作为代码的联机翻译; 15)为了防止问题反复出现,对错误修复和解决方法代码总是使用注释; 16)对由循环和逻辑分支组成的代码使用注释。

 5.2.3.2语句和段落 1)代码是否避免了在程序语句末尾的注释; 2)注释是否更侧重于解释“为什么这么做”,而不是“如何做”; 3)注释是否能够引导读者的思路; 4)每一个注释是否都是有价值的,多余的,无关的或自相矛盾的注释是否删除了或改正了;

 5)缩写单词是否替换为完全拼写形式了; 6)主要注释和次要注释的区分是否明显; 7)代码绕过了一个错误或者未在文档中记载的特性的情况是否在注释中说明了。

 5.2.3.3数据定义 1)数据的单位是否说明了; 2)数值型数据的取值范围是否说明了; 3)输入数据的限制是否说明了; 4)使用标志的注释是否细到了每一个位; 5)使用的全局变量的地方是否在注释中说明了该全局变量是在那里定义的; 6)使用了全局变量的任何地方能否通过注释或命名规则看出它是一个全局变量; 7)每个控制语句是否都有注释; 8)比较长的或复杂的控制结构结束的地方是否有注释,以便于阅读; 9)需要使用特定数值的数据是否在注释中记载了,或者采用更好的方式:使用命名常量或变量。

 5.2.3.4例程 例程的目的是否在注释中说明了。

 注释能够找得到例程相关的其他方面的信息,包括:输入输出参数、调用条件假设、限制、错误数据纠正、算法来源等。

 5.2.3.5文件、模块和程序

 程序有没有全局性描述,介绍程序的总体结构和组织方式。

 每一个文件的用途是否都有记载。

 5.3.JAVA 编程规范 5.3.1命名规则 5.3.1.1Package 的命名 Package 的名字应该都是由一个小写单词组成。

 5.3.1.2Class 的命名 Class 的名字必须由大写字母开头而其他字母都小写的单词组成。

 5.3.1.3Class 变量的命名 变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。

 5.3.1.4Static Final 变量的命名 Static Final 变量的名字应该都大写,并且指出完整含义。

 5.3.1.5参数的命名 参数的名字必须和变量的命名规范一致。

 5.3.1.6数组的命名 数组应该总是用下面的方式来命名:

 byte[] buffer; 而不是:

 byte buffer[]; 5.3.1.7方法的参数 使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:

 SetCounter(int size){ this.size = size;

 } 5.3.2文件样式 所有的 Java 文件(*.java)都必须遵守如下的样式规则。

 5.3.2.1版权信息 版权信息必须在 java 文件的开头,比如:

 /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @author not attributable * @version 1.0 */ 其他不需要出现在 JavaDoc 的信息也可以包含在这里。

 5.3.2.2Package/Imports package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。

 package hotlava.net.stats; import java.io.*; import java.util.Observable; import hotlava.util.Application;

 这里 java.io.* 使用来代替 InputStream and OutputStream 的。

 5.3.3类 5.3.3.1类的注释 一般是用来解释类的。

 /** * A class representing a set of packet and byte counters * It is observable to allow it to be watched, but only * reports changes when the current set is complete*/

 5.3.3.2类定义 包含了在不同的行的 extends 和 implements。

 public class CounterSet extends Observable implements Cloneable 5.3.3.3Class Fields 类的成员变量。

 /** * Packet counters */ protected int[] packets; public 的成员变量必须生成文档(JavaDoc)。proceted、private...

推荐访问:管理规定 编写 代码

热门推荐
  • 中央八项规定内容全文

    中央八项规定内容全文中央八项规定内容全文关于改进工作作风、密切联系群众的八项规定一、要改进调查研究,到基层调研要深入了解真实情况,总结经验、研究问题、解决困难、指导工作,向群众学习、向实践学习,多同群

  • 中国共产党百年四大时

    吴庆军陈红梅张霞[摘要]党的百年庆祝大会上,习近平总书记总结了四个伟大成就,意味着中央已经将党的一百

  • 政治理论学习不够深入

    政治理论学习不够深入整改措施方案三篇政治理论学习不够深入整改措施方案1通过认真回顾自已近年来在工作、生活中的表现,切实感觉到与要求还有一定差距,有必要进行认真查摆自己存在的实际问题和不足,并剖析根源,

  • 全球安全倡议的核心要

    王玏刘军〔提  要〕全球安全倡议是破解人类安全难题、维护世界和平安宁的中国智慧和中国方案,其所包含的

  • 推进全面从严治党工作

    推进全面从严治党工作措施为全面贯彻党的十九大和十九届二中、三中、四中全会精神,深入学习贯彻习近平新时代中国特色社会主义思想和党中央治国理政新理念新思想新战略,认真落实省委X届X次全会和市委X届X次全会

  • 意识形态工作责任制实

    意识形态工作责任制实施细则第一章总则第一条为进一步加强和改进意识形态工作,落实党要管党意识形态原则,明确党组领导班子、领导干部的意识形态工作责任,结合实际,制定本细则。第二条意识形态工作是党的一项极端

  • 中华人民共和国建筑法

    中华人民共和国主席令第四十六号全国人民代表大会常务委员会关于修改《中华人民共和国建筑法》的决定已由中华人民共和国第十一届全国人民代表大会常务委员会第二十次会议于011年4月日通过,现予公布,自011年

  • 2023年度支部委员会会

    支部委员会会议记录1  会议时间:年月日参加人员:基础部全体党员  主持人:xxx记录人:xxx  会议内容:  党支部活动记录  时间:年月日出席人数:缺席人员:  主持人:老师)记录人:  活动