Java项目组开发规范

Java项目组开发规范
Java项目组开发规范

目录

第一章概述

1.1 编写目的

为规范FSOP项目的开发实施工作,特制定本规范。

为了提高软件开发质量,降低开发周期,增强代码的可重用性和易读性,使软件便于维护,开发人员间便于交流和协作,特总结出开发规范,以为参考。

1.2面向读者

从事FSOP项目的开发、实施工作的相关人员。

1.3名词解释

本节对手册中涉及到的术语进行简单描述。

第二章程序结构

2.1包结构

项目中的所有代码,必须符合如下的结构:

1、各子系统的模块:

其中subsys是子系统的名称,module是模块的名称,xxServlet和xxHandler是模块下面的Servlet 和Handler,允许有多个Servlet和Handler同时存在,建议同一个模块下,用多套Servlet和Handler处理不同的业务对象;util存放该模块专用的类;package/class可以任意级别的包或者类;

2、子系统之外的模块:

sm.{module}.servlet.[xxServlet]

https://www.360docs.net/doc/4317925013.html,mon.util.[xxUtil]

https://www.360docs.net/doc/4317925013.html,mon.hander.[xxHander]

https://www.360docs.net/doc/4317925013.html,mon.sql.[xxSql]

https://www.360docs.net/doc/4317925013.html,mon.entity.[xxxx]

其中sm是system manage的简写,其他同上;

3、公共的类:

含义同上。

2.2相关类

1、对于Servlet,必须继承ServletBase,必须在Servlet中处理与request和response相关的操作,一般是取参数和设置属性等操作;

2、对于Handler,必须继承HandlerBase,该类的方法中,不能用request和response作为参数,更不能用Servlet作为参数;

3、程序中使用到的SQL,一律在XXXSQLBuilder中进行拼写,该类属于util包,需要继承SQLBuilderBase,其构造函数为私有类型,并且要实现静态方法getSQLBuilder(conn),根据不用的数据库类型,返回不同的实例。

第三章JAVA规范

3.1核心原则

1.软件工程化

2.面向对象

3.能简单不复杂

4.强调团队协作

3.2 命名规范

程序内的所有标识符(包括包名、类名、接口名、方法名、变量名)都应由字母、数字和下划线组成,并以字母开头;统一采用英文命名,用词应当准确,禁止使用中英文混合的方式命名,如果可能的话,尽量使用有意义的英文单词或多个单词的缩写命名(缩写应该是被广泛使用的缩写),做到见名知意;标识符的长度应当符合“min-length ? && ? max-information”原则;程序中不要出现仅靠大小写区分的相似的标识符;在使用英文字母起标识作用时要注意,尽量不使用“O”,“Z”,“I”等单个字符,以避免与数字“0”,“2”,“1”混淆。

3.2.1包、类和接口

1、所有包名全部小写,只能使用英文字母,不得使用数字和其他符号;

2、类名使用有意义的英文单词或单词的组合,每个单词的首字母大写,如果是实现接口的类,可酌情使用Imp结尾,英文单词一般为名词。

3、接口名使用有意义的名词和形容词的组合,每个单词的首字母大写,名称前不需要添加前缀“I”,英文字母i的大写。

3.2.2方法

方法命名使用动词或“动词+名词”的组合,名称的首字母小写,名称中其他词的首字母大写。对于取值的方法(getter method),加“get”作前缀;对于设置的方法(setter method),加“set”作前缀;对于布尔型的方法(boolean method),加“is”作前缀;用正确的反义词组命名具有互斥意义或相反动作的函数,例如getValue(),setValue()。

3.2.3变量

变量命名使用名词或名词“形容词+名词”的组合,名称的首字母小写,名称中其他词的首字母大写。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m 和n,它们一般用于整型;c,d,e,它们一般用于字符型。

用正确的反义词组命名具有互斥意义的变量,例如:int minValue和int maxValue。

尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。

命名应尽量使用匈牙利命名法,成员变量用长名字,参数和局部变量用短名字,一般由小写字母开头的单词组合而成。类成员变量前一般应加上m_,静态变量应加上s_,紧接着是变量的类型(只限于JDK内置类型)。临时变量应参照如下类似的格式书写,如ltmp ,tmpStr,tempStr等。

例如:m_nTotalNum,m_strPath,s_bRcving

3.2.4常量

常量(static final 变量)名字的每个字母都大写,并且指出完整含义,词与词之间用下划线分隔。

3.3 代码结构

代码组织要清晰,严格控制函数的长度和每行代码的长度,{,},(,),if,else,do,while,for,case等要对应整齐,缩进全部用Tab键(4个空格)。变量的定义要集中,函数间要有空行分开,一个程序中的空行数目最好占8%-16%。多态函数和功能相近的函数集中放在一起。代码应该简洁、清楚并讲述了所发生的一切,我们的目标应该是写出最清晰的代码,而不是最巧妙的代码。

有些不易理解的变量或函数应作注释,难懂的代码要有注解,在文件的开始处有该文件的用途描述。一定要保持注释的一致性。

代码的重用要仔细,删掉从来没有用过的函数或变量,大篇幅注释掉的代码行也应删除,以免使程序混乱难读。工程中不起作用的文件或类应删除,工程目录下的非工程文件也应该移走,保持工程的清洁,避免混淆难于管理。

3.3.1缩进

代码缩进是指通过在每行代码前键入空格或制表符的方式,表示每行代码之间的层次关系。任何编程语言都需要代码缩进规范程序的结构,采用代码缩进的编程风格有利于代码的阅读和理解。在本项目的开发中,统一采用TAB(4个空格)进行代码缩进。

在遇到有关类、结构、函数或过程、以及枚举等等复杂程序结构的定义的时候,我们通常需要将它的内容缩进一层。在C/C++/C#/Java 语言中,大括号是一个非常明显的标志,凡是遇到大括号,都应该直接联想

到缩进。

3.3.2行宽

当一条语句太长而超出一定的宽度时,应该折行书写,尽量避免一行的长度超过80 个字符。

3.3.3换行

需要折行时,从第二行起到该语句结束之间的各行应该缩进一层,至下一条语句时再恢复原来的缩进位置。这一点我相信大家都能理解并愿意遵循,然而问题的焦点并不在于要不要换行,而在于在什么位置换行。

当一个表达式不能在一行内写完,参照下面的标准换行:逗号后换行,操作符后换行,,换行时保证代码意义的连贯性。

在换行时,我们通常在一个变量或者常量之前换行,把逗号之类的分隔符、运算符留在前一行的行尾。函数调用时,如果参数个数很多,或者要传递的表达式写起来很长,那么也会涉及到长语句换行问题;在一些必要的情况下,我们为了清晰地列出函数的每一个参数,可以每行只书写一个参数,原则是:尽可能地在参数与参数之间换行,并将逗号保留在上一行行末。

下面是经常使用的一些换行的示例代码:

代码示例1:由于代码过长而进行断行

bitmap = new Bitmap(size.Width, size.Height,

代码示例2:对于一个超长表达式,我们可以在某两个表达式项之间断开:

{

??? supportsPropertyItems = true;

}

else

{

??? supportsPropertyItems = false;

}

原本一个很长的条件表达式,通过在“||”运算符处换行,显得更加地清晰。有一点需要我们注意的是,当我们进行折行时,要将折行位置处的分隔符(如前一例中的逗号,这一例中的“||”运算符等)留在上一行的行末,给人以“此行并未结束”的直观印象。

代码示例1-3:寻找最佳的断行位置

double containerAspectRatio =

??? (double)container.ClientWidth / container.ClientHeight;

如此一来,这个除法算术表达式就显得较为完整,相比前一种写法而言更能体现其内在的逻辑关系。通常我们会选择整个表达式中最高的关系层次进行断行,例如上述代码中的“赋值号”和“除号”都是可以考虑的断行点,但相比较而言,除号连接的这个算术表达式只是整个赋值表达式的右半部分,如果在除号处断行,那么不但整个表达式会被截断,连局部的这个除法表达式也会被截断;反之,我们选择在赋值号处换行,可以保持除法表达式的完整,最大限度地减少换行对语句整体结构的破坏,能够更加清楚地表达出原来的逻辑。

代码示例1-4:将函数调用中的每一个参数都分行书写

Rectangle imageBounds = new Rectangle(

??? itemBounds.X + padding,

??? itemBounds.Y + padding,

??? itemBounds.Width - padding * 2,

??? itemBounds.Height - padding * 2

);

当参数数量较多,参数较长或者包含表达式的时候,这种排版比起单独写成一行更为直观醒目。

3.3.4长度

每个函数主要逻辑语句的长度以30个自然行以下为宜,建议不要超过50行,如果超过80行就应该重新组织。如果{}单独成行,则其所在的行不在计算的范围内,catch/finally语句块中的语句不计算在内。

3.3.5括号

在大括号语法中,缩进时大括号的写法有不同的几种,个人认为,前面所用的那种左右括号单独一行的写法最为清晰,因为可以最好地反映出括号的配对情况。

具体使用何种方式并不重要,重要的是,要保持方式风格的统一,不能在同一个项目中出现不同的风格。风格1看起来紧凑些,可以减少代码的行数,但是在其他代码存在换行的情况下,不容易发现配对的括号,必须要借助IDE提供的功能才可以,建议使用风格2,这样的代码看起来更清晰一些,这点比较重要;

3.3.6注释

注释是用来解释程序做什么(What),为什么这样做(Why),以及要特别注意的地方的,而不是注释程序是怎么工作的(How),你的程序本身就应该能说明这一问题,如果程序的逻辑过于复杂,添加一些注释也是有必要的。

例如:

下面的注释是必须的:

下面的注释是多余的

Java 程序有两类注释:实现注释(implementation comments)和文档注释(documentcomments)。实现注释使用/*...*/和//界定的注释。文档注释是Java 独有的,并由/**...*/界定。切记,注释要随着程序的修改而不断更新,一个误导的(Misleading)注释往往比没有注释更糟糕。另外,注释(包括所有源代码)建议只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性。

3.3.6.1 单行注释

短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用多行注释(参见"多行注释")。单行注释之前应该有一个空行。例如:

或者

3.3.6.2 多行注释

多行注释通常用于提供对方法,数据结构和算法的描述。多行注释常被置于每个类和方法开始处,或者用于需要对某一实现细节做详细说明时。例如:

3.3.6.3 行末注释

极短的注释与它们所要描述的代码位于同一行,注释界定符是"//"或者/* */,可以注释掉整行或者一行中的一部分。例如:

3.3.6.4 文档注释

文档注释描述Java 的类、接口、构造器,方法,以及字段(field)。每个文档注释都会被置于注释定界符/**...*/之中,一个注释对应一个类、接口或成员。该注释应位于声明之前,文档注释的第一行(/**)不需缩进,随后的文档注释每行都缩进1 格(使星号纵向对齐)。例如:

若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释或紧跟在声明后面的单行注释。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。文档注释不能放在一个语句块内使用。

3.3.7声明

变量的声明:推荐一行声明一个变量,因为这样以利于写注释;尽量在声明变量的同时进行初始化,唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算;避免声明的局部变量覆盖上一级声明的变量。例如,不要在内部代码块中声明相同的变量名;只在代码块的开始处声明变量,不要在首次用到该变量时才声明。

定义类的成员变量时,总的定义顺序是先定义静态变量后定义实例变量,在每种类型的变量中,变量顺序依次为:公共(public)变量,受保护(protected)变量,私有(private)变量。

3.3.8语句

if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。尽量减少嵌套语句的层数,最好不好超过4层,如果多于4层,则应该对函数进行重构。

3.3.8.1 if-else

只有if的语句:

if ( condition )

{

//do something

}

含有else的语句:

if ( condition )

{

//do something

}

else

{

//do something

}

含有else-if的语句:

if ( condition )

{

//do something

}

else if( condition2 )

{

//do something

}

3.3.8.2 for语句

一个for 语句应该具有如下格式:

for (initialization; condition; update)

{

statements;

}

一个空的for 语句(所有工作都在初始化,条件判断,更新子句中完成)应该具有如下格式:for (initialization; condition; update){ }

当在for 语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。若需要,可以在for 循环之前(为初始化子句)或for 循环末尾(为更新子句)使用单独的语句。

3.3.8.3 while语句

一个while 语句应该具有如下格式

while (condition)

{

statements;

}

一个空的while 语句应该具有如下格式:while (condition){ }

3.3.8.4 do-while语句

一个do-while 语句应该具有如下格式:

do

{

statements;

} while (condition);

3.3.8.5 switch语句

对于有多个分支的代码,每个分支一行,且必须包含默认(default)分支。一个switch 语句应该具有如下格式:

switch (condition)

{

case ABC:statements;

break;

case XYZ:statements;

break;

default: statements;

break;

}

3.3.8.6 try语句

一个try-catch 语句应该具有如下格式:

try

{

statements;

}

catch (ExceptionClass e)

{

statements;

}

finally

{

statements;

}

其中finally 语句块是可选的。

3.3.8.7 空语句

空行将逻辑相关的代码段分隔开,以提高可读性。

下列情况应该总是使用两个空行:

1、多个类(接口)声明之间

下列情况应该总是使用一个空行:

1、两个方法之间

2、语句块内的局部变量和方法的第一条语句之间

3、注释之前

4、一个方法内的两个逻辑段之间

3.3.8.8 空格

下列情况应该使用空格:

1、一个紧跟着括号的关键字应该被空格分开,例如:

while (true)

{

...

}

2、空白应该位于参数列表中逗号的后面;

obj.doSomething(arg1, arg2, arg3);

3、所有的二元运算符,除了".",应该使用空格将之与操作数分开。一元操作符和操作数之间不因该加空格,比如:负号("-")、自增("++")和自减("--")。例如:

a += c + d;

a = (a + b) / (c * d);

n++;

printSize("size is " + foo + "\n");

4、for 语句中的表达式应该被空格分开,例如:

for (expr1; expr2; expr3)

5、强制转型后应该跟一个空格,例如:

myMethod((byte) aNum, (Object) x);

myMethod((int) (cp + 5), ((int) (i + 3)) + 1);

3.4 异常处理

系统中捕获的异常,在无法采取补救措施或补救措施失败后,一律不允许单独处理异常,全部要向上级代码抛出,由系统统一处理。系统提供了通用的异常封装类BaseException和在代码中程序员需把捕获到的具体异常和相应的异常描述代码一同封装入BaseException中,“向外”抛出,最终由系统统一处理。

当在业务层代码(handler)中有异常发生时,需在异常try/catch的catch块中创建BaseException,将捕获到的具体异常封装入BaseException,并将BaseException向外抛出至servlet中,交由上级代码统一处理,并记录详细的日志信息。

例如:

try{

……

}catch(IOException e){

log.error("系统发生异常:无法进行XXX操作",e);

throw(new BaseException(IErrorCode.IO_Exception,e));

}

当在逻辑控制层代码(servlet)中有异常发生,或有异常被抛出至servlet中时,不允许在servlet中出现try/catch块对产生的异常进行处理。servlet中的方法一律将异常“向外”抛出,由系统级代码统一处理。

例如:

protected void performTask()throws NumberFormatException{

……

}

3.5 其他规范

1、限制外部包的使用

如果需要使用一个外部包需要听取项目经理的意见。在项目经理批准以前,严禁擅自使用一个外部的包;

2、对于只有一行的方法体,可以和方法声明写在一行上;

3、在类内部尽量不要定义main方法,请使用TestMain运行待测试的类,如果已经定义了, 那么它应该写在类的底部;

4、程序中用到的资源,比如文件流、数据库连接等,要遵循哪里获取哪里释放的原则;

5、PrintStream 已经被不赞成(deprecated)使用,用PrintWrite 来代替她。

第四章JSP规范

4.1 JSP文件名命名规则

以功能名称+操作名称作为JSP文件名称,例如用户管理的用户维护的功能名称为USER_MANAGE_MAINTAIN,当前操作名称为增加,则该JSP的名称为userManageMaintainAdd.jsp 操作名称一览表:

4.2 JSP头格式

JSP头部一般需要遵循以下格式:

<%@ page language="java" pageEncoding="GBK"%>

<%@ page import="java.util.*" %>

<%@ page import="java.io.File" %>// jdk标准包

<%@ page import="javax.mail.Transport" %> // java扩展包

<%@ page import="serialize" %> //使用的外部库的包

<%@ page import="com." %> //使用的项目的公共包

<%@ page import=" com.icss.login.LoginHandler" %> //使用的模块的其他包

<%@ include file="some.jsp" %> //include其他的jsp

<%

String contextPath=request.getContextPath();//用于设置相对路径

%>

4.3 JSP页面中按钮的快捷键

4.4 SERVLET命名规则

以功能编号+Servlet作为Servlet的名称,例如用户管理的用户维护的功能编号为USER_MANAGE_MAINTAIN,当前操作名称为增加,则该Servlet的名称为UserManageMaintainServlet?method=add,操作的名称列表主要包括以下几种:

4.5 HTML格式

1、HTML头一般需要遵循以下格式:

some title

注意:必须指定一个有意义的,严禁出现“untitled”或“未命名”之类的<title>。</p><p>2、输入框的maxlength属性</p><p>对于text类型的输入域,必须根据数据库字段的长度设置相应的maxlength,例如数据库类型是VARCHAR(64),那么maxlength是32(因为中文浏览器对于中文也认为是一个字符)。</p><p>4.6 web.xml书写规范</p><p>1、在web.xml中,将新添加的元素,放在同类元素的最下面,并用注释表明;</p><p>2、web.xml的servlet-mapping元素中servlet-name与url-pattern值保持一致;</p><p>3、要保持web.xml有良好的格式,每级元素与上级元素保持一个TAB(4个空格)的缩进;</p><p>4.7 其他规范</p><p>1、限制session的使用</p><p>在代码中使用session需要听取项目经理的意见,项目经理需要在设计文档中登记项目中所有使用到的</p><!--/p16--><!--p17--><p>session的名字和作用。</p><p>2、若是待提交的参数含有中文,或参数过多,过长,用post方式,不用get方式;</p><!--/p17--><!--p18--><p>第五章数据库规范</p><p>5.1命名规则</p><p>5.1.1基本规则</p><p>1、所有标识符全部采用英文大写,表名以名词或名词词组命名,多个名词间以下划线分隔。</p><p>2、表名以TBL_开头、存储过程以PR_开头、视图以VIEW_开头、触发器以TRIG开头,索引以IDX_开头。</p><p>3、字段名称尽量不用缩写。</p><p>4、字段名称长度在16个字符以下。</p><p>5.1.2常用名称</p><p>5.2 数据类型</p><p>5.2.1基本规则</p><p>尽量使用流行数据库通用的数据类型,某种数据库特殊的数据类型,如boolean类型可以用char1代替,分别以Y/N代表True/Fale。</p><p>字符类型的字段,若长度不定,并有可能超过10的,定义成varchar型。</p><!--/p18--><!--p19--><p>5.2.2常用类型</p><p>说明:varcharNN,NN指具体的字节数,一个中文字占两个字节。</p><p>5.3 SQL语句</p><p>1、代码中书写的sql语句除数值部分以外,全部要求使用大写</p><p>2、对较为复杂的SQL语句加上注释,说明算法、功能。</p><p>3、多表连接时,使用表的别名来引用列。</p><p>5.4注释规则</p><p>1、所有数据库对象都要有注释,包括表、字段、试图、存储过程、函数、触发器等;</p><p>2、SQL语句注释单独成行、放在语句前面。</p><p>3、应对SQL语句中不易理解的分支条件表达式加注释;</p><p>4、应对SQL语句中对重要的计算应说明其功能;</p><p>5、过长SQL语句块,应将其语句按实现的功能分段加以概括性说明;</p><p>5.5JDBC操作</p><p>1、对于数据库连接,要遵循在哪获得在哪释放的原则,即在获得连接的代码块内释放连接;</p><p>2、建议使用PreparedStatement,尽量避免使用Statement。</p><p>5.6优化规则</p><p>1、禁止使用SELECT * FROM,应列出所有字段;</p><p>2、尽量少用嵌套查询;</p><p>3、大量的排序操作影响系统性能,如非必须使用排序操作,尽量减少ORDER BY和GROUP BY排序操作。</p><p>4、如结果集不需唯一,使用UNION ALL代替UNION。</p><p>5、索引的使用:</p><!--/p19--><!--p20--><p>(1) 注意比较值与索引列数据类型的一致性;</p><p>(2) 对于索引的比较,尽量避免使用!=;</p><p>6、任何对列的操作都将导致表扫描,它包括数据库方法、计算表达式等等,查询时要尽可能将操作移至等号右边。</p><p>7、IN、OR子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。</p><p>8、用多表连接代替EXISTS子句。</p><p>9、对于ORACLE数据库应注意以下几点:</p><p>(1) 系统可能选择基于规则的优化器,所以将结果集返回数据量小的表作为驱动表,对于Oracle指</p><p>FROM后边最后一个表。</p><p>(2) 查询的WHERE过滤原则,应使过滤记录数最多的条件放在最后面。</p><p>(3) WHERE条件中表连接关系在前,其它条件在后。</p><p>5.7注意事项</p><p>1、除非特别必要,尽量少使用视图。</p><p>2、对于数据库中的对象,要以注释的方式简要说明哪些地方使用到了,即时修改说明,及时删除没有用到的对象。</p><p>3、避免使用复杂的SQL嵌套语句,在实现程序的功能后,对SQL进行优化。</p><p>4、只有同时操作不同数据库的表时,才能使用DBLINK,否则不允许通过DBLINK访问其他数据库的对象,应该直接获取要访问的数据库对象对应的链接。</p><!--/p20--><!--rset--><h2>Java开发规范</h2><p>Java开发规范</p><p>目录 第1章序言 (4) 第2章java一般性研发规范 (5) 2.1 代码格式 (5) 2.1.1包、类、方法的命名规范: (5) 2.1.2方法的命名应注意避免与java中具有特殊意义的名称例如equals, hashCode,clone,finalizer等冲突 (7) 2.1.3Java bean中取得boolean类型的属性值必须使用is****形式命名 (9) 2.1.4if,else,while,for等必须使用{} (9) 2.1.5类必须包含在包里,禁止出现无包的类 (10) 2.1.6类和方法必须拥有注释,注释量占总体代码25%以上,类头部,以及方法 头部的注释应符合javadoc标准。 (11) 2.2 基本语法 (12) 2.2.1不能随意捕捉异常,原则上谁捕捉谁处理 (12) 2.2.2if,while,try,finally,switch ,synchronized ,static instantiation 里面应有相应的逻辑处理,不能为空。 (13) 2.2.3在处理循环中,不能在程序中人为的改变步长。 (14) 2.2.4将简单类型int,short,float,double等转化成字符串时,需使用其对 应类的toString方法。 (14) 2.2.5javaBean中hashCode,以及equals方法必须同时override。 (15) 2.2.6懒式方式创建对象:不能采用双检查惯用法 (18) 2.2.7不能在finally中返回值。 (19) 2.2.8Boolean实例化时,应用使用Boolean.valueOf,Boolean.TRUE, Boolean.FALSE。 (19) 2.2.9Integer,Byte,Short,Long等实例化时,应用使用valueOf (20) 2.2.10对于多个if语句嵌套的情况下能够整合尽量整合。 (20) 2.2.11override function,不能只有super.function语句,否则视为无效代码 21 2.2.12Collection.toArray的注意事项。 (21) 2.2.13对于BigDecimal方法,应避免使用float值,double值进行创建,应使 用字符串形式创建。 (22) 2.2.14String,BigDecimal,BigInteger等值类型调用replace,add等方法的注 意事项。 (23) 2.2.15需要注意的引起NullException的语句。 (23) 2.2.16ResultSet使用next时,需要判断是否具有记录再进行一下步操作。 25 2.2.17字符串使用相应的规则。 (25) 2.2.18禁止直接调用 System.gc(),System.getRuntime().gc(),System.runFinalization()。 (27) 2.2.19finalize相应的规则。 (27) 2.2.20禁止在代码中使用System.out,ex.printStackTrace打印日志。 (28) 2.2.21系统资源释放(谁创建的,谁关闭) (29) 2.2.22使用Clone时相应的规则。 (32) 2.2.23java Bean类必须实现Serialize接口。 (33)</p><h2>工程软件开发之团队开发规范FB</h2><p>水利水电工程XXXXX辅助决策支持系统团队开发规范 XXXXX设计有限公司 二XXX年十二月</p><p>文档信息: 文档变更历史: 文档名称: 审核结果:</p><p>目录 1团队组成 (1) 1.1产品管理 (1) 1.2项目管理 (2) 1.3开发 (4) 1.4测试 (5) 1.5角色共享 (6) 1.6开发小组 (7) 1.7专家小组 (7) 2开发流程 (8) 2.1达成共识 (9) 2.2完成项目计划 (9) 2.3完成功能 (9) 2.4稳定与发布 (10) 3代码管理 (11) 3.1编码规范 (11) 3.2版本管理 (11) 3.2.1 概述 (11) 3.2.2 代码管理 (11) 4附录:系统开发编码规范 (13) 4.1类型级单位的命名 (13) 4.1.1 类 (13) 4.1.2 枚举和结构 (14)</p><p>4.1.3 委派类型 (15) 4.1.4 接口 (15) 4.1.5 模块 (15) 4.2方法和属性的命名 (15) 4.2.1 方法 (15) 4.2.2 属性 (16) 4.2.3 事件 (16) 4.3变量和常数 (16) 4.4前缀 (18) 4.4.1 对象 (18) 4.4.2 变量/常量的范围 (19) 4.5标签 (20) 4.6名字空间 (20) 4.7格式化 (21) 4.7.1 块 (21) 4.7.2 缩进 (21) 4.7.3 流 (21) 4.8注释 (22) 4.8.1 注释规范 (22) 4.8.2 类(包括Form等)、模块、组件、控件 (23) 4.8.3 方法、函数、事件与属性 (24) 4.9完整性 (24) 4.10安全性 (24)</p><h2>java项目开发实例图书信息管理系统开发及源码</h2><p>j a v a项目开发实例图书信息管理系统开发及源 码 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-</p><p>图书信息管理系统 一、系统功能概述: 根据图书信息管理系统的特点,可以将本系统分为2大功能模块,分别为:基础数据维护、系统数据维护。本系统各个部分及其包括的具体功能模块如下图所示: 二、数据库设计: 图书信息表: 图书类别表: 用户信息表:</p><p>读者信息表: 三、系统源代码: ewInstance(); conn = (dbUrl, dbUser, dbPwd); "数据库连接成功!"); } else return; } catch (Exception ee) { (); } } xecuteQuery(sql); } catch (SQLException e) { ();</p><p>return null; } finally { } } xecuteUpdate(sql); } catch (SQLException e) { quals("[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]DELETE 语句与 COLUMN REFERENCE 约束 'FK_TB_BORRO_REFERENCE_TB_BOOKI' 冲突。该冲突发生于数据库 'db_library',表 'tb_borrow', column 'bookISBN'。")) return -1; } finally { } } etLayout(borderLayout); setIconifiable(true); dd(panel); final JLabel label_2 = new JLabel(); ("图书编号:"); (label_2); ISBN = new JTextField("请输入13位书号",13); (new MyDocument(13)); dd(panel_1, ; final FlowLayout flowLayout = new FlowLayout();</p><h2>Java编程规范试题</h2><p>姓名: ____________ 工号:_______________ 部门:____________ 成绩: 一. 判断题(共15题,每题2分,直接在括号内打“/或“X”) 1、任何时候都不要使接口可以序列化。x 2、相对独立的程序块之间、变量说明之后必须加空行。V 3、当程序需要释放对象的时候,应该手工调用fin alize 方法以释放对象。x 4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。x 5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值: a = b = 1 。x 6、每个类都需要定义构建器。x 7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。V 8、main() 方法的定义是public static void main(String args[]) 。x 9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。并且,常量应该使用final static 修饰。x 10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。V 11、一两行代码就能完成的功能没有必要编写方法实现。x 12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合法性检查。 x 13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。x非运行 期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws子句。x 14、使用Objectstream 的方法后,调用release(),释放对象。X 15、减小单个方法的复杂度,使用的if, while, for, switch 语句要在10个以内。V 二、单项选择题(共23题,每题2分) (c ) 1、排版时,代码缩进应该采用的方式是: (A)Tab缩进 (B)2个空格缩进</p><h2>团队开发规范</h2><p>团队开发规范</p><p>文档信息: 文档变更历史: 审核结果:</p><p>目录 1团队组成 (4) 1.1产品管理 (4) 1.2项目管理 (5) 1.3开发 (5) 1.4测试 (6) 1.5用户教育 (7) 1.6发布管理 (7) 1.7角色共享 (8) 2开发流程 (9) 2.1达成共识 (10) 2.2完成项目计划 (10) 2.3完成功能 (11) 2.4稳定与发布 (11) 3代码管理 (11) 3.1代码规范 (11) 3.2版本管理 (11) (1) 概述 (11) (2) 代码管理 (12)</p><p>1团队组成 整个团队由六种角色组成,分别为 ?产品管理(Product Management) ?项目管理(Program Management) ?开发人员(Development) ?测试人员(Test) ?用户教育人员(User Education) ?发布管理(Release Management) 各角色在团队的地位相当,各司其职。各个角色的具体目标、职能以及责任在以下的小节中进行详述。 1.1产品管理 (1)目标 满足客户需求。 产品管理的目标就是满足客户需求。一个成功的项目必须要能够满足客户和用户的要求。即使项目达到了预算和时间的目标,只要未能满足客户需求,那这就是一个失败的项目。首先必须认清和理解客户。有时,使用方和投资方的目标需求并不完全相同,因此就需要清晰地区别和分析所有的需求。 (2)职能 ?市场 ?推动市场和公关,以对目标客户发生效用 ?突出产品与其他竞争对手的区别性,以利于竞争 ?分发解决方案,以便用户能够容易地获得 ?为用户提供支持,以使其无论在购买还是使用过程中都留下正面的印象?业务价值 ?定义并维护项目的业务正确性 ?定义并衡量业务价值的实现和评价 ?发展客户 ?推动项目和解决方案的远景目标 ?负责客户期望值和沟通 ?产品计划 ?收集、分析客户和业务需求,并区分其优先级 ?执行市场调查、市场开拓和竞争对手分析 ?确定业务和成功的标准 ?识别多目标的发布计划</p><h2>Java Web项目开发总结</h2><p>1、In Action (1)根据添加信息(insert)来考虑表中的字段,进行建表。使用PD画出ER图。要注意字段的数据类型的确定以及建表要满足三范式,减少数据冗余; (2)表建好后,根据表中各个字段来建pojo中的属性。要注意属性的数据类型和字段的数据类型要一致; (3)根据pojo中的属性确定bean的属性,直接拷贝即可,用于页面展示。在bean中,统一使用String类型变量接收前台页面传递的参数;每个HTML表单对应一个bean。HTML 表单中的字段和bean中的属性一一对应。 (4)自顶向下,依次定出action、manager、dao。先写出轮廓,跑通整个流程,再写具体实现,一点点累加,便于调试错误; (5)根据数据实体和具体业务逻辑,使用StarUML画类图,进行OOA和OOD,灵活运用设计模式。 (6)API命名: CRUD:add,get,update,delete,[list] 严格区分单复数形式,单数表示对象,复数表示对象集合。 对象、属性最好单个单词。 (7)前后台都要校验。 (8)按照资源方式组织数据接口,对前端开发帮助很大。即通过REST来实现资源的增、删、改、查。 (9)软件开发,思路最重要!代码开发多了,思路就有了。 a、一个版本一个版本递增的开发;每个版本增加一点内容; b、总结开发思路;第一步怎么做,下一步怎么做? c、用文档记录开发的思路,即第一个版本开发实现了什么功能以及开发步骤,下一个版本实现了什么功能等等?</p><p>d、程序员进行程序开发时,不要仅仅停留在代码,要深入到底层的运行机制,才可以对程序的运行机制有更准备的把握; (10)网页模板 request到template.jsp文件(此文件假设包括三个部分,即title、banner、body) web客户——> title banner———————>include:banner.jsp body————————>include:showcart.jsp (11)一步一步的定位。根据结果进行分析。 (12)分页控件 假分页: 基本思想是将所有的数据从数据库中取出,只显示有用的部分。靠的是程序的算法,实际上就是在ResultSet上进行操作。 真分页:(数据库中的一种实现) 任何数据库都会提供分页的函数操作:Oracle、MySQL(limit,即limit 开始的记录, 要查询的行数)、SQL Server(top) 基本思想是在数据库中编写特定的SQL语句。程序中只读取有用的部分,没用的部分不会加载到内存中。 (13) 2、TIPS</p><h2>JAVA开发规范文档</h2><p>Java 开发规范文档 一:目的 使本组织能以标准的,规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性,可读性,可修改性,可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。 二:代码组织与风格 1:长度:为便于阅读和理解,单个函数的有效代码长度当尽量在100行以内(不包括注释行),当功能模块过大时往往采用使用子函数将相应的功能抽取出来,这也有利于提高代码的重用度。 2:单个类不宜过大,当出现此类过大时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。尽量避免使用大类和长方法。3:间隔:类,方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。操作符两端应当各空一个字符以增加可读性。 三:注释 1:注释应该增加代码的清晰度。代码注释的目的时要使代码更易于被其他开发人员等理解。2:保持注释的简洁。 3:注释信息应该包括代码的功能。 4:除变量定义等较短语句的注释使用行尾注释外,其他注释当避免使用行尾注释。 5:JavaDoc规范 对类,方法,变量等注释需要符合javadoc规范,对每个类,方法都应详细说明其功能条件,参数等。类注释中应当包含版本和作者信息。 1)类,接口注释在类,接口定义之前当对其进行注释,包括类,接口的目的,作用,功能,继承于何种父类,实现的接口,实现的算法,使用方法,示例程序等。 2)方法注释以明确该方法功能,作者,各参数含义以及返回值等。</p><p>3)其他注释应对重要的变量及不易理解的分支条件表达式加以注释,以说明其含义等。四命名规范 1:对变量,类,接口及包的命名应该使用英文。严禁使用汉语拼音及不相关单词命名。更不可以使用汉字来进行命名。采用大小写混合,提高名字的可读性。一般应该采用小写字母,但时类和接口的名称的首字母,以及任何中间单词的首字母应该大写。包名全部小写。 2:尽量少用缩写,但如果一定要用,当使用公共缩写和习惯缩写等,如implement可缩写为impl,manager可缩写成mgr等。 3:包名一般以项目或模块名命名,少用缩写和长名,一律小写。 包名按照如下规定组成[基本包].[项目名].[模块名].[子模块名].…. 如:org.skyinn.skyhome.dao.hibernate。 不得将类直接定义在基本包下,所有项目中的类,接口等都当定义在各自的项目和模块包中。 4:类,接口所有单词首字母大写,最好能够见名知意。一般采用名词。接口可带I前缀。 或able,dao后缀。 5:字段常量采用完整的英文大写单词,单词之间用下划线连接,如DEFAULT_V ALUE. 6:变量和参数对不易识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean使用isXXX,hasXXX等等。除第一个单词外其余单词的首字母大写。7:集合采用复数名称来表示队列中存放的对象类型,名词采用完整的英文描述。 例如:Vector vProducts= new Vector(); Array aryUsers= new Array(); 8:方法方法的名称应采用完整的英文描述,大小写混合使用:所有中间单词的第一个字母大写。方法名称的第一个单词常常采用一个强烈动作色彩的动词。取值类使用get前缀,设置类使用set前缀。例如getName(),setSarry()。 9:异常类名由表示该异常类型的单词和Exception组成,如ActionException。异常实例一般使用e,ex等。 10:数组的命名 数组应该总是用下面的方式来命名:byte[] buffer; 而不是:byte buffer[]; 五:类与接口 1:基本原则:一个类只做一件事情。另一个原则时根据每个类的职责进行划分,比如用User 来存放用户信息,而用UserDAO来对用户信息进行数据访问操作,用UserServer对用户信息的业务操作等等。多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。不希望被实例化的类的缺省构造方法声明为private。 2:一般而言,接口定义行为,而抽象类定义属性和共有行为,注意2者的取舍,在设计中可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为为定义。 六:方法 一个方法只完成一项功能。方法参数类型和参数返回值尽量接口化,以屏蔽具体的实现细节,提高系统的可扩展性,例如:public void addUser(List userList){} public List listAllUsers(){} 七:Web 命名规范 一:jsp页面命名 对于某个功能块的增删改查页面定义,最好使用</p><h2>实验五java项目开发实例</h2><p>实验五Java项目开发实例 实验目的: 掌握运用RAD开发Java应用程序 目标要求: 1.掌握运用Visual Editor创建窗口应用程序 2.掌握通过JDBC连接数据库 内容简介: 本章将介绍MyLibrary的 GUI应用程序。 实验说明: 第一节创建GUI应用程序 1.添加JDBC环境变量 在菜单栏点击“文件 -> 新建 -> 项目”,选择“Java项目”,点击“下一步”。 输入项目名称“MyLibraryGUI”,点击“下一步”。 在Java设置中选择“库”栏,点击“添加变量”。在“新建变量类路径条目”对话框</p><p>中点击“配置变量” 在“类途径变量”对话框中点击“新建”按钮,会弹出“新建变量条目”对话框。在“名称”栏中输入“CLOUDSCAPE_DRIVER_JAR”,然后点击“文件”按钮,找到D:/Program Files/IBM/Rational/SDP/runtimes/base_v6/cloudscape/lib/,如下图: 点击“确定”。再次点击“确定”。在弹出对话框点击“是”。 在“新建变量类路径条目”窗口中选择 ,点击“确定”。</p><p>这样就在MyLibraryGUI项目里添加了Cloudscape 的JDBC驱动。点击“完成”按钮。 2.新建可视类(Visual Class) 在菜单栏选择“文件 -> 新建 -> 其它 -> Java -> 可视类”,点击“下一步”。 在“Java类”窗口,“包”文本框输入,“名称”文本框输入“MyLibraryDesktopApp”,“样式”选择“Swing -> 框架”(选择后“超类”变成),点击“接口”右侧的“添加”,输入ActionListener,点击“确定”。勾选“pulibc static void main(String[] args)”,点击“完成”</p><h2>华为JAVA编程规范</h2><p>1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }</p><h2>JAVA开发规范</h2><p>1.编程规范 (一)命名规范 1.【强制】所有编程相关的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 反例:_name / name_ / $name / name$ 正例:name 2.【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。 反例:XingMing [姓名] /xingBie() [性别] 正例:name[姓名] sex[性别]等国际通用的名称,可视为英文。 3. 【强制】类名使用UpperCamelCase(第一个词的首字母,以及后面每个词的首字母都大写,叫做“大骆驼拼写法”) 风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / DTO / VO / DAO 等。正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion</p><p>4. 【强制】方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase (第一个词的首字母小写,后面每个词的首字母大写,叫做“小骆驼拼写法”)风格,必须遵从驼峰形式。 正例: localValue / getHttpMessage() / inputUserId 5. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 正例: MAX_STOCK_COUNT 反例: MAX_COUNT 6. 【强制】抽象类命名使用 Abstract或Base 开头;异常类命名使用 Exception结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。 7. 【强制】中括号是数组类型的一部分,数组定义如下:String[] args; 请勿使用String args[]的方式来定义 8. 【强制】POJO类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。</p><h2>java项目团队开发规范</h2><p>项目团队开发规范</p><p>修订历史记录</p><p>目录 1引言 (6) 1.1 编写目的 (6) 1.2 预期读者 (6) 1.3 编写背景 (6) 2概述 (7) 2.1 目标 (7) 2.2 修改及完善 (7) 3详细规范 (7) 3.1 使用的工具 (7) 3.2 框架设计 (7) 3.3 包目录 (8) 3.4 编码规范 (10) 3.4.1 目的 (10) 3.4.2 依据 (10) 3.4.3 具体规范 (10) 3.4.3.1 编码风格 (10) 3.4.3.1.1 缩进 (10) 3.4.3.1.2 空格 (11) 3.4.3.1.3 对齐 (12) 3.4.3.1.4 空行 (12)</p><p>3.4.3.1.5 代码长度 (13) 3.4.3.1.6 行数 (13) 3.4.3.1.7 注释 (14) 3.4.3.2 代码效率 (17) 3.4.3.2.1 综述 (17) 3.4.3.2.2 具体实现 (17) 3.4.3.3 异常处理 (17) 3.4.3.3.1 处理CHECK 异常与UNCHECK异常 (17) 3.4.3.4 程序调试 (17) 3.4.4 日常交流 (18) 3.4.4.1 互相促进 (18)</p><p>1引言 1.1 编写目的 本文档作为项目团队开发规范的说明书,描述了项目开发过程中的使用的工具,框架,代码编写规范及注意问题,作为项目团队建设,开发及测试工作的依据。 1.2 预期读者 本文档的预期读者包括以下几类: ?项目组长 ?项目组全体成员 1.3 编写背景 根据公司现有的开发状况,决定组件稳定的项目开发团队,制定全体团队成员共识的开发规范,有助于提高项目开发的效率、项目团队整体水平的提升。</p><h2>JAVA编程实例大全及详解答案(50例)</h2><p>JA V A编程实例大全及详解答案(50例) 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count);</p><h2>Java编程规范</h2><p>Java编程规范本文引用阿里Java开发手册。GitHub阅读地址: 目录 编程规约 - 命名规约 - 常量定义 - 格式规范 - OOP规约 - 集合处理 - 并发处理 - 控制语句 - 注释规约 - 其他 - 异常处理 - 建表规约 - 索引规约 - SQL规约</p><p>- ORM规约 编程规约 命名规约 1、【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 反例: _name / __name / $Object / name_ / name$ / Object$1 2、【强制】所有编程相关的命名严禁使用拼音与英语混合的方式,更不允许直接使用中的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即纯拼音的命名方式也要避免采用。 反例: DaZhePromotion [打折] / getPingfenByName() [评分] / int 变量 = 3; 正例: ali / alibaba / taobao / cainiao / aliyun / youku / hangzhou 等国际通用的名称,可视为英文。12345 3、【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名) DO / DTO / VO / DAO 等。 正例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例: macroPolo / UserDo / XMLService / TCPUDPDeal</p><p>/ TAPromotion123 4、【强制】方法名、参数名、成员变量、局部变量都统一只用 lowerCamelCase 风格,必须遵从驼峰形式。 正例: localValue / getHttpMessage() / inputUserId1 5、【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 正例: MAX_STOCK_COUNT 反例: MAX_COUNT123 6、【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。 7、【强制】中括号是数组类型的一部分,数组定义如下:String[] args ; 反例:请勿使用 String args[] 的方式来定义1 8、【强制】 POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。 反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(), RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。1 9、【强制】包名统一使用小写,点分隔符之间有且仅有一</p><h2>团队组成及各部分人员职责与开发规范</h2><p>团队组成及各部分人员 职责与开发规范</p><p>文档信息: 文档变更历史: 审核结果:</p><p>目录 1团队组成 (4) 1.1产品管理 (4) 1.2项目管理 (5) 1.3开发 (5) 1.4测试 (6) 1.5用户教育 (7) 1.6发布管理 (7) 1.7角色共享 (8) 2开发流程 (9) 2.1达成共识 (10) 2.2完成项目计划 (10) 2.3完成功能 (11) 2.4稳定与发布 (11) 3代码管理 (11) 3.1代码规范 (11) 3.2版本管理 (11) (1) 概述 (11) (2) 代码管理 (12)</p><p>1团队组成 整个团队由六种角色组成,分别为 ?产品管理(Product Management) ?项目管理(Program Management) ?开发人员(Development) ?测试人员(Test) 产品管理:孙路桃 项目管理:孙路桃 具体分工: UI布局:陈嘉文 C#代码功能编写:钟广瑜,谢家勇,连健萧,王刚 服务器管理与维护:连健萧 数据库管理与维护:谢家勇 团队日常管理:王刚 项目于产品及构架策划:孙路桃,王刚 各角色在团队的地位相当,各司其职。各个角色的具体目标、职能以及责任在以下的小节中进行详述。 1.1产品管理 (1)目标 满足客户需求。 产品管理的目标就是满足客户需求。一个成功的项目必须要能够满足客户和用户的要求。即使项目达到了预算和时间的目标,只要未能满足客户需求,那这就是一个失败的项目。首先必须认清和理解客户。有时,使用方和投资方的目标需求并不完全相同,因此就需要清晰地区别和分析所有的需求。 (2)职能 ?市场 ?推动市场和公关,以对目标客户发生效用 ?突出产品与其他竞争对手的区别性,以利于竞争 ?分发解决方案,以便用户能够容易地获得 ?为用户提供支持,以使其无论在购买还是使用过程中都留下正面的印象?业务价值 ?定义并维护项目的业务正确性 ?定义并衡量业务价值的实现和评价 ?发展客户 ?推动项目和解决方案的远景目标</p><h2>javaweb开发案例</h2><p>中原工学院软件学院 软件工程实践一设计任务书 指导教师签字: 年月日 超市商品管理系统</p><p>摘要 20 世纪90 年代后期特别就是近几年,我国的超市产业飞速发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术、超市的数据与业务越来越庞大,而计算机就就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生、依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,并且能够快速反映出商品的进销,存等状况与各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大, 其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。 关键词: 商品; 管理; 进销 目录 摘要 (2) 第1章项目分析 (1) 1、1背景 (1) 1、2技术分析 (1) 1、2、1 框架技术 (1) 1、2、2 Html、JSP、JavaScript动态网页技术 (1) 1、2、3 MySQL数据库 (2) 1、3工程进度计划 (2) 表1、3 工程进度计划表 (2) 第二章系统分析 (3) 2、1可行性分析 (3) 2、1、1技术可行性分析 (3) 2、1、2经济可行性分析 (3) 2、1、3安全可行性 (3) 2、1、4操作可行性 (3) 2、2需求分析 (4) 2、2、1系统的主要功能 (4)</p><p>2、2、2运行环境 (5) 第三章总体设计 (5) 3、1功能模块设计 (5) 3、2系统功能设计 (6) 3、3系统数据库E-R图 (6) 3、4数据库设计 (7) 3、4、1 职工信息表 (7) 3、4、2 用户登录表 (7) 3、4、3 商品信息表 (8) 3、4、4 供货商信息表 (8) 3、4、5 进货信息表 (8) 3、4、6 销售信息表 (9) 3、4、7 库存信息表 (9) 第四章系统实现 (9) 4、1登录界面 (9) 4、2商品信息管理模块 (10) 4、3职工信息管理模块 (10) 4、4供货商信息管理模块 (10) 4、5添加销售信息模块 (11) 4、6添加进货信息模块 (11) 4、7库存信息管理模块 (12) 4、8权限设置管理模块 (12) 第五章关键技术及实现方法 (13) 5、1主要任务 (13) 5、1、1商品管理 (13) 5、1、2销售管理 (15) 第六章结束语 (16) 附录:部分源代码 (18)</p><h2>java开发文档</h2><p>Java 开发规范 1.命名规范 1.包命名规范: 1.业务模块的包命名格式如下: src/业务模块名称 2.Service接口的包命名格式如下: com.greencloud.service 3.Service接口实现类的包命名格式如下:com.greencloud.service.impl 4.Dao 接口的包命名格式如下:com.greencloud.dao 5.Dao 接口的实现类的包命名格式如下:com.greencloud.dao.impl 6.Fa?ade接口的包命名格式如下: com.greencloud.service.facade 7.Fa?ade接口的实现类的包命名格式如下:com.greencloud.service.facade.impl 8.业务域对象的包命名格式如下:com.greencloud.entity 9.异常类的包命名格式如下:com.greencloud.exception 10.枚举类的包命名格式如下:com.greencloud.enum 11.常量类的包命名格式如下:com.greencloud.contant 12.帮助类的包命名格式如下:com.greencloud.util 2.类命名规范: 1.Service接口的命名格式如下: I+表名+service 2.Service接口实现类的命名格式如下: 表名+serviceImpl 3.Dao 接口的命名格式如下:I+表名+dao 4.Dao 接口的实现类的包命名格式如下:表名+daoImpl 5.Fa?ade接口的命名格式如下: I+包名+facadeService 6.Fa?ade接口的实现类的命名格式如下:包名+facadeServiceImpl 7.业务域对象的命名格式如下:表名 8.异常类的命名格式如下:描述异常情况+exception 9.枚举类的命名格式如下:描述枚举情况+enum 10.常量类的命名格式如下: 描述常量情况+contant 11.帮助类的命名格式如下: 描述帮助类型+util 3.方法命名规范: 1.查询单个实体对象的方法命名格式: 1.查询单个的实体对象:load+实体对象名+by+字段名 2.如果类中只存在一个加载实体对象的方法:load+实体对象名 3.如果加载一个实体对象需要多个字段组合查询:load+实体对象名+by+最核 心的查询字段或者load+实体对象名+by+ 核心字段1+And+核心字段2 4.失败抛出flex.messaging.service.ServiceException异常或者它的子类 5.成功返回实体对象 例如:通过code字段查询CodeBase实体对象 public CodeBase loadCodeBaseByCode(String code) throws ServiceException 2.查询多个实体对象的方法命名格式:</p><h2>Java编程要求规范精彩试题</h2><p>JAVA编程规范--试题 姓名:工号:部门:成绩: 一. 判断题(共15题,每题2分,直接在括号内打“√”或“×”) 1、任何时候都不要使接口可以序列化。x 2、相对独立的程序块之间、变量说明之后必须加空行。√ 3、当程序需要释放对象的时候,应该手工调用finalize方法以释放对象。x 4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。x 5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值:a = b = 1 。x 6、每个类都需要定义构建器。x 7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。√ 8、main() 方法的定义是public static void main(String args[])。x 9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。并且,常量应该使用 final static修饰。x 10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。√ 11、一两行代码就能完成的功能没有必要编写方法实现。x 12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合 法性检查。x 13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。 x非运行期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws 子句。x 14、使用ObjectStream 的方法后,调用release() ,释放对象。X 15、减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。√ 二、单项选择题(共23题,每题2分) ( c )1、排版时,代码缩进应该采用的方式是: (A)Tab缩进 (B)2个空格缩进 (C)4个空格缩进 (D)8个空格缩进</p><h2>JAVA工程师个人简历中的项目经验范文</h2><p>JAVA工程师个人简历中的项目经验范文 JAVA工程师个人简历中的项目经验范文 国产中间件参考实现及平台 软件环境: j2ee 硬件环境: x86 开发工具: Java 项目描述:核高基重大专项课题该课题旨在建立国产中间件标准体系,进而在该标准体系指导下构建国产中间件参考实现与平台,从技术、产品与产业运作机制等方面探索适合国产中间件发展的一体化方案。责任描述:编写相关文档和设计报告。将Onceportal 4.0中符合JSR 286规范的Portlet容器OSGi化。 轻量级数据持久框架 软件环境: j2ee 硬件环境: x86 开发工具: Java 项目描述:国家863项目子课题该课题旨在提供一种能够提高小型信息系统持久层的开发效率,降低其在异构数据库之间的迁移成本的数据持久化框架。责任描述:调研现有持久化技术,编写可行性报告。借鉴已有产品和标准的经验,提取数据持久化通用接口,完成持久化框架总体设计。在Java环境下对框架进行开发,并提供了框架接口在关系数据库、XML数据库和目录数据库下的</p><p>实现。 基于门户系统的单点登录工具 软件环境: j2ee 硬件环境: x86 开发工具: Java JSP 项目描述:国家863项目子课题该课题旨在研究门户环境下如何安全有效的对常见的B/S和C/S应用进行单点登录集成。责任描述:调研企业B/S和 C/S应用的常见认证方式,设计门户环境下B/S和C/S应用单点登录集成工具OnceportalBSSSO1.0,OnceportalCSSSSO1.0/2.0并使用Java和JSP等相关技术将其实现。 可视化快递追踪分析平台- VisualExpress 软件环境: j2ee 硬件环境: x86 开发工具: Java 项目描述:该项目旨在开发一个可以向用户提供基于Google Map的可视化快递单件查询,提供RSS、手机短信、Email等多种单件状态信息订阅,能够利用既往数据进行单件到达时间预测,并对快递公司的整体运营情况进行简单分析的综合快递交互平台。责任描述:任务分配、项目模块划分、项目进度监督以及相关人员的协调(项目组共6人)。需求分析、模块功能的取舍裁定以及</p></div> <div class="rtopicdocs"> <div class="coltitle">相关主题</div> <div class="relatedtopic"> <div id="tabs-section" class="tabs"> <ul class="tab-head"> <li id="1716676"><a href="/topic/1716676/" target="_blank">java开发规范</a></li> <li id="18550792"><a href="/topic/18550792/" target="_blank">java项目开发实例</a></li> <li id="21323422"><a href="/topic/21323422/" target="_blank">java代码规范详细版</a></li> <li id="14544875"><a href="/topic/14544875/" target="_blank">团队开发项目开发规范</a></li> <li id="19008472"><a href="/topic/19008472/" target="_blank">java开发规范文档</a></li> </ul> </div> </div> </div> </div> <div id="rightcol" class="viewcol"> <div class="coltitle">相关文档</div> <ul class="lista"> <li><a href="/doc/0517598208.html" target="_blank">JAVA开发规范</a></li> <li><a href="/doc/20575940.html" target="_blank">JAVA开发规范文档</a></li> <li><a href="/doc/3e14490870.html" target="_blank">Java编程规范手册</a></li> <li><a href="/doc/501170676.html" target="_blank">Java开发规范</a></li> <li><a href="/doc/7b14477844.html" target="_blank">Java开发规范(公司规范)</a></li> <li><a href="/doc/9c8459896.html" target="_blank">JAVA安全开发规范</a></li> <li><a href="/doc/a23358639.html" target="_blank">Java开发写规范文档</a></li> <li><a href="/doc/ca14813317.html" target="_blank">Java语言编程规范华为年</a></li> <li><a href="/doc/0810050911.html" target="_blank">JAVA开发规范文档</a></li> <li><a href="/doc/1a7051459.html" target="_blank">java开发规范文档</a></li> <li><a href="/doc/3b14052263.html" target="_blank">JAVA编程规范</a></li> <li><a href="/doc/4e17934509.html" target="_blank">java开发详细设计文档模板</a></li> <li><a href="/doc/6a7322906.html" target="_blank">Java安全开发规范</a></li> <li><a href="/doc/9b1531011.html" target="_blank">JAVA 开发规范</a></li> <li><a href="/doc/a33141749.html" target="_blank">技术部JAVA开发规范</a></li> <li><a href="/doc/c92757193.html" target="_blank">Java开发规范</a></li> <li><a href="/doc/f53393626.html" target="_blank">Java开发规范</a></li> <li><a href="/doc/049737769.html" target="_blank">Java编程规范试题</a></li> <li><a href="/doc/176170290.html" target="_blank">Java编程要求规范精彩试题</a></li> <li><a href="/doc/2e10059654.html" target="_blank">华为JAVA编程规范</a></li> </ul> <div class="coltitle">最新文档</div> <ul class="lista"> <li><a href="/doc/0f19509601.html" target="_blank">幼儿园小班科学《小动物过冬》PPT课件教案</a></li> <li><a href="/doc/0119509602.html" target="_blank">2021年春新青岛版(五四制)科学四年级下册 20.《露和霜》教学课件</a></li> <li><a href="/doc/9b19184372.html" target="_blank">自然教育课件</a></li> <li><a href="/doc/3019258759.html" target="_blank">小学语文优质课火烧云教材分析及课件</a></li> <li><a href="/doc/d819211938.html" target="_blank">(超详)高中语文知识点归纳汇总</a></li> <li><a href="/doc/a419240639.html" target="_blank">高中语文基础知识点总结(5篇)</a></li> <li><a href="/doc/9d19184371.html" target="_blank">高中语文基础知识点总结(最新)</a></li> <li><a href="/doc/8a19195909.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/8519195910.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/7f19336998.html" target="_blank">高中语文基础知识点总结大全</a></li> <li><a href="/doc/7119336999.html" target="_blank">超详细的高中语文知识点归纳</a></li> <li><a href="/doc/6619035160.html" target="_blank">高考语文知识点总结高中</a></li> <li><a href="/doc/6719035161.html" target="_blank">高中语文知识点总结归纳</a></li> <li><a href="/doc/4a19232289.html" target="_blank">高中语文知识点整理总结</a></li> <li><a href="/doc/3b19258758.html" target="_blank">高中语文知识点归纳</a></li> <li><a href="/doc/2619396978.html" target="_blank">高中语文知识点归纳(大全)</a></li> <li><a href="/doc/2b19396979.html" target="_blank">高中语文知识点总结归纳(汇总8篇)</a></li> <li><a href="/doc/1419338136.html" target="_blank">高中语文基础知识点整理</a></li> <li><a href="/doc/ed19066069.html" target="_blank">化工厂应急预案</a></li> <li><a href="/doc/bd19159069.html" target="_blank">化工消防应急预案(精选8篇)</a></li> </ul> </div> </div> <script> var sdocid = "4ef5e63d12661ed9ad51f01dc281e53a580251b7"; </script> <div class="clearfloat"></div> <div id="footer"> <div class="ft_info"> <a href="https://beian.miit.gov.cn">闽ICP备16038512号-3</a> <a href="/tousu.html" target="_blank">侵权投诉</a>  ©2013-2023 360文档中心,www.360docs.net | <a target="_blank" href="/sitemap.html">站点地图</a><br /> 本站资源均为网友上传分享,本站仅负责收集和整理,有任何问题请在对应网页下方投诉通道反馈 </div> <script type="text/javascript">foot()</script> </div> </body> </html>