admin 管理员组

文章数量: 1184232


2024年1月12日发(作者:oracle client卸载)

1. Java程序规范

1.1. 命名规范

 包

Package 的名字应该都是由一个小写单词组成,例如:。

此外,对于包名我们做如下约定:

1、 工具函数类包名前缀为.util

2、 Servlet类包名前缀为.servlet

3、 test case类包名前缀为.test

 类,接口

Class 的名字应该使用名词,必须由大写字母开头而其他字母都小写的单词组成,例如:DataFile或InfoParser。

 方法

1、 第一个单词一般是动词。

2、 第一个字母是小写,但是中间单词的第一个字母是大写。

3、 方法名不要使用缩写,如果方法返回一个成员变量的值,方法名一般为get+成员变量名,如若返回的值是bool变量,一般以is作为前缀。如果方法修改一个成员变量的值,方法名一般为:set + 成员变量名。例如:getName();

或setName();

或 isFirst();

 变量

1、 变量的名字必须用一个小写字母开头。后面的单词用大写字母开头,例如:debug

或 inputFileSize。

2、 在结尾处放置一个统一的量词,例如:strCustomerFirst和strCustomerLast,量词列表:

量词后缀

First

Last

Next

Prev

Cur

一组变量中的第一个

一组变量中的最后一个

一组变量中的下一个变量

一组变量中的上一个

一组变量中的当前变量

说明

3、 给布尔变量命名时,始终都要使用变量的肯定形式,例如:bIsExit

4、 尽量缩小变量的作用域

 常量

常量的名字应该都大写,单词间以‘_’隔开,并且指出完整含义,例如:Static Final

MAX_UPLOAD_FILE_SIZE=1024。

 参数

参数的名字必须和变量的命名规范一致。

 数组

数组应该总是用下面的方式来命名:

byte[] buffer;

而不是:

byte buffer[];

 方法的参数

使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:

SetCounter(int

size)

{

= size;

}

1.2. Java文件样式

所有的 Java(*.java) 文件都必须遵守如下的样式规则:

 文件头

源文件的头部需要一个history段,对于每次对源文件的重大改动,都需要在history段中注明。该段定义在package和import之间,例如:

/**

*

Title: 通用WEB底层框架系统

*

Description: 系统缓冲加载,包括数据字典、系统参数

*

Copyright: Copyright (c) 2009

*

Company: hongdi

* @author lhc

* @version 1.0

*/

 Package/import

import包按以下顺序:

1、 jdk标准包

2、 java扩展包(例如servlet,javamail,jce等)

3、 使用的外部库的包(例如xml parser)

4、 使用的项目的公共包

5、 使用的模块的其他包

每一类import后面加一个换行。

例如:

import .*;

import .*;

import t.*;

import .*;

import .*;

import .*;

import or;

 Class

1、 类定义

2、 类的成员变量

/**

* Packet counters

*/

protected int[] packets;

public 的成员变量必须生成文档(JavaDoc)。

proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。

3、 构造函数

它应该用递增的方式写(比如:参数多的写在后面)。

4、 类方法

1.3. 代码格式

 代码块书写格式

可以选择以下任意一种代码块的书写方式:

if (true){

//body

}

if (true)

{

//body

}

建议使用第二种书写方式。如果是修改他人的代码,必须使用代码原来的书写方式。

对于代码块过长,超过1屏以上,}后面要说明属于那个代码块,例如:

if (i > 100)

{

//too many lines more than one screen

}// if (i > 100)

 关于缩进

缩进使用4个连续空格,不要在源文件中保存tab字符, 请注意调整所用的IDE工具,打开将tab转换为空格功能。

 页宽

页宽应该设置为80字符. 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进4个空格。

 操作符

操作符左右各用一个空格分隔。

例如:

int a = b;

if (a > 0);

 SQL语句

代码中书写的sql语句要求sql关键字全部小写,表名和字段名大写。例如:

SELECT user_id, name FROM account WHERE user_id > ? AND depart = ? ORDER BY

name

 类和方法定义

类定义或方法定义过长需要换行书写,例如:

public class CounterSet

extends Observable

implements Cloneable

private PortletSet getPortlets( Portlets portlets,

RunData rundata,

boolean application,

boolean applicationsOnly )

{

}

1.4. 注释

1、 public 和 protected的成员变量和方法必须写javadoc注释。

2、 超过1句以上的注释使用中文书写。对于代码多于10行的private方法也要写javadoc注释。

3、 对注释进行缩进,使之与后随的语句对齐

4、 为每个方法赋予一个注释标头,包括功能说明、输入参数、返回值、原始作者、最后编辑该方法的程序员、上次修改日期、版权信息。

5、 对于代码中的逻辑分支或循环条件需要书写注释,例如:

if (some condition)

{

//符合某个条件,应该这样处理

}

else

{

//否则应该那样处理

}

6、 注释哪些部分

项目

实参/参数

字段

注释哪些部分

参数类型、参数用来做什么

字段描述、注释所有使用 的不变量

类的目的、已知的问题、类的开发/维护历史、注释出采用的 不变量

接口

局部变量

成员函数注释

目的、它应如何被使 用以及如何不被使用

用处/目的

成员函数做什么以及它为什么做这个、哪些参数必须传递给一个成员函数、成员函数返回什么、已知的问题、任何由某个成员函数抛出的异常

成员函数内部注释

控制结构、局部变量、难或复杂的代码、处理顺序

1.5. 其他

 关于方法

1、 将复杂进程(如数学公式)放入专用方法。

2、 将数据输入/输出(I/O)放入专用方法。

3、 将可能要修改的代码放入专用方法。

4、 将业务规则封装在专用方法。

5、 如果一个方法只被同一类中的另一个方法调用,那么请将它创建成private方法。如果该方法是被多个类中的多个方法中调用,请将该说明为public方法。

6、 用参数在方法之间传递数据,应尽量避免在方法中使用类变量。

7、 始终要对传入参数进行检验。

 关于属性

类中的属性不能定义为public变量直接存取,而是定义成protect变量并编写get/set方法,例如:

protect String myName;

public String getMyName()

{

return myName;

}

public void setMyName(String myName)

{

=myName;

}

 垃圾收集

必须在使用完对象的实例以后进行清场工作。比如一个prel的程序员可能这么写:

FileOutputStream fos = new FileOutputStream(projectFile);

(fos, "IDE Project File");

();

 性能

1、 在处理 String 的时候要尽量使用 StringBuffer 类

2、 避免不必要的使用关键字 synchronized 关键字

 可移植性

1、 尽量不要使用已经被标为不赞成使用的类或方法。

2、 如果需要换行的话,尽量用 println 来代替在字符串中使用"n"。

3、 用separator()方法代替路径中的”/”或”” 。

4、 用pathSeptarator()方法代替路径中的 ” : ” 或 ” ;” 。

 关于编码格式

1、 工程中的所有文件(Java类、jsp页面、配置文件等)都采用UTF-8编码。

2. Spring开发规范

2.1. MVC规范

 分层

在MVC的设计模式中,要求在Application开发中你把商业逻辑,界面显示,数据分离。也就是分别在Model,View,Controller实现:数据,控制(商业逻辑)显示(页面显示)。

 规则

1、 用户的所有请求统一由Spring的DispatcherServlet截获。

2、 DispatcherServlet根据请求URL,调用不同的控制器(Controller)。

3、 控制器(Controller)根据请求种类,调用不同的业务对象(Service)。

4、 业务对象(Service)通过调用DAO层与数据库进行交互。

5、 控制器Controller)最后再根据业务对象的返回值,来决定该把哪个页面或数据返回给用户。

6、 在jsp中,不会出现任何业务代码/数据库操作。可以有实例化bean的操 作,或者从session、数据bean中取得数据

7、 在作为控制器的Controller中不会出现网页内容、业务代码、数据库操作。可以有接受request值、 实例化bean、调用bean的方法、页面转移。

8、 数据bean对应数据库中某张表里的一条记录,这张表中的所有列都应该成为数据bean的私有属性。

9、 业务Service在Controller中实例化。

10、 数据bean在业务Service或Controller中实例化。

2.2. 命名规范

 Controller类的命名

Controller类的命名规则是:模块名+Controller

如:UserController

 Service类的命名

Service类的命名规则是:模块名+ Service

如:UserService

 DAO类的命名

DAO类的命名规则是:模块名+ DAO

如:UserDAO

 Model类的命名

Model类的命名规则是:对应的表名或功能名

如:User


本文标签: 方法 使用 代码 变量 成员