写有用的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:本来以为每一个都可扩展到一大段,但最终只是写了这一点。总归就是使用多线程,设计模式,缓存,动态代理合理的优化业务代码.无尽的需求迭代是常态,但是我们应当对自己的代码负责。

上一篇下一篇

猜你喜欢

热点阅读