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
版权声明:本文标题:Java程序编写规范(spring) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1705055056a471415.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论