软件开发编码规范

上传人:hs****ma 文档编号:498186590 上传时间:2022-10-23 格式:DOC 页数:22 大小:98.54KB
返回 下载 相关 举报
软件开发编码规范_第1页
第1页 / 共22页
软件开发编码规范_第2页
第2页 / 共22页
软件开发编码规范_第3页
第3页 / 共22页
软件开发编码规范_第4页
第4页 / 共22页
软件开发编码规范_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《软件开发编码规范》由会员分享,可在线阅读,更多相关《软件开发编码规范(22页珍藏版)》请在金锄头文库上搜索。

1、软件开发编码规范(C#)目 录1引言41.1编写目的41.2背景41.3定义41.4参考资料42基本规定42.1程序结构规定42.2可读性规定42.3结构化规定52.4对的性与容错性规定52.5可重用性规定63用户界面设计原则64源程序书写规范64.1通用源代码格式规则64.1.1缩进64.1.2边距74.1.3“”的使用74.1.4注释74.2语句格式与语句书写规范74.2.1括号84.2.2保存字和关键字84.2.3函数84.2.4变量84.2.5语句85命名规范105.1函数命名105.2形参105.3常量和变量105.3.1常量和宏定义105.3.2变量105.4函数使用说明、接口命名

2、、NameSpace命名115.5控件的命名125.6类型125.6.1一般类型125.6.2构造类型135.6.3类类型135.7文献和文献夹135.7.1文献夹的命名规则135.7.2文献命名146源程序文档注释规范146.1注释文档的一般规范141 引言1.1 编写目的本规范旨在用规范文献的形式,对全公司使用C#进行的编程过程,进行有效的规范管理,使得最终的软件产品具有良好的风格和统一的结构,且使代码可读性强、易维护。 本规范预期读者是全公司所有参与编程的软件开发人员以及其他相关人员。本标准合用于Visual C# ,其余语言作参考。1.2 背景公司在上一个项目中由于代码编写风格不统一,

3、可读性较差、较难维护,使得工作效率有所减少。1.3 定义 无1.4 参考资料Pascal Standards FAQ (E)JavaDoc (E)Doc-O-matic Document (E)Artemis Alliance Delphi Coding Standards (E)C#基本书写规范C#编码规范纲要2 基本规定2.1 程序结构规定程序结构清楚,简朴易懂,单个函数的程序行数一般不得超过100行,个别特殊函数除外。代码中打算干什么,要简朴,直接了当,代码精简,避免垃圾程序。应尽量使用.NET库函数和公共函数(无特殊情况不要使用外部方法调用windows的核心动态链接库)。一般情况下,

4、不得使用全局变量,尽量使用局部变量。2.2 可读性规定可读性第一,效率第二。(这仅对代码自身而言)。保持注释与代码完全一致。每个源程序文献,都必须有文献头说明,说明规格见“源程序文档注释规范”一节。每个函数,都必须有函数头说明,说明规格见“源程序文档注释规范”一节。重要变量(结构、联合、类或对象)定义或引用时,注释必须能反映其物理含义。解决过程的每个阶段都必须有相关注释说明。在典型算法前都必须有注释, 同时算法在满足规定的情况下应尽也许简朴。运用缩进来显示程序的逻辑结构,缩进量一致以Tab键为单位,定义Tab为 4个字节。循环、分支层次不要超过五层。注释可以与语句在同一行,也可以在上行。空行和

5、空白字符也是一种特殊注释。一目了然的语句不加注释。注释的作用范围可认为:定义、引用、条件分支以及一段代码。注释行数(不涉及文献头和函数头说明部份)应占总行数的 1/5 到 1/3。常量定义(const)有相应说明。2.3 结构化规定严禁出现两条等价的支路。严禁GOTO语句。用 IF 语句来强调只执行两组语句中的一组。严禁 ELSE GOTO 和 ELSE RETURN。用 CASE 实现多路分支。避免从循环引出多个出口。函数只有一个出口。不使用复杂的条件赋值语句。避免不必要的分支。不要容易用条件分支去替换逻辑表达式。2.4 对的性与容错性规定程序一方面是对的,另一方面是优美。无法证明你的程序没

6、有错误,因此在编写完一段程序后,应先回头检查。改一个错误时也许产生新的错误,因此在修改前一方面考虑对其它程序的影响。所有变量在调用前必须被初始化。对所有的用户输入,必须进行合法性检查。不要比较浮点数的相等,如: 10.0 * 0.1 = 1.0 , 不可靠。程序与环境或状态发生关系时,必须积极去解决发生的意外事件,如文献能否逻辑锁定、打印机是否联机等,对于明确的错误,要有明确的容错代码提醒用户。单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。尽量使用规范的容错语句。 例如:trycatchfinally2.5 可重用性规定反复使用的完毕相对独立功能的算法或代码应抽象为服务或类。服

7、务或类应考虑面向对象(OO)思想,减少外界联系,考虑独立性或封装性。3 用户界面设计原则除标题部分外,所有显示给用户的字体(如BUTTON和LABEL等)使用标准字体:宋体、九号、黑色;标题部分可用醒目的字体,如:宋体、小二号、红色。采用Windows缺省的风格。窗体尽量从已有的父窗体继承。方便用户对信息的输入、修改和阅读。验证用户输入的有效性和合理性。具有清楚明确的用户提醒信息。使用Tab键在输入项之间移动输入焦点(可选)。标准按钮大小必须相同,使用的图像和标题必须与界面风格规范一致,假如出现该规范中没有的地方,须与项目负责人和美工协商。4 源程序书写规范4.1 通用源代码格式规则4.1.1

8、 缩进缩进就是每级间有一个Tab单位。不要在源代码中放置制表符。这是由于,制表符的宽度随着不同的设立和代码管理实用程序(打印、文档及版本控制等)而不同。沿逻辑结构行缩进代码。没有缩进,代码将变得难以理解,如: if(expression ) /此处填写你的代码块;/ if(expression ) /此处填写你的代码块;/ else /此处填写你的代码块;/缩进代码会产生出更容易阅读的代码,如: if(expression ) if(expression )/此处填写你的代码块;/else/此处填写你的代码块;/4.1.2 边距边距设立为80个字符。源代码一般不会因写一个单词而超过边距,但本规

9、则比较灵活。只要也许,长度超过一行的语句应当用分行符换行。换行后,应缩进两个字符。 4.1.3 “”的使用“”或“”必须单独占一行。例如: 错误形式:for(i:=0;i10;i+) / 错, “” 与f o r 在同一行 对的形式:for(i:=0;i10;i+) / 对, “”在此外一行中4.1.4 注释通常使用“/*.*/”类型的块注释和“/”类型的行注释。4.2 语句格式与语句书写规范4.2.1 括号在左括号与下一字符之间没有空格。同样,右括号与前一字符也没有空格。下面的例子演示了对的与不对的的空格。CallProc( aParameter ); / 错!CallProc(aParam

10、eter); / 对的!4.2.2 保存字和关键字在用户的各种命名中不能单独使用保存字或关键字来进行命名。4.2.3 函数4.2.3.1 格式函数名要能体现出该函数要实现的功能,应当以大写字母开始,且大小写交错以增长可读性(每个单词的首字母大写)。下面是一个不对的的写法:pubilc void thisisapoorlyformattedroutinename()下面是对的的写法:pubilc void ThisIsMuchMoreReadableRoutineName()4.2.3.2 形参1)参数顺序 形参的顺序重要要考虑寄存器调用规则。最常用的参数应当作为第一个参数,按使用频率依次从左到

11、右排。输入参数位于输出参数之前。范围大的参数应当放在范围小的参数之前。例如:SomeProc(aPlanet, aContinent, aCountry, aState, aCity). 有些则例外。例如,在事件解决过程中,Object 类型的Sender 参数往往是第一个要传递的参数。2)常量参数 任何值类型参数,只要不加REF标志,都是常量参数;任何引用类型参数,都不是常量参数,不管加不加标志。4.2.4 变量4.2.4.1 局部变量 局部变量用于过程内部,假如需要的话,应当在过程的入口处立即初始化变量。4.2.4.2 全局变量 一般不鼓励使用全局变量。但是,有时候需要用到。即使如此,也应

12、当把全局变量限制在需要的环境中。例如,一个全局变量也许只在单元的实现部分是全局的。 全局数据假如将由许多单元使用,就应移动到一个公用单元里被所有对象使用。全局数据可在声明时直接初始化为一个值。4.2.5 语句4.2.5.1 If 语句 在if/else语句中, if子句的条件应当直接且易于理解。为了避免出现许多if语句,可以使用switch语句代替。假如多于5级,不要使用if语句。请改用更清楚的方法。 假如在if语句中有多个条件要测试,应按照计算的复杂限度从右向左排。这样,可以使代码充足运用编译器的短路估算逻辑。例如,假如Condition1比Condition2快,Condition2比Co

13、ndition3快,则if语句一般应这样构造:if (Condition1 & Condition2 & Condition3) 假如Condition3为False的机会很大,运用短路估算逻辑,我们也可以将Condition3放在最前面:if (Condition3 & Condition1 & Condition2) 有if出现,就必须有相应的else出现。if语句的三种形式:1) 形式一(不需要else) if (Condition) Process;/else/ No Else Needed/2) 形式二(需要else,但是else里面不需要解决) if (Condition) Process;else/No Need Process3) 形式三(if里面不需要解决) if (Condition)/ No Need ProcesselseProcess;4.2.5.2 switch 语句1)概述 switch语句中每种情况的常量应当按数字或字母的顺序排列。每种情况的动作语句应当简短且通

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号