前言
1.写好注释
-
开发时间太短了,没时间写注释。 -
《重构》那本书说代码即注释。
2.多写单元测试
3.主动重构自己的烂代码
4.代码review很重要
代码review
,可以发现一些代码的漏洞,不好的写法,发现自己写代码的坏毛病,让自己能够快速提升。5.多用explain查看执行计划
explain
关键字查看一下该SQL语句有没有走索引
。6.上线前整理checklist
checklist
。7.写好接口文档
8.接口要提前评估请求量
压力测试
,预估接口的请求量,需要部署多少个服务器节点。限流
,防止别人恶意调用你的接口,导致服务器压力过大。9.接口要做幂等性设计
唯一索引
的方案,更加简单。10.接口参数有调整一定要慎重
11.调用第三方接口要加失败重试
接口超时
的问题。自动重试机制
。12.处理线上数据前,要先备份数据
备份数据
。insert into order_2022121819 select * from `order`;
13.不要轻易删除线上字段
14.要合理设置字段类型和长度
-
尽可能选择占用存储空间小的字段类型,在满足正常业务需求的情况下,从小到大,往上选。 -
如果字符串长度固定,或者差别不大,可以选择char类型。如果字符串长度差别较大,可以选择varchar类型。 -
是否字段,可以选择bit类型。 -
枚举字段,可以选择tinyint类型。 -
主键字段,可以选择bigint类型。 -
金额字段,可以选择decimal类型。 -
时间字段,可以选择timestamp或datetime类型。
15.避免一次性查询太多数据
OOM
的问题。分页设计
。分批调用
,不要一次性根据id集合查询所有数据。16.多线程不一定比单线程快
多线程
一定比使用单线程
快。17.注意事务问题
@Transactional
注解的声明式事务,或者使用TransactionTemplate
的编程式事务。@Transactional
注解的声明式事务,可能会出现事务失效的问题,感兴趣的小伙伴可以看看另一篇文章《聊聊spring事务失效的12种场景,太坑了》。TransactionTemplate
的编程式事务的方式创建事务。18.小数容易丢失精度
double amount2 = 0.03;
System.out.println(amount2 – amount1);
BigDecimal
,避免精度的丢失。BigDecimal amount2 = new BigDecimal(0.03);
System.out.println(amount2.subtract(amount1));
BigDecimal amount2 = BigDecimal.valueOf(0.03);
System.out.println(amount2.subtract(amount1));
19.优先使用批量操作
userMapper.update(user);
}
20.synchronized其实用的不多
synchronized
加锁的考题。分布式锁
。-
数据库悲观锁。 -
基于时间戳或者版本号的乐观锁。 -
使用redis的分布式锁。 -
使用zookeeper的分布式锁。
21.异步思想很重要
异步
。22.Git提交代码要有好习惯
23.善用开源的工具类
List
- > partitionList = Lists.partition(list, 2);
System.out.println(partitionList);
0 条评论