Language agnostic 如何解释重构意大利面代码的优势?
我的任务是重构一个充满重复代码、耦合模块(即使是代码作者也害怕更改任何东西,因为他不知道这可能会产生什么影响)和过于复杂的数据库(250多个查询,可以替换为大约20个)的工具 项目客户只知道工具很难维护和更改,但没有技术专长Language agnostic 如何解释重构意大利面代码的优势?,language-agnostic,refactoring,Language Agnostic,Refactoring,我的任务是重构一个充满重复代码、耦合模块(即使是代码作者也害怕更改任何东西,因为他不知道这可能会产生什么影响)和过于复杂的数据库(250多个查询,可以替换为大约20个)的工具 项目客户只知道工具很难维护和更改,但没有技术专长 我如何简单地解释新工具的优点:代码库更小、重用代码、分离组件和遵守代码约定?您几乎回答了自己的问题:) 重构的目的是使代码更容易修改,也就是更便宜。(“维护”只是“更改”的子集。) 就在这里:“名词:对软件内部结构的一种改变,使其更容易理解,并且在不改变其可观察行为的情况下
我如何简单地解释新工具的优点:代码库更小、重用代码、分离组件和遵守代码约定?您几乎回答了自己的问题:) 重构的目的是使代码更容易修改,也就是更便宜。(“维护”只是“更改”的子集。) 就在这里:“名词:对软件内部结构的一种改变,使其更容易理解,并且在不改变其可观察行为的情况下修改更便宜”。“更容易理解”的目的是使修改更便宜。没有人会付钱给程序员,让他们只是坐在那里理解事情,什么也不做 糟糕的代码在很多方面都要花钱:
- 当您需要修复程序中的一个bug或向功能不完善的程序中添加一个功能时,您需要额外的时间来理解更改的影响。时间是要花钱的
- 当你改变你的程序时,你很可能会做得不好:引入一个回归,或者只是部分修复一个bug(如果它是在重复的代码中),或者没有实现你的新特性,如果代码更容易使用的话。所有这些都会降低你的产品质量,这会因为
- 减少销售或(如果是内部工具)减少使用该工具,并导致该工具预期提供的效率损失
- 更多错误修复和其他支持成本
- 由于回归风险或其他变更成本,您可能决定根本不进行某些变更。同样,这会降低产品的质量,这会让你花钱
旁注:您并没有特别提到测试,所以为了完整起见,我应该提到重构意味着自动化测试,这与重构一样,是一项具有成本和收益的投资。如果不进行测试就进行任何重要的重构,您肯定会发疯。您几乎回答了自己的问题:) 重构的目的是使代码更容易修改,也就是更便宜。(“维护”只是“更改”的子集。) 就在这里:“名词:对软件内部结构的一种改变,使其更容易理解,并且在不改变其可观察行为的情况下修改更便宜”。“更容易理解”的目的是使修改更便宜。没有人会付钱给程序员,让他们只是坐在那里理解事情,什么也不做 糟糕的代码在很多方面都要花钱:
- 当您需要修复程序中的一个bug或向功能不完善的程序中添加一个功能时,您需要额外的时间来理解更改的影响。时间是要花钱的
- 当你改变你的程序时,你很可能会做得不好:引入一个回归,或者只是部分修复一个bug(如果它是在重复的代码中),或者没有实现你的新特性,如果代码更容易使用的话。所有这些都会降低你的产品质量,这会因为
- 减少销售或(如果是内部工具)减少使用该工具,并导致该工具预期提供的效率损失
- 更多错误修复和其他支持成本
- 由于回归风险或其他变更成本,您可能决定根本不进行某些变更。同样,这会降低产品的质量,这会让你花钱