写有用的java业务代码
2020-03-31 本文已影响0人
小王ovo
我对业务代码的一些优化,以及平时写代码的一点思考。
1.使用futuretask优化你的curd
Callable<Object> callable=new Callable<Object>() {
@Override
public Object call() throws Exception {
return a;
}
};
FutureTask<Object> f1=new FutureTask<Object>(callable);
new Thread(f1).start();
当有多条sql需要执行的时候我们应当使用futuretask来优化接口,不是很喜欢框架中的异步注解。还是手撸爽。
2.合理的使用缓存和限流
在一些业务场景当中会有一些公用的变量,这个变量的多次修改和一次修改都是没有差别的,我们应当使用信号量对修改做限制。使用缓存也是一种必须要做的事情了。需要考虑的是一致性问题。(其实这里虽然是对请求作限制,但是我觉得应该说是幂等更合适:)~)
3.对于查询不用索引就说不过去了吧
也可以适当的使用联合索引
4.封装一些api提高你的工作相率
public class MyDataUtils {
public static int compareDate(String DATE1, Date DATE2){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date=df.format(DATE2);
int result=0;
try {
Date date1 = df.parse(DATE1);
Date date2 = df.parse(date);
result=date1.compareTo(date2);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
throw new MyErrMsg("开始时间必须大于等于今天");
}
return result;
}
}
时间,参数校验等等。
5.合理使用lambda
对于lambda,如果调用链超过了5,那么除了炫技一无是处。要是别人接锅了只会想打死你。这里特别吐槽一些疯狂的家伙,非要使用策略加工厂加lambda消除所有if else。
6.不理解就多问,沟通才是最大的成本
一开始拿着原型图就猛干,后来发现和产品想要的不一样,真的是哭了。
7.合理使用单例
双检锁简单粗暴
8.拦截器和过滤器
ps:本来以为每一个都可扩展到一大段,但最终只是写了这一点。总归就是使用多线程,设计模式,缓存,动态代理合理的优化业务代码.无尽的需求迭代是常态,但是我们应当对自己的代码负责。