# 开发第一课-代码规范!
# 代码不规范,亲人两行泪!
代码不规范,亲人两行泪!
# 1.声明常量
public static final String XX = "";
//1.一般来说static和final是同时出现的.因为,static后,此值为常量,伴随程序整个生命周期,而单纯final,每次使用需要再次创建→垃圾回收.很消耗性能.
//2.一个简单地修饰,修饰符应当满足如下顺序
Annotations
public
protected
private
-------------
abstract
static
-------------
final
transient
volatile
synchronized
native
strictfp
# 2.局部变量返回
错误:
DTO dto = service.dosomething(xxx);
return dto;
正确:
return service.dosomething(xxx);
//减少一次开销.
# 3.相同常量返回值
//错误
public void run() {
prepare("action1"); // Noncompliant - "action1" is duplicated 3 times
execute("action1");
release("action1");
}
//正确
private static final String ACTION_1 = "action1"; // Compliant
public void run() {
prepare(ACTION_1); // Compliant
execute(ACTION_1);
release(ACTION_1);
}
# 4.包路径命名规范
错误:
package com.xxx.xxx.aaaBbb.controller;
正确:
package com.xxx.xxx.aaa.bbb.controller;
//应当是纯小写的,如果一个词无法概括,那么应该创建两层包路径
# 写代码常需要注意的点!
# 1.领域服务属于领域层,因此他并不了解应用层中的类.
领域是最核心的,所有此领域内核心的业务都在这里,他只依赖于common中一些公共等.
# 2.查询结果为null该如何返回.
如果是query**ById,查询结果是什么就返回什么,null就是null,需不需要抛异常那是业务的事.
如果是queryList,查询结果是null,可以返回new ArrayList,但是每次会创建个新的,如果节约性能可以返回
Collections.emptyList()/Collections.emptyMap()
他实际上就是public static final List EMPTY_LIST = new EmptyList<>();
,但是要注意的事,这个list只可以遍历,如果进行操作则会报错.
# 3.远程/服务间 调用注意事项.
有个业务A,其中要去另一个服务C去查询些信息.A是不应该直接去查询的,而是应该通过自己领域内的某个接口B,这个B的实现去给和C打交道,C干了什么无所谓,只有A和B商量好,对象内容是什么就好,剩下的由B去操作,查询后转化到A要求的对象.这样,A,C解耦,一旦发生变化,重新实现个新的接口即可,业务无需变更.
← java底层基础知识 java基础 →