好习惯

2020-11-30  本文已影响0人  Primary_0c73

1. 修改完代码,记得自测一下

2. 方法入参尽量都检验

3. 修改老接口的时候,思考接口的兼容性。

4.对于复杂的代码逻辑,添加清楚的注释

5. 使用完IO资源流,需要关闭

6.代码采取措施避免运行时错误(如数组边界溢出,被零除等)

        :String name = list.get(1).getName(); //list可能越界,因为不一定有2个元素哈

7.尽量不在循环里远程调用、或者数据库操作,优先考虑批量进行。

8.写完代码,脑洞一下多线程执行会怎样,注意并发一致性问题

9.获取对象的属性,先判断对象是否为空

10.多线程异步优先考虑恰当的线程池,而不是new thread,同时考虑线程池是否隔离

11. 手动写完代码业务的SQL,先拿去数据库跑一下,同时也explain看下执行计划。

        :explain select * from user where userid =10086 or age =18;

12.调用第三方接口,需要考虑异常处理,安全性,超时重试这几个点。

13.接口需要考虑幂等性

14. 多线程情况下,考虑线性安全问题

15.主从延迟问题考虑

16.使用缓存的时候,考虑缓存跟DB的一致性,还有(缓存穿透、缓存雪崩和缓存击穿)

        :缓存雪崩:指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。

        缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。

        缓存击穿:指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量的请求打到db。

上一篇下一篇

猜你喜欢

热点阅读