《项目开发管理相关规范.doc》由会员分享,可在线阅读,更多相关《项目开发管理相关规范.doc(12页珍藏版)》请在金锄头文库上搜索。
1、项目开发管理规范1前言为了使软件开发过程有章可循,保证软件质量,加强开发管理。2开发管理项目进度周报表格如下:项目:汇报人:汇报日期:项目进度详细描述:其他问题:需要的协助:建议或问题解决方案:3文档结构需求说明文档(word格式)详细设计文档(excel格式)网站设计稿及设计规范文档(设计稿psd或jpg、规范文档word格式)数据库结构文档(word格式)源代码注释文档(html格式)测试报告(excel格式)用户手册(安装及功能说明)(word格式)4命名规范4.1jsp/html命名规范jsp与html文件名全部小写,并遵循如下的规范:数据/内容显示页名词,多个单词用下划线分隔,要求能
2、说明显示内容的信息,为避免冲突,可加上“_list”。例如:new_message.html或my_file_list.jsp操作处理页命名格式:名词_下划线_动词,例如:file_delete.jsp。含frame页面中的name属性命名的格式是xxx_xxx_xxxxxx部分用来标识当前页面隶属于整个系统中的哪一功能模块。如:属于ebwebmail则被表示为ebwebmail,其它情况依次类推。xxx部分标识当前页面所要完成的功能。如:完成用户登录的功能则被标识为login,其它情况依次类推。xxx部分用来用来表示页面在浏览器窗口所处的位置。处于浏览器窗口的顶部则标识为top,其它情况依次
3、类推。例如:ebwebmail_inbox_top.jspsrc属性相应的文件名根据情况建议在原命名规范上用下划线加上所处窗口的位置。javascript脚本方法脚本函数都以xxx_xxx的方式命名。xxx对应页面隶属的模块。xxx表示函数所要实现的功能(动宾结构),多个单词用下划线连接。例如:ebwebmail_send_mail()模块通用的脚本函数必须集合于一个js文件中,在页面上通过形式导入。js文件名命名使用模块名,例如:ebwebmail.js。如果项目已经提供了公共js脚本,则优先使用公共js脚本中提供的函数。所有定义方法的元素定义在中或后。javascript脚本内部变量与参数
4、单词之间用下划线分隔且全部小写,例如:varfile_size。表单name属性统一以“form_”开头,其后加该表单所需收集的信息的作用或动作,例如:form_file_upload或form_send_mail。表单elements表单element的名称以element需收集的信息标示命名,单词之间使用下划线分隔且全部小写,例如:cookie命名命名格式:模块名_存储信息名词(多个单词用下划线分隔),全部大写,例如:EBWEBMAIL_SORT_TYPE。window.open中name参数的命名javascript的window.open方法中有一个name的参数,浏览器约定同样的名字
5、的窗口只能打开一个,如果程序间名字重复将相互冲突。如果不限制打开窗口数,可以指定或“”(不是null),否则需要加上模块名,例如ebwebmail_viewmail。4.2数据库命名规范数据库表命名均遵循以下规范:模块名_存储信息名词(多个单词用下划线分隔),全部小写,例如:ebwebmail_message。数据库字段命名遵循以下规范:存储信息名词(多个单词用下划线分隔),全部小写,例如:message_id。5文档规范1.编写文档目前主要使用的工具是Word(项目计划文档例外,需要使用Project制作),辅助使用的工具有Visio,PowerPoint,ERWin等。2.文档务必保持段落
6、格式整齐,文字字体,颜色,大小统一。3.如果需要摘引html页面中的内容,不能直接从html中粘贴过来(会在word文档中留下html格式),而必须先去除格式,例如:先粘贴到notepad中。4.务必注意中英文标点符号,文档正文一概使用中文标点符号。5.如果需要在文档中插图,不要使用word自带的绘图工具。可以选择使用PowerPoint或visio。使用PowerPoint,选择“插入”-“对象”-“MicrosoftPowerPoint幻灯片”。使用visio,需要另外建立visio文档,绘制完以后粘贴到word中。6.数据建模使用ERwin工具,文档中仅需要粘贴数据模型的逻辑视图(log
7、icalview),另外还要附上表结构描述。7.修改他人文档务必使用修订模式,以便保留备修改的内容。使用修订模式,选择“工具”-“修订”-“突出显示修订”,勾上“编辑时标记修订”。附:一些模版Java类设计(classdocumentation)声明:描述:属性:1.property_name声明说明方法:1.method_name声明说明参数返回值异常注:方法声明中,如果遇到重载的方法,可以使用“|”表示可以接受不同类型的参数,例如:“Stringvalue|intvalue”;可以使用“”表示可选的参数,例如:“Objectmessage,Throwablet”Servlet设计(serv
8、letdocument)类名接受参数列表描述数据表设计(datamodeling)表名:some_table说明:description表结构:字段名类型说明6代码规范6.1Java源代码规范6.1.1命名uPackage的命名Package的名字应该都是由一个小写单词组成,例如:net.ebseries.modules。此外,对于包名我们做如下约定:1.工具函数类包名前缀为.util2.Servlet类包名前缀为.servlet3.testcase类包名前缀为.testClass的命名Class的名字必须由大写字母开头而其他字母都小写的单词组成,例如:DataFile或InfoParser。
9、Class变量的命名变量的名字必须用一个小写字母开头。后面的单词用大写字母开头,例如:debug或inputFileSize。StaticFinal变量的命名StaticFinal变量的名字应该都大写,并且指出完整含义,例如:MAX_UPLOAD_FILE_SIZE=1024。参数的命名参数的名字必须和变量的命名规范一致。数组的命名数组应该总是用下面的方式来命名:bytebuffer;而不是:bytebuffer;方法的参数使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:SetCounter(intsize)this.size=size;6.1.2代码格式文件头声明源文件的头
10、部需要一个history段,对于每次对源文件的重大改动,都需要在history段中注明。该段定义在package和import之间,例如:*HISTORY*2010/05/18zyl创建文件*2010/05/19eric增加新功能*/import顺序import包按一下顺序:1.jdk标准包2.java扩展包(例如servlet,javamail,jce等)3.使用的外部库的包(例如xmlparser)4.使用的项目的公共包5.使用的模块的其他包每一类import后面加一个换行。例如:import java.io.*;import java.util.*;import avax.servlet
11、.*;import javax.mail.*;import org.apache.xml.*;import net.ebseries.*;import net.ebseries.util.*;import net.ebseries.ebwebmail.*;代码块书写格式可以选择以下任意一种代码块的书写方式:if(true)/bodyif(true)/body建议使用第二种书写方式。如果是修改他人的代码,必须使用代码原来的书写方式。对于代码块过长,超过1屏以上,后面要说明属于那个代码块,例如:if(i100)/toomanylinesmorethanonescreen/if(i100)关于缩进缩
12、进使用4个连续空格,不要在源文件中保存tab字符,请注意调整所用的IDE工具,打开将tab转换为空格功能。页宽页宽应该设置为80字符.源代码一般不会超过这个宽度,并导致无法完整显示,但这一设置也可以灵活调整.在任何情况下,超长的语句应该在一个逗号或者一个操作符后折行.一条语句折行后,应该比原来的语句再缩进4个空格。操作符操作符左右各用一个空格分隔。例如:inta=b;if(a0);SQL语句代码中书写的sql语句要求sql关键字全部大写,表名和字段名小写。例如:SELECTuser_id,nameFROMaccountWHEREuser_id?ANDdepart=?ORDERBYname类和方
13、法定义类定义或方法定义过长需要换行书写,例如:publicclassCounterSetextendsObservableimplementsCloneableprivatePortletSetgetPortlets(Portletsportlets,RunDatarundata,booleanapplication,booleanapplicationsOnly)6.1.3注释public和protected的成员变量和方法必须写javadoc注释。超过1句以上的注释使用中文书写。对于代码多于10行的private方法也要写javadoc注释。对于代码中的逻辑分支或循环条件需要书写注释,例如:if(somecondition)/符合某个条件,应该这样处理else/否则应该那样处理6.1.4其他关于属性类中的属性不能定义为public变量直接存取,而是定义成protect变量并编写get/set方法,例如:protectStringmyName;publicStringgetMyName()returnmyName;publicvoid