源码源代码编写及审查_第1页
源码源代码编写及审查_第2页
源码源代码编写及审查_第3页
源码源代码编写及审查_第4页
源码源代码编写及审查_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、:BJZR-TE-DMSCGF-V1.0中心科研产品部源代码编写及规范编制:中软信息系统工程编制人:日期:2013.03.16审核:日期:2013.03.18日期:2013.03.21批准:文件更改序号版本日期所修改章节所修改页备注目录协同开发工作规范说明1签入签出1编码规范1源代码编写规范122.12.2说明1命名规范..42.2.5变量常量名规范2名规范2函数及过程名名规范2函数及过程参量命名规范2单元、类、结构、对象命名规范22.3注释说明...62.3.7文件头注释3注释4函

2、数或过程的注释4参量注释4变量注释4选择结构的注释4示例书写规范6格式规范6其他6数据库编程规范633.13.2说明6命名规范6数据库对象命名规范6参量命名规范6注释说明.33.3.4头注释7参量注释7选择结构的注释7示例(T-SQL)73.4书写规范8格式规范8其他8样式表命名规范8样式表文件命名8样式命名95源代码规范911.1协同开发工作规范说明项目开发不是一个人的事情,需要大家通力协作才能完成。集成开发环境本身给提供了协同开发解决方案,但仍需要严格遵循一些规范,包括:签入签出、编码规范等,以提高团队整体开发效率,保证快速高质量的完成

3、项目开发任务。1.2 签入签出多数开发环境集成了版本控制、源代码管理功能,支持项目的协同开发,还可以借助 TFS、VSS、CVS 等进行源代码管理;开发使用各自的账号签出相应资源进行协同开发。为使各开发的工作互不,提高开发效率,保证开发质量,资源的签入和签出需遵循一定的规范: 只签出自己必须的资源资源被一个人签出后,将无法被其他人签出使用,因此开发应只签出自己必须的资源,避免占用某些自己用不到的资源,而使别人的工作无法展开。 公共资源用完后及时签入公共资源是大家公用的,随时都可能有人需要签出来使用,为了不影响他人的工作,如果自己已不再需要用这些资源时请立即签入。 不签入编译未通过的资源不要签入

4、编译未通过的资源,避免使他人无法正常调用该资源的其它方法。 下班时签入所有资源为了便于管理者检查工作进度,另外可能第二天这些任务会有别的成员来做,请在下班时签入所有自己签出的资源;对于未完成的资源,请注释掉编译未通过的代码,将资源编译后再签入。 签入资源填写签入说明和关联工作任务签入资源时,应填写签入说明并关联对应工作任务,以便和管理工作。1.3 编码规范大家在共同开发一个项目,其中一个类或单元,甚至一个方法的编写任务很可能会由若干个人来完成,且项目的后期工作通常是另外一些;为保证程序代码的美观、可读性以及护性,在编写程序代码时必须遵循严格规范,包括:命名规范,注释说明,书写规范,格式规范等,

5、具体内容参见本文档“源代码编写规范”章节。源代码编写规范说明使用各类开发工具及代码编辑器编写程序代码时必须遵循严格的规范,包括:命名规范,注释说明,书写规范,格式规范等,以保证程序代码的美观以及性。护2.2 命名规范2.2.1变量名规范命名要有意义;命名时所用的英文单词要尽量完整,使用英文缩写也要保证意义明显易懂,每个英文单词的首字母要大写;如果使用的是取汉语拼音的首字母,则要全部大写;要加上 str、(或简写为 s、i)等类型标识;例如:strFileName(文件名),WJSL(文件数量)。2.2.2常量名规范命名要有意义; 命名时所用的英文单词要尽量完整,使用英文缩写也要保证意义明显易懂

6、,每个英文单词的首字母要大写;如果使用的是取汉语拼音的首字母,则要全部大写; 要加上 c 前缀标识其为常量; 例如:cFilePath(文件路径)。2.2.3函数及过程名名规范自定义的函数和过程须遵守此规范,IDE 自动生成的事件不再此例; 命名要有意义,应包含动作、状态、结果等信息; 应该符合变量名规范; 例如:GetFileName(获得文件名) Get 动作,FileName 结果;StrTo(字符串类型转化为整数类型) Str 当前状态,To 动作,结果状态。2.2.4函数及过程参量命名规范命名要有意义; 命名时所用的英文单词要尽量完整,使用英文缩写也要保证意义明显易懂,每个英文单词的

7、首字母要大写;如果使用的是取汉语拼音的首字母,则要全部大写; 多于一处出现的相同用处的常数定义成常量; 要加上 str,(或简写为 s,i)等类型标识; 例如:GetFileNum(string strPath)。2.2.5单元、类、结构、对象命名规范命名要有意义; 命名时所用的英文单词要尽量完整,使用英文缩写也要保证意义明显易懂,每个英文单词的首字母要大写;如果使用的是取汉语拼音的首字母,则要全部大写; 实例名要加上 obj 前缀; 例如:CommonUnit、MainForm、JTHSK(静态函数库);实例名objConnection 或 objConn(数据库连接对象实例)。2.2.6U

8、I 元素命名规范界面上各类控件应进行规范命名,特别代码中需要命名要有意义;、调用的控件;命名时所用的英文单词要尽量完整,使用英文缩写也要保证意义明显易懂,每个英文单词的首字母要大写;如果使用的是取汉语拼音的首字母,则要全部大写;加上类型前缀;例如:Button,btn_Close;PicturesBox,pb_Us等。hoto;TextBox,tb_UserName2.3 注释说明2.3.1文件头注释一个类或单元通常为一个文件,应在文件头即代码段之前添加文件头注释,说明该类或单元的主要功能以及主要函数过程。JSP、JS、JAV、VB、HTML/HTM、ASP/ASPX、CSS 等文件要求在文件

9、头添加注释,.NET 自定义类(CS 等)多个类或结构体为一个文件时在文件头添加注释,一个类只为一个文件时添加类注释即可;注释有两大部分组成,一部分是:完成的基本信息;另一部分是:修改的基本信息。完成的基本信息包括:功能:此类或单元的功能概明;实例化说明:说明如何实例化(初始化)该类或单元;主要函数和过程:列出其中主要的函数和过程;作者:主要创建者的;完成时间:完成的时间。修改的基本信息包括:修改者:修改者的;修改时间:修改的时间;修改说明:修改的内容及作用。注意:有多个修改者时,修改信息只能往下面添加,而不能在原来的修改信息上进行重新修改,每部分之间要空出一行;例如 DELPHI 或起步中:

10、*主要功能:静态函数库,提供一些公用的静态函数实 例 化 说 明:静态函数库无须初始化,直接调用函数主要函数和过程:GetFileName、GetFilePath等作完者:等成时间:2006-05-09 16:00*修改内容:修改函数 GetFileName修 改 者:修改时间:2006-05-10 16:00*例如 C#自定义类中:/ / 示例类/ / Exle objExle=new Exle(CO,无色);objExle.ShowColor();/ dhp/ 2010-03-24/ 添加ModifyColor函数_dhp_2012-04-16 2.3.2注释变量、函数等的处也应添加注释,

11、说明该变量的意义,函数的功能和作用等。例如(起步、DELPHI):PublicstrConnection :string;/数据库连接串根据路径取得文件名Function GetFileName (strFilePath:string; ResultCode:例如(C#):Public string strConnection;/ 数据库连接串/获取文件名称/文件名称(含扩展名称) string GetFileName()eger):string2.3.3函数或过程的注释自定义的(不包括自动创建的事件)函数实体或过程实体之前应该添加函数或过程的注释,说明该函数或过程的功能和作用、参数说明、创建

12、信息(作者_完成时间)以及修改信息(修改内容_修改者_修改时间);示例 2.3.7。2.3.4参量注释说明参数的意义和作用,同函数或过程的注在一起。2.3.5变量注释变量分行书写,结尾添加“/”和注释说明;例如X;/整型变量。2.3.6选择结构的注释函数或过程有多个出口时,要对每个出口加注释说明。另外过程中若有选择结构,要在其后面加上该选择结构的作用,并为每个分支添加注释说明。2.3.7示例 起步、Delphi 示例:函数功能:根据路径取得文件名参数说明:strFilePath 文件路径, ResultCode 结果类型标示(0-不含扩展名 1-含扩展名)创建信息:_2006-05-10 10

13、:00修改信息:简化判断结构_2006-05-10 14:00Sic Function TcommonUnit.GetFileName (strFilePath:string Var strTemp:string;/临时字符串X: eger;/整型变量BeginResultCode:eger):stringIfResultCode=0 then/判断返回的文件名是否要包含扩展名 Begin/返回不包含扩展名的文件名 GetFileName:=结果;EndElseBegin/返回包含扩展名的文件名 GetFileName:=结果;End;End C#示例:/ / 根据路径取得文件名/ / 文件路

14、径/ param name=/ ResultCode结果类型标示(0-不含扩展名1-含扩展名)/ 2012-04-16/ 简化判断结构_/ 文件名_2012-04-17public string GetFileName(string strFilePath,string strTemp = filename;/临时字符串ResultCode)if (ResultCode = 0)/判断返回的文件名是否要包含扩展名/返回不包含扩展名的文件名 return strTemp;else/返回包含扩展名的文件名 return strTemp + .xml;2.4书写规范SQL 语句中的保留字全部要大写,

15、的函数名称要全部要大写;变量、常量、函数过程、类、实例等名称要按照命名规范中规定的书写。2.5格式规范层次分明,注意缩进,不同层次的缩进使用 TAB 键或两个空格健;运算符左右要有空格隔开;单行代码不易过长,应尽量分行书写;多个变量,分行书写并在之后添加注释说明。2.6其他代码要尽量简洁,不拉杂;代码文件要按功能模块规范存放,不同功能集存放到不同的目录中;多处使用的代码段应尽量抽取出来作为函数或过程;编写函数时应该功能非常具体专一,这样能保持函数之间有较强的独立性,若干个功能用几次函数调用去实现,这样程序看起来比较清晰且不容易出错;过程中创建了实例,应确保退出(包括每个出口)之前把实例占用的资

16、源掉。33.1数据库编程规范说明表、视图、触发器、过程、函数等数据库对象的创建和修改必须遵循严格规范,包括:命名规范,注释说明,书写规范,格式规范等,以保证过程代码的美观以及护性。3.2 命名规范3.2.1数据库对象命名规范应符合变量名规范;视图命名加“V_”前缀;表命名加“T_”前缀;表名及字段命名,无特殊要求时,项目使用汉语拼音首字母;表、视图命名格式按模块(系统)名、功能(栏目)名分段书写,例如:T_XTGL_YHGL_YHJBXX 或 T_SysManage_UserManage_UserInfo;过程、函数命名格式按模块(系统)名、功能(栏目)名、操作名分段书写,例如:SysMana

17、ge_UserManage_AddUserInfo。3.2.2参量命名规范命名要有意义;命名时所用的英文单词要尽量完整,使用英文缩写也要保证意义明显易懂,每个英文单词的首字母要大写;如果使用的是取汉语拼音的首字母,则要全部大写。3.3 注释说明3.3.1头注释头注释是创建和修改过程、函数、触发器、视图的注释说明,注释紧跟着其名称后面,另起一行,由/*和*/标识。注释有两大部分组成,一部分是:完成的基本信息;另一部分是:修改的基本信息。完成的基本信息包括:功能:说明此过程(函数)的作用; 作者:主要创建者的完成时间:完成的时间。修改的基本信息包括:;修改者:修改者的;修改时间:修改的时间;修改说

18、明:修改的内容及作用。注意:有多个修改者时,修改信息只能往下面添加,而不能在原来的修改信息上进行重新修改。3.3.2参量注释要在每个参量的后面加上该参量表示的意义,适用性,由“-”起头,加上注释说明。3.3.3选择结构的注释当过程或函数有多个出口时,要对每个出口加注释说明。另外,过程中若有选择结构,要在其后面加上该选择结构的作用,加注释的方法同 3.3.2。3.3.4示例(T-SQL)CREATE PROCEDURE dbo.DesignModule_Publish_SavePublishMemo- =- Author:- Create date:- Description:- Modify:

19、- =-清册ID-清册版本-说明信息-操作iCableList sRevi sPublishMemo sUserName, VARCHAR(3), VARCHAR(4000), VARCHAR(50)ASBEGINDECLARE sTemp VARCHAR(20) -字符串临时变量-整型临时变量DECLARE iTypeCodeSELECTiTypeCode=TypeCode,sTemp=SUBSTRING(Title,1,10)+.FROM v_publishInfoWHERE OrderNum=iCableListIF iTypeCode is null-判断是否存在清册ID为iCable

20、List的TypeCode BEGIN-不存在时的处理逻辑 GOTO ErrEND ELSEBEGIN-不存在时的处理逻辑IF ERROR0 BEGIN-异常处理逻辑 GOTO ErrENDEND RETURN 1Err: RETURN 0END GO3.4 书写规范 SQL 语句中的保留字全部要大写;的函数名称要全部要大写。3.5 格式规范 层次分明,注意缩进,不同层次的缩进一律使用 TAB 键;运算符左右要有空格隔开;SQL 语句中的多个检索字段和多表检索,以及多个检索条件都要分行书写;多个参量,分行书写。3.6其他过程(函数)结束用 RETURN;书写结束加 GO;不允许出现无谓的空行;

21、不允许把整个 SQL 语句作为参数传入;所有变量必须添加类型前缀;所有英文单词的第一个字母都要大些;多于一处出现的相同用处的常数定义成常量。44.1样式表命名规范样式表文件命名样式表文件名应与栏目名相符合,如:news.css,page.css,main_style.css。4.2样式命名本样式命名适用于非 HTML样式名,即用户自己定义的样式。样式命名按照以下原则:样式名使用小写字母,使用汉字;样式名使用。_YYY 进行命名。其中,一般用来指明此样式所使用的地点,而 YYY 一般用以指名此样式的特点,如:.bg_blue蓝色背景;.nav 使用于导航;.copyright 使用于;.news

22、_copyright 使用于新闻的样式;样式名应使用标准,在此有以下约定:5源代码展开源代码规范工作的目的包括三个方面,一是规范开发,提高源代码的护性;二是弥补黑盒测试的,帮助检查黑盒测试无法发现的程序逻辑缺陷;三是知识、促进交流,使开发相互学习、共同提高。源代码工作的组织方式和周期另行制定,且适时调整。本章以单形式列出代码要点及准则,单如下:地点名应使用的约定buttonbtbackgroundbgnavigationnavtexttexttabletb源代码单检 查 人检查日期检查单号项目名称项目开发经理内容结果好 中 差序号要点及准则执行情况备注免查不符合数1.书写及格式规范1.1程序块

23、缩进、大小写等符合代码书写规范。【】【】1.2过程、函数、触发器缩进、大小写等符合书写规范。【】【】1.3相对独立的程序块之间、变量说明之后应加空行。【】【】1.4较长的语句(80 字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。【】【】1.5循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。【】【】1.6若函数或过程中的参数较长,则要进行适当的划分。【】【】1.7不允许把多个短语句写在一行中,即一行只写一条语句。【】【】1.8if、whil

24、e、for、defauo 等语句自占一行。【】【】1.9函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case 语句下的情况处理语句也要遵从语句缩进要求。【】【】1.10程序块的分界符(如 C/C+语言的大括号和)应各独占一行并且位于同一列,同时与它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及 if、 for、do、while0、switch、case 语句中的程序都要采用如上的缩进方式。【】【】1.11在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如),后不应加空格。【】【】2.注释规范2.1按规范书写文件头注释。【】【】2.2按规范对进行注释。【】【】2.3按规范对函数或过程进行注释。【】【】2.4按规范对参、变量进行注释。【】【】2.5按规范对程序块(选择结构等)进行注释。【】【】2.6注释说明应准确、全面、无歧义、易于理解。【】【】2.7数据库对象按规范注释说明。【】【】2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论