Java规范推荐#

推荐:http://blog.csdn.net/tristansmile/article/details/7989670

命名规范

  • 项目名:全部小写

  • Package 的命名:应该都是由一个小写单词组成

  • Class 的命名:首字母大写的驼峰式命名,即FirstName

  • 变量和方法的命名:首字母小写的驼峰式命名,即firstName

  • 当要区别接口类和实现类的时候,可以在类的后面加上“Impl”。

    如:接口类:UserInterface.java 接口实现类:UserInterfaceImp

  • Static Final 常量的命名:大写下划线形式,即FIRST_NAME

  • 在Spring Boot的配置文件application.yml或application.properties中,推荐:first-name

  • 在数据库的列中,推荐:first_name

  • jsp,Velocity等页面采用小写的英文字符和”_ ”组成,整体采用模块名+操作的形式。如:user_view.jsp。

  • xml配置文件很多用_.xml的方式,但我看的项目却用mybatis-config.xml,所以暂时不统一。

名称只能由字母、数字、下划线、$符号组成,不要用拼音命名

应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类),每一层的类的名称尽量带上该层后缀。

推荐实体类没有后缀名。


比如:

Dao层

a、接口类:采用JavaBean+Interface+Dao的形式来定义,即,实体对象+Interface+Dao。 如:用户对象接口类: UserInterfaceDao,其中xxx为模块名称。

b、实现类:采用JavaBean+Interface+Impl+Dao的形式来定义,即,实体对象 +Interface+Impl+Dao。 如:用户对象实现类:UserInterfaceImplDao

若没有Interface,则省略

Service层

a、接口类:采用Xxx+Interface+Service的形式来定义,即,模块+Interface+Service。 如:用户管理接口类:UserMsgInterfaceService

b、实现类:采用Xxx+Interface+Impl+Service的形式来定义,即,模块+Interface+Impl+Service。如:用户管理实现类:UserMsgInterfaceImplServce

变量命名实际应用

变量命名采用基本结构为typeVariableName,使用3字符前缀来表示数据类型。

例如,定义一个整形变量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。

数据类型或对象类型 变量前缀 备注
byte bye 1、做数组用时,再加前缀-a,如字符串数组:astr,
char chr 2、自定义类型的变量可以采用本身的名称,把首字母改为小写。
float flt 3、采用名称要能代表在方法中的意义。如果员工列表:employeeList
boolean bln
Integer/int int
short sht
Long/long lng
Double/double dbl
string str

如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。

数据层方法:只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。

服务层方法,根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。

Web层方法最好是贴近web的语言,如register,login,logout等方法。

注释规范

1. 类注释

在每个类前面必须加上类注释,注释模板如下:

/**
* 类的详细说明
*
* @author ${USER}
* @Date ${DATE}
* @version 1.00
*/

在IntelliJ IDEA中实现:

2. 方法注释

在每个方法前面必须加上方法注释,注释模板如下:

/**
* 类方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @return 返回结果的说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

使用IntelliJ IDEA的Live Templates功能:

如上图所示,点击右侧的+,新建Live Template,然后编辑如上图,将应用范围设为Java,如果只设comment,无法智能提示,且必须/*再按tab才行。如果有一些 $var$,可以 编辑变量

在IntelliJ IDEA中,打出的部分就会智能提醒,Enter后恩Tab即可。

3. 属性注释

在每个属性前面必须加上属性注释,注释模板如下:

/** 提示信息 */
private String strMsg = null;

4. 构造方法注释

在每个构造方法前面必须加上注释,注释模板如下:

/**
* 构造方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

5. 方法内部注释

在方法内部使用单行或者多行注释,该注释根据实际情况添加。

如:

//背景颜色
Color bgColor = Color.RED

Java规范推荐的更多相关文章

  1. java 书籍推荐 JavaEE程序员必读图书大推荐

    java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...

  2. Atitit 我们的devops战略与规划 规范 推荐标准

    Atitit 我们的devops战略与规划 规范 推荐标准 1. Vm容器化1 2. 热部署tomcat+jrebel 或者resin1 3. 增量更新与差异更新1 4. 补丁提取与应用2 为了方便提 ...

  3. 狗屎的Java规范

    规范 标题真有点侮辱了狗. 最近做Java,C#与Java对比笔记: http://www.cnblogs.com/newsea/p/4839540.html 其实Java语法弱点就弱点,关键是Jav ...

  4. Java书籍推荐

    Java书籍推荐 转自:http://www.cnblogs.com/exclm/archive/2009/01/03/1367597.html 一.入门 <Java 2从入门到精通>- ...

  5. 产品管理开发之Git工作流和分支规范推荐

    前言 无论是开源项目还是内部项目,使用Git都是大势所趋,尤其是在产品管理这块,使用Git大大提高了开发效率和产品的交付频率.本篇,针对Git的工作流和分支使用,进行了一些推荐. 目录 1     产 ...

  6. java规范与标准?

    所谓规范,即指由很多人同时遵守的行为或理论. java的规范并不是指其中一种,而是有很多种,比如java编码规范,java命名规范,java虚拟机规范等等,甚至于一个编码规范都有很多种,不同的公司.组 ...

  7. 学习Java书籍推荐和面试网站推荐

    一.Java书籍推荐: 来自http://www.importnew.com/26932.html 1. 鸟哥的Linux私房菜—基础学习篇 3. Effective Java 6. Java并发编程 ...

  8. GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率

    GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...

  9. [改善Java代码]推荐使用枚举定义常量

    枚举和注解都是在Java1.5中引入的,虽然他们是后起之秀,但是功能不容小觑,枚举改变了常量的声明方式,注解耦合了数据和代码. 建议83:推荐使用枚举定义常量 一.分析 常量的声明是每一个项目中不可或 ...

随机推荐

  1. 201521123009 《Java程序设计》第11周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集多线程 Q1:互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问 ...

  2. js的原型

    在讲js的原型之前,必须先了解下Object和Function. Object和Function都作为JS的自带函数,Object继承自己,Funtion继承自己,Object和Function互相是 ...

  3. Spring - bean的autowire属性(自动装配)

    当我们要往一个bean的某个属性里注入另外一个bean,我们会使用<property> + <ref/>标签的形式.但是对于大型项目,假设有一个bean A被多个bean引用注 ...

  4. jstl-初步认知

    JSTL是java提供的JSP标签库 1,在项目中加入 jsf-api.jar jsf-impl.jar jstl-1.2.jar 三个包 2, 如何在jsp页面引入标签库 使用 <@tagli ...

  5. Linux 环境下 MySQ导入和导出MySQL的sql文件

    将服务器上的文件导入或导出还需要使用工具传输到本机中,推荐使用winscp,与xshell搭配使用 1 导入数据库 两种方法 .首先建空数据库 mysql>create database abc ...

  6. 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法

    在微软云linux服务器成功配置好mysql.tomcat,通过外部链接却发现一直错误.Mysql 一直提示错误代码2003, tomcat连接一直提示EOF. 反复检查配置都无问题,最后得知是微软云 ...

  7. 如何快速成长?我的java之路!

    由于一些外部的原因,我不得不从自己熟悉的php领域,转战到java战场.我个人觉得还是有些心得吧,不管怎么样,或多或少可能都会有那么些经历的人,和你一起走在这世上!尽管你不知道TA是谁. 其实,转换一 ...

  8. GitHub使用(一) - 新建个人网站

    1.首先进入“仓库Repositories”,点击“新建New”.

  9. append、extend与insert的区别

    最近在自学Python语言,看到向列表增加更多数据时被append(),extend(),insert()方法绕晕了. 作为编程0基础的小白,觉得有必要自己再梳理一遍: 1.append()方法是指在 ...

  10. 经典算法研究系列:二、Dijkstra 算法初探

    July   二零一一年一月 本文主要参考:算法导论 第二版.维基百科. 一.Dijkstra 算法的介绍 Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到 ...