记录自己工作中的一点小经验,有不足的地方请指正.
1.调第三方的的服务的时候切记不能直接调用,为了扩展性要使用自己定义封装.
例子:我要使用支付宝的sdk调用支付宝的支付,那么为了让支付宝的SDK不侵染业务代码,那么就应该在上层再封装一层,保证自己业务的代码中不出现其他的方的代码.
2.服务封装要尽可能确保只为一个层服务,尽量减少跨层级调用,比如controller层就应该避免调用dao层,而是调用service层.
3.某一个方法无关状态,且复用性高的话最好写成静态类调用方式.语义清晰,调用方便.
4.接手某一个业务时,最好先画出该业务的流程图,设计出大概的代码结构后再去写代码,这样虽然前期成本高,但是综合来看的话最节省时间和精力.
5.业务性的代码怎么安全怎么写,在安全的基础上适当保证代码简洁.比如simpleDateFormat是线程不安全的,最简单的做法就是在需要的时候new一个,在业务性的代码中不要使用ThreadLocal这些东西进行优化,这样会增加CR成本.
6.对于工作中出现的一些在他人帮助下解决的问题,自己要想办法复现,然后尝试自己独立解决.
7.updateXXX 不应该出现在 XXXService 里,因为不同的业务流程不同导致update的原因可能很多,这样就带来了无谓的复杂度,该操作应该放在DAO层,Service 层的功能是做某个逻辑,而不是做某个数据操作。职责不一样的.所谓的Service层复用指的是业务操作复用,而不是简单的代码复用.
8.对于和第三方服务商服务交互的报文信息尽可能的全部打出来,避免以后因为某业务撕逼.这很重要!
9.数据库经常有一些extend字段,对于这些字段对应DO提供String映射,在DTO中提供HashMap映射,因为该字段可能存出多种类型数据.