Refactoring 重构的目标?
重构代码的目标是什么?这仅仅是为了增强代码结构吗?这是否为未来的变革铺平了道路?Refactoring 重构的目标?,refactoring,Refactoring,重构代码的目标是什么?这仅仅是为了增强代码结构吗?这是否为未来的变革铺平了道路? 降低单个功能的复杂性-使测试更容易 消除重复代码—减少出错的机会 消除/减少“代码气味” 任何开发人员都更容易理解代码 使其可维护 增加内聚力和减少耦合” 我通常不会仅仅为了减少代码气味,或者让代码更“好”/更易于维护而重构代码。当我需要修复错误时,我会重构代码,我想让代码保持比以前更好的状态。另一个原因是当我想添加功能时,如果不进行重构就很难做到。第三个原因是让代码更易于测试。有时候我通过重构来学习我不懂的代码
- 降低单个功能的复杂性-使测试更容易
- 消除重复代码—减少出错的机会
我通常不会仅仅为了减少代码气味,或者让代码更“好”/更易于维护而重构代码。当我需要修复错误时,我会重构代码,我想让代码保持比以前更好的状态。另一个原因是当我想添加功能时,如果不进行重构就很难做到。第三个原因是让代码更易于测试。有时候我通过重构来学习我不懂的代码:-)在一个非常基本的层面上,目标是改进代码,使其更可读、更少耦合、降低错误率,等等
在另一个层面上,重构是作为BigUpfrontDesign的替代品出现的。在极端编程等环境中使用重构也是一种义务。你每天、每小时都要为你的技术部门支付抵押贷款。再加上集体代码所有权的原则,它还让每个人负责在任何地方重构代码,而不仅仅是自己编写(或共同编写)的代码。重构可以有多重激励:
- 提高代码可读性
- 简化代码结构
- 提高可维护性
- 提高可扩展性
现在,如果您改进了文档、代码的可读性和代码的结构,您也将获得更好的可维护性…当然,当您确信永远不必再接触一段代码时,就不需要重构该代码了 但大多数时候,你必须再次触摸它,因为你必须添加功能、修复bug或优化它
因此,是的,这当然是为未来的变化铺平道路。代码总是在变化。可理解性 更直观、组织良好(考虑因素)的代码更容易理解 正确性 通过更容易理解的代码中的检查更容易识别缺陷。过于复杂、结构不良、Rube Goldberg风格的代码更难检查缺陷。此外,组件高度一致且组件之间松散耦合的组件化代码更容易进行测试。此外,测试中更小、格式良好的位使得测试用例之间的代码覆盖范围重叠更少,从而实现更快、更可靠的测试(这成为一个自我强化的循环,推动测试越来越好)。此外,更直接的代码往往更可预测、更可靠 易于维护和升级 功能完善、质量高、易于理解的通用组件更易于使用、扩展和维护。对系统的许多更改现在更易于进行,因为它们的影响更小,而且如何进行适当的更改更为明显
就代码质量和正确性问题而言,重构代码本身确实有其优点,但重构带来最大回报的是软件设计的维护和改进。在向旧的、分解不好的代码中添加新功能时,通常一个好策略是重构目标代码,然后添加新功能。这通常会比起在不进行重构的情况下添加新功能,我需要更少的开发工作,而且这是一种提高代码库质量的简便方法,而无需进行大量的“空中楼阁”“假设优势重构/重新设计工作很难向管理层证明其合理性。代码重构是观察变化不可避免这一事实的必要条件。它的主要目标是增强当前的代码或设计,使其符合新的功能性或非功能性需求,或使其更能容忍更改 可能需要重构的场景示例:
重构用于支付您的费用。以降低更改成本。一般来说,我只会重构生产代码以重用它或在需要修改时进行重构 例如,出于性能原因,我需要更新一个函数,但没有一个简单的测试接口,因此我将其重构为一个单独的模块,该模块可以更容易地进行单元测试,然后进行更改,以便重新运行测试,并显示它与以前一样工作 重构不需要更改的代码会导致灾难;它肯定会引入bug 重构的目标 逾越节 说真的,我这样做是为了:
- 避免代码重复(遵循以下原则)
- 简化代码(删除不必要的特殊复杂性,请参阅)
- 删除旧的/过时的/不推荐使用的代码(一旦旧代码被替换,就会清除废物)