代码质量之持续提升

一、重构的作用


        我曾经单纯的认为修改少就意味着错误少,所以习惯性在原有逻辑上打补丁,可错误往往就是因为那不起眼的修改引起的。聪明的人警醒我,我存在认知错误,因为添加一个新功能的最好办法是,先修改现有的代码,使逻辑更加容易被理解,使新功能容易被加入,避免设计腐败。


二、代码的坏味道


        令我印象最深的是项目中大量的过度耦合的消息链。


        内容校验链的逻辑,都使用本地线程存储ThreadLocalLocalT对象和自定义Result对象在消息链中进行传递变量,中间任何一个节点都有可能修改全局变量,使得一个类与另外一个类有太多合作,甚至注释上写着,某个类必须依赖前面的类才行,不能调整执行顺序。


        实际上它们并不是必须按照严格的顺序执行的,如果重构成基本校验和业务校验两个消息链,业务校验的参数依赖于基本校验的返回结果,业务校验链中不允许修改全局变量,就不至于过分耦合了。而重构前,当我想把消息链中某些执行器修改成异步执行时,困难重重。因为它违背了可扩展性设计理念,无法满足无状态的约束。


        其他关于代码的坏味道就不一一说明了,常见的有过多的参数列表、重复的代码(功能语义重复、执行逻辑重复、实现逻辑重复)、一个类受多种变化的影响、一种变化引发多个类相应修改、数据泥团(很多地方出现相同的三四项数据)、过度设计、令人迷惑的暂时字段。


三、重构手法


        重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范这些理论。比如重新组织数据、重新组织函数、在对象之间搬移特性,更加具体的类似说明有,提炼函数、引入解释性变量、移除对参数的赋值、隐藏“委托关系”等等。


四、总结

最后,我们应该在软件演进过程中持续进行重构,比如添加功能、修补错误、复审代码时,我们都进行一系列的微操作重构,以使得软件能以良好的状态演进,并且不影响原有功能的正常运作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值