项目软件编写规范

来源:互联网 发布:如何获取ims药品数据库 编辑:程序博客网 时间:2024/04/29 12:39

6.1 变量使用
1、不允许随意定义全局变量。
2、一个变量只能有一个用途;变量的用途必须和变量的名称保持一致。
3、所有变量都必须在类和函数最前面定义,并分类排列。

6.2 数据库操作
1、查找数据库表或视图时,只能取出确实需要的那些字段。
2、使用无关联子查询,而不要使用关联子查询。
3、清楚明白地使用列名,而不能使用列的序号。
4ASP操作时只在必要时创建RecordSet对象

6.3 对象使用
尽可能晚地创建对象,并且尽可能早地释放它。

6.4 模块设计原则
1、不允许随意定义公用的函数和类。
2、函数功能单一,不允许一个函数实现两个及两个以上的功能。
3、不能在函数内部使用全局变量,如要使用全局变量,应转化为局部变量。
4、函数与函数之间只允许存在包含关系,而不允许存在交叉关系。即两者之间只存在单方向的调用与被调用,不存在双向的调用与被调用。

结构化要求
1、用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN
2、用 CASE 实现多路分支而不是多个IF
3、避免从循环引出多个出口。
4、函数只有一个出口。
5、不使用条件赋值语句。
6、避免不必要的分支。
7、不要轻易用条件分支去替换逻辑表达式

6.6 函数返回值原则
1、避免使用结构体等复杂类型
2、使用逻辑类型:该函数只需要获得成功或者失败的返回信息时候
3、使用int 类型:错误代码用负数表示,成功返回0

七、数据库命名规范:
1、表命名:用一个或三个以下英文单词组成,单词首字母大写,如:DepartmentUsers
2、表主键名称为:表名+ID,如Document表的主键名为:DocumentID
3、存储过程命名:表名+方法,如:p_my_NewsAdd,p_my_NewsUpdate;
4、视图命名:View_表名,如:ViewNews;
5Status为表中状态的列名,默认值为0,在表中删除操作将会改变Status的值而不真实删除该记录;
6Checkintime为记录添加时间列,默认值为系统时间;
7、表、存储过程、视图等对象的所有都为dbo,不要使用数据库用户名,这样会影响数据库用户的更改。

八、注释规范
8.1 概述
1、注释要求英文及英文的标点符号。
2、注释中,应标明对象的完整的名称及其用途,但应避免对代码过于详细的描述。
3、每行注释的最大长度为100个字符。
4、将注释与注释分隔符用一个空格分开。
5、不允许给注释加外框。
6、编码的同时书写注释。
7、重要变量必须有注释。
8、变量注释和变量在同一行,所有注释必须对齐,与变量分开至少四个空格键。例:
int   m_iLevel,m_iCount;      // m_iLevel ....tree level
                             // m_iCount ....count of tree items
string m_strSql;             //SQL
9、典型算法必须有注释。
10、在循环和逻辑分支地方的上行必须就近书写注释。
11、程序段或语句的注释在程序段或语句的上一行
12、在代码交付之前,必须删掉临时的或无关的注释。
13、最终发布时,可以依需要删除部分注释。

8.2 自建代码文件注释
对于自己创建的代码文件(如函数、脚本),在文件开头,一般编写如下注释(VBS则第行加')(可采用中文):

/******************************************************
FileName:文件名
Edits the Tool:编辑工具
Copyright   2006-2007 开发组名称
Writer:作者名
Create Date:按月日年格式书写,月份及日不足10前面补0,例:06/01/2006
Rewriter:修改者名
Rewrite Date:修改日期
Main ContentFunction Nameparametersreturns)主要内容及作用,只简单写,单独过程及函数前再加相应注释
******************************************************/

8.3 方法-过程|函数及相关注释
一般加如下注释(可采用中文)
/******************************************************
Depiction:本方法-过程|函数说明
Param:参数说明
Returns:返回值说明
Writer:编写者
Create Date:时间
******************************************************/


附:数据类型缩写
整数型 int
长整型 lng
字符型 str
布尔型 boo
单精度 sng
双精度 dub
字节型 bit
日期型 dat
货币型 cur
对象型 obj
自定型 udt
数组    arr
错误    err

别在程序中使用固定数值,用常量代替。
别用字符串常数。用资源文件。
避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。
必要时使用enum 。别用数字或字符串来指示离散值。


别把成员变量声明为 public 或 protected。都声明为 private 而使用 public/protected Properties.
不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。
永远别设想你的代码是在“C:”盘运行。你不会知道,一些用户在网络或“Z:”盘运行程序。
应用程序启动时作些自检并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。
如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。
如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。

错误消息需能帮助用户解决问题。永远别用象"应用程序出错", "发现一个错误等错误消息。而应给出象 "更新数据库失败。请确保登陆id和密码正确。的具体消息。  
显示错误消息时,除了说哪里错了,还应提示用户如何解决问题。不要用 象 "更新数据库失败。"这样的,要提示用户怎么做:"更新数据库失败。请确保登陆id和密码正确。"
显示给用户的消息要简短而友好。但要把所有可能的信息都记录下来,以助诊断问题。
注释
别每行代码,每个声明的变量都做注释。
在需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。
行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。
如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。
对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。
简言之,要写清晰,可读的代码以致无须什么注释就能理解。
对注释做拼写检查,保证语法和标点符号的正确使用。



原创粉丝点击