【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。
同一个方法里,多个BankOrderFlow对象...这像“shǐ”一样的代码
下面的 paymentQuery 方法坐落于我们lijianjin系统的LiJianJinPaymentQueryBizService。
这两个bankOrderFlow、orderFlow,... 乱花渐欲迷人眼的赶脚,但其实,这是像“shǐ”一样的代码。
无独有偶,bug来了
在我们的zhongtai-channel-provider, 上周出现并紧急fix了一个bug。竟然也是 此种情况 引发的bug。
先上截图。下图中这段代码,有 3 个 PayPaymentFlow 对象实例:payPaymentFlow、paymentFlow、payFlow。 这命名,与邻居家的三个孩子 大狗、二狗、三狗一样。
让我介绍一下我们紧急fix的bug。↓
我们在做内部重构时,不慎...,直接下面的改动吧。
通过上面的diff,你能看出来发生了什么bug吗?
看不出来的话,看下面fix后的diff,相信你能看出来。
bug是fix掉了。那么,谁又能保证未来不会再出现类似的bug呢?
因此,如何规避这样的bug?也就是说,如何重构呢?
重构要点
一个要点:将复杂的方法拆分为多个更小单元的方法,通过方法的封装来限制变量的作用域。
当看到一些不好的代码时,会发现我还算优秀;当看到优秀的代码时,也才意识到持续学习的重要!--buguge
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/buguge/p/18164391
热门相关:国民女神:重生王牌千金 文娱缔造者 首席的亿万老婆 福慧双全 逍遥小书生