用什么标准来确定是否重构代码片段?

时间:2016-07-18 17:17:11

标签: refactoring communication

重构代码通常是应用更好的适应模式,应用编码约定或提高性能的问题。另一方面,重构需要花费时间并且会引入包含新错误的风险。

应该使用什么标准来确定是否重构代码单元?

我的猜测是:

  • 测试覆盖率有多好?覆盖的代码越多,重构可能产生的副作用就越小。
  • 代码有多重要?它越重要,错误的影响就越大。
  • 重构的收益有多大?这似乎非常主观。即使原因是性能,较慢的版本可能更易于维护或更容易理解。

还需要评估哪些其他方面,是否有用于确定此问题的公式或系统?我正在寻找科学或至少系统的方法。

编辑:我认为这个问题与我实际想知道的有点不同。更确切地说:一旦找到可能的代码味道,您如何确定优先级并进行通信?是什么让一个重构比另一个更重要/更紧急?

2 个答案:

答案 0 :(得分:1)

当您应该进行重构时,有许多不同的情况和原因。例如,你的方法做了很多事情。如果方法做了很多事情,那么测试就很困难,所以你需要分解成更小更简单的方法。

通常你应该保持一个班只负责一件事,如果不是,那么就是重构的时候了。

此外,如果方法有很多参数,那么可能你的方法是错误的类,或者可能是以其他方式进行优化。

如果你有很多if-else条件,那么你可能应该采取一些状态/策略模式来消除if-else。

在很多情况下你应该开始进行重构,最好的是首先阅读“重构马丁福勒”一书。在本书中,他涵盖了很多情况,我强烈推荐它。

答案 1 :(得分:0)

当业务需求发生变化并且很难将新的软件行为纳入代码库时,这是重构的主要标准。 目前,它成为高优先级,因为它将阻止我们实施所需的更改。

  

首先要容易更改,而不是容易更改;)

何时重构:

  • 很难更改-太多地方需要修改;
  • 测试中的安排部分很大;
  • 存在代码气味;
  • 实施有很多依赖性;
  • 通用设计模式可以替代自定义解决方案;
  • 无法理解源代码时;


至于何时不重构,我可能会说,为没有经过验证的产品市场适合度的初创公司编写代码时。您的项目可能很快就会结束,因此在使其投入使用之前,使其在技术上具有可扩展性是什么。