《最新java项目团队开发规范.doc》由会员分享,可在线阅读,更多相关《最新java项目团队开发规范.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datejava项目团队开发规范java项目团队开发规范项目团队开发规范文件状态: 草稿 正式发布 正在修改文件标识:当前版本:作 者:完成日期:修订历史记录日期版本说明作者目 录1引言41.1编写目的41.2预期读者41.3编写背景42概述52.1目标52.2修改及完善53详细规范53.1使用的工具53.2框架设计53.3包目录63.4编码规范73.4.1目的73.4.2依
2、据73.4.3具体规范83.4.3.1编码风格83.4.3.1.1缩进83.4.3.1.2空格83.4.3.1.3对齐93.4.3.1.4空行93.4.3.1.5代码长度103.4.3.1.6行数103.4.3.1.7注释103.4.3.2代码效率133.4.3.2.1综述133.4.3.2.2具体实现133.4.3.3异常处理133.4.3.3.1处理CHECK 异常与UNCHECK异常133.4.3.4程序调试133.4.4日常交流143.4.4.1互相促进141 引言1.1 编写目的本文档作为项目团队开发规范的说明书,描述了项目开发过程中的使用的工具,框架,代码编写规范及注意问题,作为项
3、目团队建设,开发及测试工作的依据。1.2 预期读者本文档的预期读者包括以下几类:n 项目组长n 项目组全体成员1.3 编写背景根据公司现有的开发状况,决定组件稳定的项目开发团队,制定全体团队成员共识的开发规范,有助于提高项目开发的效率、项目团队整体水平的提升。2 概述2.1 目标建设一个团结、规范、进取的团队,规范项目的开发工作,提高项目组成员团队合作意识,更好的提高团队及个人的能力。2.2 修改及完善本规范仅是初步设计,会在具体的项目开发过程中不断的修改及完善。3 详细规范3.1 使用的工具JDK: IDE: Version Control:SubVersion1.5 VSSBug Mana
4、ger:JSP Container:3.2 框架设计J2EE: ORM: MVC: AJAX: JAVASRIPT:3.3 包目录 说明:Src:实现类源文件夹 common 存放实际业务系统中有共性的处理类 Constant 存放业务系统的常量接口 Dao 存放具体实体的数据库访问对象类 Exception 存放异常处理类 Model 存放实体(普通Java Bean,Hibernate映射实体) Service 存放业务处理类(调用Dao,及util里面的方法) Web MVC前端框架处理类 Servlet :普通servlet类 Framework.struts2.action : st
5、ruts2.0框架控制类Test:单元测试类源文件夹 Dao 测试业务实现类DAO层 Service 测试业务实现类service层 Util 测试业务实现工具类命名规则: 原则: 尽量使用英文单词来作为类的命名,勿以汉语拼音词的首字母来命名,如不能以英文命名,则须以汉语拼音的全拼来命名。 Dao:1. 以访问的表为命名依据,如果是对单个的表或实体操作,则以单个表的表名去除下划线首字母大写或实体名称,加“DAO”做DAO类的名称,如果是多个表关联或多个实体关联则以主表表名去除下划线或主实体名称,加”DAO”作为类名。Service: 以相应的业务名称加“Service”来作为类名。Action
6、: 以相应业务系统中页面操作名称加”Action”来命名。3.4 编码规范3.4.1 目的制定统一的编码规范,使项目组成员养成良好的编程习惯,提高代码的效率及可读性,使代码达到很好的整合控制。3.4.2 依据Sun公司基本的JAVA规范,及具体实践中的经验。3.4.3 具体规范3.4.3.1 编码风格3.4.3.1.1 缩进1. 建议以4个空格为单位。建议在MyEclipse下设置2. 预处理语句、全局数据、标题、附加说明、函数说明、标号等均顶格书写3. 语句块的、配对对齐,并与其前一行对齐,语句块类的语句缩进建议每个、单独占一行,便于匹对。3.4.3.1.2 空格原则上变量、类、常量数据和函
7、数在其类型,修饰名称之间适当空格并据情况对齐。关键字原则上空一格,如:if ( . 等。运算符的空格规定如下::、-、+、-、!、+、-(指正负号)、&(引用)等几个运算符两边不加空格(其中单目运算符系指与操作数相连的一边),其它运算符(包括大多数二目运算符和三目运算符?:两边均加一空格,在作函数定义时还可据情况多空或不空格来对齐,但在函数实现时可以不用。,运算符只在其后空一格,需对齐时也可不空或多空格。不论是否有括号,对语句行后加的注释应用适当空格与语句隔开并尽可能对齐。个人认为此项可以依照个人习惯决定遵循与否。3.4.3.1.3 对齐原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数
8、等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在,处或运算符处,换行后最好以运算符打头,并且以下各行均以该语句首行缩进,但该语句仍以首行的缩进为准,即如其下一行为“”应与首行对齐。 变量定义最好通过添加空格形成对齐,同一类型的变量最好放在一起。如下例所示:int Value;int Result;int Length;DWORD Size;DWORD BufSize;个人认为此项可以依照个人习惯决定遵循与否。3.4.3.1.4 空行不得存在无规则的空行,比如说连续十个空行。程序文件结构各部分之间空两行,若不必要也可只空一行,各函数实现之间一般空两行,由于每个函数还要
9、有函数说明注释,故通常只需空一行或不空,但对于没有函数说明的情况至少应再空一行。对自己写的函数,建议也加上“/-”做分隔。函数内部数据与代码之间应空至少一行,代码中适当处应以空行空开,建议在代码中出现变量声明时,在其前空一行。类中四个“p”之间至少空一行,在其中的数据与函数之间也应空行。3.4.3.1.5 代码长度 对于每一个函数建议尽可能控制其代码长度为53行左右,超过53行的代码要重新考虑将其拆分为两个或两个以上的函数。函数拆分规则应该一不破坏原有算法为基础,同时拆分出来的部分应该是可以重复利用的。对于在多个模块或者窗体中都要用到的重复性代码,完全可以将起独立成为一个具备公用性质的函数,放
10、置于一个公用模块中。3.4.3.1.6 行数 一般的集成编程环境下,每屏大概只能显示不超过50行的程序,所以这个函数大概要5-6屏显示,在某些环境下要8屏左右才能显示完。这样一来,无论是读程序还是修改程序,都会有困难。因此建议把完成比较独立功能的程序块抽出,单独成为一个函数。把完成相同或相近功能的程序块抽出,独立为一个子函数。可以发现,越是上层的函数越简单,就是调用几个子函数,越是底层的函数完成的越是具体的工作。这是好程序的一个标志。这样,我们就可以在较上层函数里容易控制整个程序的逻辑,而在底层的函数里专注于某方面的功能的实现了。3.4.3.1.7 注释1. JAVA代码注释1) 设置2) 综
11、述注释是软件可读性的具体体现。 程序注释量一般占程序编码量的20%,软件工程要求不少于20%。程序注释不能用抽象的语言,类似于处理、循环这样的计算机抽象语言,要精确表达出程序的处理说明。例如:计算净需求、计算第一道工序的加工工时等。避免每行程序都使用注释,可以在一段程序的前面加一段注释,具有明确的处理逻辑。注释必不可少,但也不应过多,不要被动的为写注释而写注释。以下是四种必要的注释:A 标题、附加说明。B 函数、类等的说明。对几乎每个函数都应有适当的说明,通常加在函数实现之前,在没有函数实现部分的情况下则加在函数原型前,其内容主要是函数的功能、目的、算法等说明,参数说明、返回值说明等,必要时还
12、要有一些如特别的软硬件要求等说明。公用函数、公用类的声明必须由注解说明其使用方法和设计思路,当然选择恰当的命名格式能够帮助你把事情解释得更清楚。C 在代码不明晰或不可移植处必须有一定的说明。 D 及少量的其它注释,如自定义变量的注释、代码书写时间等。注释有块注释和行注释两种,分别是指:/*/和/建议对A用块注释,D用行注释,B、C则视情况而定,但应统一,至少在一个单元中B类注释形式应统一。具体对不同文件、结构的注释会在后面详细说明。3) Class 文件/* * 信息发布控制类 * author gp * company hshz * version * time 2008.10.11 */4
13、) 方法 /* *方法功能说明. * param 参数 * param 参数 * throws 异常 */5) 变量 一般使用/做行注释。2. 页面文件注释/* Title: 发文管理列表* Description: 展示所有发文列表* Copyright: Copyright (c) 2008* Company: HSHZ* author: gp* version: 1.0* time: 2008.07.07*/3. 数据表一定要完善表的comment.表名注释,每个字段的注释必须。3.4.3.2 代码效率3.4.3.2.1 综述编程过程中一定要考虑代码执行的效率,大家在以后的开发工作中有什
14、么具体的经验可以继续完善。3.4.3.2.2 具体实现1. 循环把要循环的数组或列表,长度赋予某个变量,在for循环体中调用改变量即可。3.4.3.3 异常处理3.4.3.3.1 处理CHECK 异常与UNCHECK异常1. 在程序调试过程中可以让程序抛出异常,以便发现问题;当程序调试完毕须捕获异常,进行处理。2. 对于空指针一样,一定要在程序编写时考虑到这种情况,并做相应处理。3.4.3.4 程序调试1. 综述使用统一的Logger方法来进行调试。不用System.out.println来调试,增加调试程序的控制性。3.4.4 日常交流3.4.4.1 互相促进1. 项目开发过程中,按照功能模块来划分每个人的任务,当有两个人完成各自模块后,进行交换交流,除检查其功能是否完成外,互相检查代码规范,代码质量是非常重要的。2. 可以在程序开发过程中,多考虑一层,考虑功能的重用性,将其封装成服务单元,我们将建立自己项目组的开发成果库。3. 每周一进行项目组总节,通告项目组人员自己学到什么,与大家分享,共同提高。4. 有好的想法或者对项目组有益的都可以提出来讨论研究。-