编程规范总结
业务层面的AOP方法必须打印日志,标明类以及方法
原因:AOP带来方便性的时候,同样造成了代码的碎片化,多个AOP之间相互影响导致异常或者错误是非常难追溯的,因此在开发的过程中AOP方法必须打印日志标明程序所执行的方法。
Service层所有public方法必须通过我注入自身方式调用
原因:项目采用cglib实现的AOP,如果使用this的方式调用类中方法将不会触发AOP逻辑,可能会给业务带来不可预知的影响。
所有第三方调用入口方案必须打印日志,记录入参、返回以及执行时间
原因:第三方调用往往是性能问题或者bug的高发区,通过完善的日志记录可以准确定位性能与业务问题,方便后续错误排查。
数据库事务的新增/修改操作时, 如果涉及到锁,则必须按照同样的顺序进行加锁操作。获取锁的顺序必须优先底层服务,再高层服务。
原因:如果不限制相同的加锁顺序,有可能会造成线程死锁;由于底层服务通常被多个高层服务依赖,调用的频率也越高,优先加锁可以预防链接持有一堆高层锁并等待底层锁的情况发生。