写代码的时候一些注意的事情

日志注释相关

  • 使用log打印日志的时候尽量不要写中文,避免乱码。
  • log打印日志使用占位符。
log.info("This is an example! ===> {}", e);
  • 注解要使用/**xxx*/的格式,要多加注解,并且解释清楚。
  • /**
     * 要多写一些注释呀!
     * 不然以后自己都看不懂自己的代码了!
     * 一定要记住呀!
    **/
    Boolean goBed();
  • 调用二方包时要多记录日志,可以记录一些入参,出参,结果...
log.info("Request XXX service. Request params ===> {}, Request result ===> {}", requestParams, requestResult);

常量相关

  • 常量可以提到Nacos中或者常量类,枚举类中,方便后期维护和修改。写到Nacos中可以不用发版就可以修改常量值。

返回值相关

  • 如果是给别人调用的接口,尽量统一接口返回结果,例如CommonResult类。如果没有返回结果,也要返回一个Boolean值,为了使调用方清楚是否调用成功。
  • 返回值尽量不要用Map,不方便别人维护,可以封装成类返回。

数据库相关

  • 查询数据库中为null的数据时要用 is NULL,千万不能写 = null
    select * from emp where id is Null;
  • 尽量减少与数据库的交互次数,因为与数据库交互很消耗性能。更好的做法是用空间换时间,将所需要的内容一次性查出放到内存(集合)中,然后进行查找等其他操作;或者直接将高频率使用的数据放入到Redis缓存中。
  • 如果有联表查询又有过滤条件的话,可以考虑先过滤在进行联表查询,因为联表查询的性能也很不好。
  • 表名与字段名均要小写,并使用下划线进行拼接。
  • 与数据库交互的时候,要用实体类DO,在service层要用DTO,Controller层与视图交互的时候用VO。但不是绝对的,例如与数据库交互的时候DO不能满足需求,也可以使用DTO来交互。

POM文件 

  • pom.xml文件下方有一个Dependency Analyzer可以对已经引用的依赖及其版本进行全局搜索,如果已经存在所需要的依赖并且版本够用,就不要轻易给依赖升级版本了,容易对项目中其他的功能造成影响。
  • 升级版本时,test环境要用SNAPSHOT方便更改,生产环境要替换成Release,一旦打包不可再修改。

其他但也很重要

  • 查询到的数据都要做非空判断。
  • 写代码要分块,标明每一块的具体含义,同时每个方法不能超过80行,最好控制在二三十行左右。
  • 巧妙的使用return & continue,尽量使用断言的方式(只有if没有esle),减少if/else的存在。
  • 带下划线的方法是废弃或者即将废弃的版本,哪怕现在可以正常使用也不要再用了,因为该方法后续不会再被维护甚至被删掉。
  • 写代码避免头重脚轻,写if/else时,将大头放在else中方便反复阅读以及后续维护。
  • 写代码的时候如果可以不遍历,尽量不要遍历,耗时!如果非要遍历也尽量选择数据少的集合。
  • 能用set就少用list。因为list查找数据使用遍历的方式,时间复杂度为O(n),效率低;而set底层是HashMap,查找的时间复杂度是O(1),速度相对快一些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值