至2023春以来开发问题阶段性记录总结Part3
至2023春以来开发问题阶段性记录总结Part3
Hi,我是阿昌,记录一下针对2022秋至2023春以来的一些开发问题的记录和一些注意点,菜鸡🐔见笑了哈哈。+3
1、不要在公共模型里面添加默认字段,多人协同开发有可能会导致业务错乱,出现业务问题
当公共模型中某个字段有默认值时,当别的开发人员不知道,会出现业务的错乱异常数据
2、评估管理内存处理,避免服务器OOM,如业务:excel导入
合理的使用内存,有时候可以通过for循环去减少内存使用;或时拆分请求查询数据库信息,不要一次性请求数据库大量信息,导致实力化过多的对象,从而出现OOM等
3、mybatis中if的int类型判断空串会导致条件失效
Int基本类型不会有null的情况,就会出现无法走进
4、查询拆分时,注意拆分后出现的重复问题,改成转set去重再拆分,for (List list : Lists.partition(sysItemIds, 200))
5、尽量不改变方法传进来入参的引用,你不确定外层业务是否还会使用入参的引用
6、创建时间为空时,排序乱序问题,excel导出;
可能不是sql写的有问题,而是异常数据问题的问题,如创建时间为空,导致sql排序每次排序结果为乱序,导出excel导出的数据排序有问题
7、mapstruct的ConvertDecorated自定义装饰器方案@DecoratedWith
8、hashmap的get方法取值计算hash值,若业务组装数据匹配会区分大小写
9、easyExcel支持合并单元格解析
参考链接:https://www.freesion.com/article/65631493377/
10、拆分处理的数据,缓存内存压力,减少等待时间,但需要考虑业务操作的原子性
如拆分for循环更新时,有一个更新出现了失败后,需要评估是否需要使用事物来保持原子性