重构可以带来什么好处

2022-02-06  本文已影响0人  等你足够强了再说吧

重构可以让代码更整洁,更易于理解和维护。代码味道(Code Smells)的辨别需要实践和经验:设计不良的特征说明代码存在更深层次的问题。工具可以帮助我们逐步重构,并防止破坏代码。

代码坏味道只是一种表象,它通常对应于系统中更深层次的问题。
如果重视不够,没有适当地维护或改进代码,那么代码质量就会下降。

代码坏味道示例:

发散式变化(Divergent Change)
发散式变化(Divergent Change) 类似于 霰弹式修改(Shotgun Surgery) ,但实际上完全不同。发散式变化(Divergent Change) 在一个类中修改多处。霰弹式修改(Shotgun Surgery)指的是同时对多个类进行单一的修改。
特征
你发现你想要修改一个函数,却必须要同时修改许多不相关的函数。例如,当你想要添加一个新的产品类型时,你需要同步修改对产品进行查找、显示、排序的函数。
问题原因
通常,这种发散式修改是由于编程结构不合理或者“复制-粘贴式编程”。
解决办法
运用 提炼类(Extract Class) 拆分类的行为。
如果不同的类有相同的行为,你可以考虑通过继承来合并类(提炼超类(Extract Superclass) 和 提炼子类(Extract Subclass))。

收益

  • 提高代码组织结构
  • 减少重复代码
    重构方法说明
    提炼类(Extract Class)
  • 问题
    某个类做了不止一件事。
    解决
    建立一个新类,将相关的字段和函数从旧类搬移到新类。
    提炼超类(Extract Superclass)
  • 问题
    两个类有相似特性。
    解决
    为这两个类建立一个超类,将相同特性移至超类。
    提炼子类(Extract Subclass)
  • 问题
    一个类中有些特性仅用于特定场景。
    解决
    创建一个子类,并将用于特殊场景的特性置入其中。
重构可以带来什么好处?

重构的目标是更整洁的代码,就是说,重构旨在让代码更容易理解,降低变更成本

什么时候应该重构?什么时候不应该?

Refactoring and Code Smells – A Journey Toward Cleaner Code
https://blog.csdn.net/cpongo2ppp1/article/details/89019521

上一篇 下一篇

猜你喜欢

热点阅读