软件开发编码规范DOCWord文件下载.docx

上传人:b****0 文档编号:13477142 上传时间:2022-10-11 格式:DOCX 页数:17 大小:24.21KB
下载 相关 举报
软件开发编码规范DOCWord文件下载.docx_第1页
第1页 / 共17页
软件开发编码规范DOCWord文件下载.docx_第2页
第2页 / 共17页
软件开发编码规范DOCWord文件下载.docx_第3页
第3页 / 共17页
软件开发编码规范DOCWord文件下载.docx_第4页
第4页 / 共17页
软件开发编码规范DOCWord文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

软件开发编码规范DOCWord文件下载.docx

《软件开发编码规范DOCWord文件下载.docx》由会员分享,可在线阅读,更多相关《软件开发编码规范DOCWord文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

软件开发编码规范DOCWord文件下载.docx

代码中打算干什么,要简单,直接了当,代码精简,避免垃圾程序。

应尽量使用.NET库函数和公共函数(无特殊情况不要使用外部方法调用windows的核心动态链接库)。

一般情况下,不得使用全局变量,尽量使用局部变量。

2.2可读性要求

可读性第一,效率第二。

(这仅对代码本身而言)。

保持注释与代码完全一致。

每个源程序文件,都必须有文件头说明,说明规格见“源程序文档注释规范”一节。

每个函数,都必须有函数头说明,说明规格见“源程序文档注释规范”一节。

主要变量(结构、联合、类或对象)定义或引用时,注释必须能反映其物理含义。

处理过程的每个阶段都必须有相关注释说明。

在典型算法前都必须有注释,同时算法在满足要求的情况下应尽可能简单。

利用缩进来显示程序的逻辑结构,缩进量一致以Tab键为单位,定义Tab为4个

字节。

循环、分支层次不要超过五层。

注释可以与语句在同一行,也可以在上行。

空行和空白字符也是一种特殊注释。

一目了然的语句不加注释。

注释的作用范围可以为:

定义、引用、条件分支以及一段代码。

注释行数(不包括文件头和函数头说明部份)应占总行数的1/5到1/3。

常量定义(const)有相应说明。

2.3结构化要求

禁止出现两条等价的支路。

禁止GOTO语句。

用IF语句来强调只执行两组语句中的一组。

禁止ELSEGOTO和ELSERETURN。

用CASE实现多路分支。

避免从循环引出多个出口。

函数只有一个出口。

不使用复杂的条件赋值语句。

避免不必要的分支。

不要轻易用条件分支去替换逻辑表达式。

2.4正确性与容错性要求

程序首先是正确,其次是优美。

无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。

改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。

所有变量在调用前必须被初始化。

对所有的用户输入,必须进行合法性检查。

不要比较浮点数的相等,如:

10.0*0.1==1.0,不可靠。

程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等,对于明确的错误,要有明确的容错代码提示用户。

单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。

尽量使用规范的容错语句。

例如:

try

{

}

catch

finally

2.5可重用性要求

重复使用的完成相对独立功能的算法或代码应抽象为服务或类。

服务或类应考虑面向对象(OO)思想,减少外界联系,考虑独立性或封装性。

3用户界面设计原则

除标题部分外,所有显示给用户的字体(如BUTTON和LABEL等)使用标准字体:

体、九号、黑色;

标题部分可用醒目的字体,如:

宋体、小二号、红色。

采用Windows缺省的风格。

窗体尽量从已有的父窗体继承。

方便用户对信息的输入、修改和阅读。

验证用户输入的有效性和合理性。

具有清晰明确的用户提示信息。

使用Tab键在输入项之间移动输入焦点(可选)。

标准按钮大小必须相同,使用的图像和标题必须与《界面风格规范》一致,如果出现该规范中没有的地方,须与项目负责人和美工协商。

4源程序书写规范

4.1通用源代码格式规则

4.1.1缩进

缩进就是每级间有一个Tab单位。

不要在源代码中放置制表符。

这是因为,制表符的宽度随着不同的设置和代码管理实用程序(打印、文档及版本控制等)而不同。

沿逻辑结构行缩进代码。

没有缩进,代码将变得难以理解,如:

if(expression)

{

//

//此处填写你的代码块;

}

if(expression)

else

缩进代码会产生出更容易阅读的代码,如:

if(expression)

{

{

}

else

}

4.1.2边距

边距设置为80个字符。

源代码一般不会因写一个单词而超过边距,但本规则比较灵活。

只要可能,长度超过一行的语句应当用分行符换行。

换行后,应缩进两个字符。

4.1.3“{}”的使用

“{”或“}”必须单独占一行。

例如:

错误形式:

for(i:

=0;

i<

10;

i++){//错,“{”与for在同一行

}

正确形式:

i++)//对,“{”在另外一行中

4.1.4注释

通常使用“/*...*/”类型的块注释和“//”类型的行注释。

4.2语句格式与语句书写规范

4.2.1括号

在左括号与下一字符之间没有空格。

同样,右括号与前一字符也没有空格。

下面的例子演示了正确与不正确的空格。

CallProc(aParameter);

//错!

CallProc(aParameter);

//正确!

4.2.2保留字和关键字

在用户的各种命名中不能单独使用保留字或关键字来进行命名。

4.2.3函数

4.2.3.1格式

函数名要能体现出该函数要实现的功能,应当以大写字母开始,且大小写交错以增加可读性(每个单词的首字母大写)。

下面是一个不正确的写法:

pubilcvoidthisisapoorlyformattedroutinename()

下面是正确的写法:

pubilcvoidThisIsMuchMoreReadableRoutineName()

4.2.3.2形参

1)参数顺序

形参的顺序主要要考虑寄存器调用规则。

最常用的参数应当作为第一个参数,按使用频率依次从左到右排。

输入参数位于输出参数之前。

范围大的参数应当放在范围小的参数之前。

例如:

SomeProc(aPlanet,aContinent,aCountry,aState,aCity).

有些则例外。

例如,在事件处理过程中,Object类型的Sender参数往往是第一个要传递的参数。

2)常量参数

任何值类型参数,只要不加REF标志,都是常量参数;

任何引用类型参数,都不是常量参数,不管加不加标志。

4.2.4变量

4.2.4.1局部变量

局部变量用于过程内部,如果需要的话,应当在过程的入口处立即初始化变量。

4.2.4.2全局变量

一般不鼓励使用全局变量。

不过,有时候需要用到。

即使如此,也应当把全局变量限制在需要的环境中。

例如,一个全局变量可能只在单元的实现部分是全局的。

全局数据如果将由许多单元使用,就应移动到一个公用单元里被所有对象使用。

全局数据可在声明时直接初始化为一个值。

4.2.5语句

4.2.5.1If语句

在if/else语句中,if子句的条件应该直接且易于理解。

为了避免出现许多if语句,可以使用switch语句代替。

如果多于5级,不要使用if语句。

请改用更清楚的方法。

如果在if语句中有多个条件要测试,应按照计算的复杂程度从右向左排。

这样,可以使代码充分利用编译器的短路估算逻辑。

例如,如果Condition1比Condition2快,Condition2比Condition3快,则if语句一般应这样构造:

if(Condition1&

&

Condition2&

Condition3)

如果Condition3为False的机会很大,利用短路估算逻辑,我们也可以将Condition3放在最前面:

if(Condition3&

Condition1&

Condition2)

有if出现,就必须有对应的else出现。

if语句的三种形式:

1)形式一(不需要else)

if(Condition)

Process;

//else

//{

//NoElseNeeded

//}

2)形式二(需要else,但是else里面不需要处理)

else

//NoNeedProcess

3)形式三(if里面不需要处理)

//NoNeedProcess

Process;

4.2.5.2switch语句

1)概述

switch语句中每种情况的常量应当按数字或字母的顺序排列。

每种情况的动作语句应当简短且通常不超过4-5行代码。

如果动作太复杂,应将代码单独放在一个函数中。

switch语句的else子句只用于默认情况或错误检测。

2)格式

switch语句遵循一般的缩进和命名规则。

4.2.5.3while语句

所有对while循环进行初始化的代码应当位于while入口前,且不要被无关的语句隔开。

任何业务的辅助工作都应在循环后立即进行。

4.2.5.4for语句

如果循环次数是确定的,应当用for语句代替while语句。

5命名规范

5.1函数命名

函数名应当有意义。

进行一个动作的函数最好在名称前加上表示动作的动词为前缀。

publicvoidFormatHardDrive()

设置输入参数值的函数名应当以Set为其前缀,例如:

publicvoidSetUserName()

获取数值的函数名应当以Get为其前缀,例如:

publicstringGetUserName()

函数名称第一个字母必须使用大写字母,要求用大小写字母组合规范函数命名,必要时可用下划线间隔,示例如下:

publicvoidPrintTrackData()

publicvoidShowChar(intaIndex,charaszMyChar)

5.2形参

所有形参的名称都应当表达出它的用途。

如果合适的话,形参的名称最好以字母a为前缀,例如:

publicvoidSomeProc(stringaUserName,integeraUserAge)

当参数名与类的特性或字段同名时,前缀a就有必要了。

5.3常量和变量

5.3.1常量和宏定义

常量和宏定义必须具有一定的实际意义;

常量和宏定义必须全部以大写

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1