一、接口篇
1、接口请求参数对象序列化,查询参数中携带分页、排序条件;
2、接口返回数据进行分页处理;
3、如遇接口超时问题可考虑异步处理解决方案或优化接口请求、返回参数,如去重;
4、对外提供的接口注意考虑被重复调用后的解决方案;
5、接口交互过程中若无数据,可以不调或传空值,建议传空值;
6、调用某个接口无服务可能原因:项目未启动或崩溃、项目包不是最新的;
7、接口方法要注释:方法功能、入参、出参;
8、有中文的地方注意生僻字和特殊字符,度量单位是字节还是字符;
9、接口请求异常处理:同步超时——抛出异常并返回异常提示,异步超时——指定次数重试
二、异常处理篇
1、区分业务异常和系统异常,try catch后尽量统一异常抛出,以便监控运维;
2、多线程场景下注意在主线程捕获异常;
三、页面设计篇
1、模糊查询用输入框;
2、新增页面输入尽量用下拉框;
3、输入框注意是否可以是特殊字符;
四、爬坑篇
1、尽量避免在循环中做如下操作:(可借助内存批量操作)
(1)调用其他接口(尤其是远程调用);
(2)操作数据库(尤其是提交事务);
(3)调用加锁方法;
2、注意数据结构的合理使用,用完的对象及时释放(尤其是list、map等容器)
(1)查找:如contains方法,尽量使用hashSet/hashMap;
(2) 遍历:ArrayList;
(3)去重:Set
3、项目部署后注意日志留存时间,以免磁盘空间不足;
4、多张表中相同字段注意保持长度一致,避免出现入库失败;
5、字符串处理注意:
英文:空格、大小写
数字:空格、左补0、小数
6、foreach的使用场景:循环条件<1000个
若数据量太大可设置batchSize分批使用batch模式提交
注意xml中写sql不能有分号;
7、BigDecimal divide注意考虑无尽小数的情况。