首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码质量之持续提升

代码质量之持续提升

作者头像
公众号_松华说
发布2020-01-14 18:09:41
3710
发布2020-01-14 18:09:41
举报
文章被收录于专栏:松华说松华说松华说

一、重构的作用

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

二、代码的坏味道

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

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

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

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

三、重构手法

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

四、总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松华说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档