能使用简单类型达到目的的地方绝不使用复杂类型

以下都是偶们经理说滴~
Long是java实现的复杂类型,long是java虚拟机提供的原始类型。 任何Long类型的比较和运算实际上都要经过拆箱转换成原始类型方能进行,而long类型的运算是直接经过寄存器,运算速度是Long的十几倍甚至是几十倍(参看我写的一个简单的对比测试:com.everbridge.platform.dashboard.test.FunnyTest)。
    所以,很多java专家的意见都是,能使用简单类型达到目的的地方绝不使用复杂类型。其实,这也是我们编程需要遵行的原则,尽量用简单,可复用的方法解决问题,避免过度设计
    遗憾的是,咱们现在的代码里面无论是前端还是后端都有很多绕弯的实现和逻辑。咱们开发已经进入bug fix的阶段,这是一个很好的改进代码,提高质量的机会,请大家在fix bug的时候,尝试以下几个步骤:

    碰到一个bug,不要急于修改,先整体思考一下之前的实现逻辑,是否可以截弯取直,化繁为简(比如,在咱们的service中,有许多的service接口实际上只是wrap了另外一个service的实现,没用任何必要,service的接口本来就是在controller层聚合使用的,wrap到一个service里面除了增加复杂性,貌似没有其它的任何好处)
    看看别人的代码里面有没有类似的场景,别人是如何处理的
    在想想bug里面提到的代码没有覆盖到的情况是否还有其它的可能性
    尽可能在修改bug时补一些之前没有的单元测试,保证对你的service接口进行单元测试
    清理你代码里面的垃圾,包括:无用变量声明,未用到却注入的依赖,不再使用的private方法等
    使用统一的模板格式化代码(参看:https://github.com/Everbridge/omnidocs/tree/master/platform-doc/codetemplate),干净清爽的代码会给你带来好的心情
    对于之前不好的实现,不一致的接口或者有歧义的接口予以重构并通过单元测试来保证修改的正确性


    我们的目的不是单纯的修改bug,而是扎实的提高代码质量,提高产品的稳定性,可用性和性能,最终给用户带来良好的体验。

猜你喜欢

转载自865325772.iteye.com/blog/1632330