版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目开发及编码规范项目开发及编码规范项目开发及编码规范V:1.0精细整理,仅供参考项目开发及编码规范日期:20xx年X月 项目开发规范文档 修订历史记录日期版本说明作者2009-初稿1.简介目的1、用于规范指导开发组进行开发2、便于成员间的沟通与交流。3、有助于项目质量和稳定。4、为后期维护提供支持2.项目开发流程 项目开发过程归纳分为以下步骤:1.建立SVN项目版本控制。包括文档,源码,Lib包等。2.了解需求,并对需求文档的书写。(见文档结构规则附录)。3.详细设计文档。(见文档结构规则附录)。功能模块设计,重要模块的算法设计。数据库设计等。根据需求定义开发平台及环境。4.编码。搭建开发平台,配置开发环境。编码。单元测试案例。5.书写软件安装手册文件,数据库脚本文件,以及注意事项(releasenotes)。6.交互测试组测试。根据测试组测试结果是否回归第4步(测试回归最好不要超过2次)。7.测试通过,交付上线使用。维护手册使用手册
3.代码规范Java代码规范3.1.1Java类 类名可由:英文字母,数字,下划线组成。(数字,下划线不能够开头) 类名由一个或者多个单词组成。单词通常要求简洁明了达意。能够通过类名能够大致了解此类的作用和用途。类名要求首字母大写,多个单词组成类名时,单词的首字母要求大写。建议:类名不要过于简单或者太长。可以对单词采用简化的名称:入:Number简化为:num。3.1 类仅作为数据结构,没有行为,他封装了一组或者相似的一些行为方法。所以一个类尽量功能单一,或者功能类似共有行为的。一个类不要过于庞大。 通常情况下:一般逻辑类中应该有构造方法和main方法,main方法中应该有测试代码。每个类应该有toString()方法。3.1.2在多数Java源文件中,第一个非注释行是包语句。在它之后可以跟引入语句。报名的定义全部是小写字母。具体定义依据项目而定。引入包时候,同一类型的归纳到一块,用空行隔开。例如:import3.1.2 Java类开头应该有相应的注释:类版本描述,作者签名,日期时间,公司备注,类的功能作用相关描述等。(详细查看:注释)3.1.2.2a)类变量要求放在类的开始声明。一行声明一个。b)变量名称首字母要求小写。其他命名规则类似与类名。c)static,final类型的变量,字母要求全部大写。d)尽量在声明局部变量的同时初始化。e)避免局部变量和成员变量同名,覆盖了成员变量。f)尽量变量私有化,缩小变量的作用域。3.1.2 a)方法名命名规则类似于成员变量命名规则。 b)成员方法尽量私有化。 d)方法与方法之间空一行分割,提高可读性。 c)方法尽可能有注释:(详细查看:注释)e)方法尽可能尽早返回,结束。3.1.3Java3.1.3.a)4个空格(一个Tab建)常被作为缩进排版的一个单位。子模块应该和父模块保持一个缩进单位。b)尽量避免一行的长度超过80个字符.c)换行:当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:-在一个逗号后面断开
-在一个操作符前面断开
-宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
-新的一行应该与上一行同一级别表达式的开头处对齐
-如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。如:someMethod(longExpression1,longExpression2,longExpression3,longExpression4,longExpression5);var=someMethod1(longExpression1,someMethod2(longExpression2,longExpression3));3.1.3Java程序有两类注释:实现注释(implementationcomments)和文档注释(documentcomments)。实现注释是使用/*...*/和.*/界定。文档注释可以通过javadoc工具转换成HTML文件。实现注释用以描述实现的细节,流程,和难点的描述。良好的实现注释有助于自己和别人易于读懂代码。文档注释它可以被那些手头没有源码的开发人员了解接口功能等。频繁的注释有时反映出代码的低质量。当你觉得被迫要加注释的时候,考虑一下是否可以重新设计该模块的代码结构或者逻辑,使其更清晰,而避免使用注释提醒该模块的实现,这样往往都能够提高代码质量。 注释应被用来给出代码的总括,良好的代码里应该有大量的注释。当然也要避免代码已经提供清晰明了,显而易见注释。注释的格式:程序可以有4种实现注释的风格:块、单行、尾端和行末。分别由:/**notice*/块/*notice*/单行/*notice*/尾端2006-5-15.2006-5-15....//modifybyXXX2006-5-15end/**/***对系统规范化的异常处理。包含各种异常编码,标准出错提示与日志的产生和管理。**异常类型ID*1-49:系统内部异常-标准处理:写日志,向客户端抛出CustomException异常*50-99:用户界面异常-标准处理:写日志,向客户端抛出对应的自定义异常*100以上:扩展异常**注意:写日志时应使用getSysMsg()获得对应的异常日志记录串;向用户端抛出的*异常则在getUserMsg()中携带应在界面上显示的信息串**@since2001-12-18*@authorlijun*@version*@Copyright2009LinkCmCo.Ltd.Allrightreserved.*/**/过程和方法注释与JavaDoc中对应:功能描述:MethodComments参数说明:ParameterComments返回值说明:Returns最后更新作者:如有改动,自己添加/***初始化方法,在这里初始化所有用户公用的变量,*这里简单地将工作交给父类处理。/***初始化方法,在这里初始化所有用户公用的变量,*这里简单地将工作交给父类处理。*@paramconfigServletConfig对象,包含Servlet初始化的参数。*@throwsServletException初始化可能产生ServletException异常。*@return*/3.1. a)简单语句每行至多包含一条语句,例如:argv++;.}注意:空格不应该置于方法名与其左括号之间。这将有助于区分关键字和方法调用。
-空白应该位于参数列表中逗号的后面
-所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号("-")、自增("++")和自减("--")。例如:a+=c+d;a=(a+b)/(c*d);while(d++=s++){n++;}printSize("sizeis"+foo+"\n"); -for语句中的表达式应该被空格分开,例如:for(expr1;expr2;expr3) -强制转型后应该跟一个空格,例如:myMethod((byte)aNum,(Object)x);myMethod((int)(cp+5),((int)(i+3))+1); Jsp,JavaScript代码规范3.2.1 Jsp文件命名,首字母要求小写,名称可以用多个单词组成。每个单词组合时候首字母大写。 建议: 列表页面为: 表单展示页面为: 表单修改页面为: Jsp文件的内容编码格式和文件本身的编码格式要求统一。具体视项目要求。页面尽量使用同一种标签表达,比如只使用struts标签,或者JSTL标签。3.2. JavaScript脚本尽量建立独立的以”js”为后缀的独立文本文件。页面单独应用js文件即可。文件命名与jsp文件相同。文件本身的编码格式需要和整个项目文件编码一致。 一个js文件包含一个或者多个function函数。数据库对象定义规范3.3.1\o"编辑段落:表名命名规则"表名命名规则数据库表的命名以是名词的复数形式且都为大写,如ACCOUNT,INDICATOR_HISTORY等等如果表名由几个单词组成,则单词间用下划线("_")分割,如CURRENT_COUNTER等表名尽量用全名表名限制在30个字符内。当表的全名超过30字符时,可用缩写来减少表名的长度,如description-->desc;information-->info;address-->addr等(oracle限制表名超过30个字符)3.3.2\o"编辑段落:表字段名命名规则"表字段名命名规则字段名为小写字段名为有意义的单词,或单词的缩写如果字段由几个单词组成,则单词间用下划线("_")分割,如client_id,post_code等字段名限制在30个字符内。当字段名超过30字符时,可用缩写来减少字段名的长度,如description-->desc;information-->info;address-->addr等3.3.3索引命名规则索引须按照IDX_table_<column>_<column>,其中<table>是建立索引的表名,<column>是建立索引的字段名索引名限制在30个字符内。当索引名超过30字符时,可用缩写来减少索引名的长度,如description-->desc;information-->info;address-->addr等3.3.4主建、外键命名规则主键按照PK_<table>的规则命名,其中<table>为数据库表名唯一键按照UK_<table>_<column>的规则命名,其中<table>为数据块表名,<column>为字段名外键按照FK_<pppp>_<cccc>_<nn>的规则命名,其中<pppp>为父表名,<cccc>为子表名,<nn>为序列号Java命名规则命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码,例如,不论它是一个常量,包,还是类。标识符类型命名规则例子前提*尽量使用完整的英文描述符,采用适用于该领域的术语*采用大小写混合使名字可读*尽量少用缩写,但如也可以使用公共常用的缩略语,如:HTML,IO。*避免使用长的名字(小于15个字母是个好主意)*避免使用类似的名字,或者仅仅是大小写不同的名字、包(Packages)一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),机器(machine),或注册名(loginnames)。
类(Classes)命名规则:类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)classRaster;
classImageSprite;接口(Interfaces)命名规则:大小写规则与类名相似interfaceRasterDelegate;
interfaceStoring;方法(Methods)方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。run();
runFast();
getBackground();变量(Variables)除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。
变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。charc;
inti;
floatmyWidth;实例变量(InstanceVariables)大小写规则和变量名相似,除了前面需要一个下划线int_employeeId;
String_name;
Customer_customer;常量(Constants)类常量和ANSI常量的声明,应该全部大写,单词间用下划线隔开。(尽量避免ANSI常量,容易引起错误)staticfinalintMIN_WIDTH=4;
staticfinalintMAX_WIDTH=999;
staticfinalintGET_THE_CPU=1;4.开发平台及工具。平台项目定义具体开发平台和工具视不同的项目需求而定。同一项目组的开发平台要求尽量统一。对应J2EE开发平台定义如下列表:环境资源项目名称版本说明操作系统WindowsXPJDKIDEEclipse开源框架及工具应用服务器Tomcat版本控制SVN其他资源版本控制工具 在没有特殊要求外,要求使用TortoiseSVN工具。TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。4.1.1SVN使用方式:一:一是简单使用,即建立一个主干项目目录,各个开发成员同时使用这个主干目录进行直接修改与更新。二:二是建立项目主干,和各个开发成员的分支目录。 (1).各开发成员建立自己的分支,并在此分支上开发; (1).各开发成员把分支合并到主干上并形成较为稳定的版本; (1).各个成员重新从主干上建立新的分支,在此分支上开发(即回到第一步) (1).循环往复,直到工程结束。目前使用是的一种方式。4.1.1SVN文件提交规则:项目开发过程中,文件及代码提交规则:有变更代码及文档
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年儿童看护与家庭责任合同
- 2024年企业间关于知识产权许可使用的合同
- (2024版)国际物流仓储服务合同范本
- 2024年健身服务合同(含标的物描述)
- 2024年公共场所信息导视系统设计合同
- 2024年大数据分析与服务合同标的及数据分析具体描述
- 2024年墙面涂装工程承包合同
- 2024年业务代表委托合同
- 2024年女方保障型婚前合同范例
- 2024年企业股权转让与投资合同
- 污水处理站安全培训课件
- 博士研究生申请汇报模板
- 河北省邯郸市药品零售药店企业药房名单目录
- 二次预留预埋安装技术交底(强、弱电部分)
- 医院优质服务考核表
- 东北大学考试《结构力学ⅠX》考核作业参考324
- 结业证书文档模板可编辑
- 幼儿园、中小学、病愈复课证明
- 2023年5月-北京地区成人本科学士学位英语真题及答案
- 锐器伤应急处理PPT
- 危险化学品MSDS氨水(12%)
评论
0/150
提交评论