许多工程团队都在努力衡量他们重构工作的有效性。让我们看看可以帮助您衡量重构成功的5个指标。代码重构为开发人员提供了急需的精神休息,我认为许多开发人员都与此相关。整天编写代码要求很高,尤其是如果您每天都在创建新功能。这是一项大量的工作,开发人员通常需要一些空间来思考代码库的整体组织和审查需要改进的地方。这正是代码重构所做的。它为开发人员提供了这种急需的精神休息,并让他们有机会解决与更高级别的代码库相关的问题。然而,这也是根据代码库指南检查代码的好时机。没有代码库是完美的。一个违反指南的小错误会进入“主要”分支。最重要的是,它减少了技术债务。开发人员有机会探索代码库并了解他们未接触过的其他部分或功能。这是代码重构的一个很好的附带好处。然而,许多团队都难以衡量其重构工作的有效性。团队领导或CTO通常需要向管理层汇报。如果没有“硬”数字,就很难证明重构代码库所花费的时间与开发新功能所花费的时间是合理的。对于许多初创公司来说,压力是恒定的。这种持续的压力使得很难证明代码库重构的合理性。本文着眼于可用于衡量代码重构是否成功的不同指标。衡量重构成功的指标您可以实施多个指标来衡量代码库重构的成功与否。您不需要实施所有指标,因为代码重构仍然是一项合乎逻辑的努力。但是,某些指标可以很好地指示重构是否成功。1.开放代码库问题的数量当开放代码库问题的数量越来越多时,这是代码库质量下降的危险信号。但除了作为危险信号之外,它还可以帮助您跟踪重构工作是否成功。您的明显目标是在开始下一个冲刺之前将打开的代码库问题的数量减少到零。您想尽快解决这些问题,因为它们仍然是相对较小的问题。但是,随着您的代码库随着时间的推移而发展,小问题可能会变得复杂且耗时。你想避免这种情况,因为它会让你在时间和成本方面进一步落后。如果您想知道如何跟踪和理解代码库的问题,请尝试StepsizeVSCode和JetBrains扩展。该工具将帮助您:将您的问题连接到代码工具在团队内分享有关代码库中定时炸弹的知识确定问题的优先级并跟踪进度2.代码库中TODO的数量库中看到的TODO太多。这表明事情需要改进,但没有得到积极解决。随着代码库的发展,TODO的上下文可能会丢失,从而难以理解原始问题,更重要的是,难以解决TODO。因此,以这样一种方式组织你的TODO,当你重构时,你可以从你的代码库中删除空闲的TODO,或者你可以查看上下文并在以后更快地解决它们。3.单元测试失败的数量许多代码库都遭受单元测试失败的困扰。只要单元测试失败的百分比保持相对较低,这就不会威胁到代码库的质量。但是,请注意失败测试的数量。这是开始代码重构和衡量代码重构是否成功的危险信号。在开始新的冲刺之前,您希望将失败测试的数量减少到接近于零。4.代码覆盖率代码覆盖率指标与衡量单元测试失败的数量密切相关。但是,要衡量代码重构的成功与否,您还想知道代码库的质量是如何提高的。衡量代码库质量的一种方法是衡量代码覆盖率,因为它告诉您可以在多大程度上信任您的代码库。如果测试编写正确,则更高的代码覆盖率通常会带来更高的代码质量。没有代码库是完美的,但是,请尝试接近100%的代码覆盖率。如果您没有资源用测试完全覆盖您的代码库,请确保覆盖整个代码中最关键的路径。这将帮助您增加对代码的信任。常见陷阱:重构代码时不要忘记编写、更新或更改测试。你不想改进你的代码,而是减少你的代码覆盖率。换句话说,重构和代码测试是齐头并进的。5.测量可重复性测量可重复性不是您应该追求的高级指标。但是,它仍然是重构代码时需要关注的指标。当代码库增长时,人们并不总是完全理解代码库。因此,他们可能不知道辅助库或函数已经存在,并创建一个具有相同功能的新库或函数。同样的情况经常发生在较大代码库中的模块上。首先,尝试识别重复代码并记下位置以衡量重构是否成功。您可以重新访问此列表以衡量在完成代码重构后从代码库中删除了多少行重复代码。您如何使用这些指标来改进您的重构过程?如果您正在考虑重构代码库,请不要在没有计划的情况下介入。您需要为重构过程设定目标和界限,以便更容易衡量成功。首先,您收集在此代码库重构冲刺期间要解决的所有与代码库相关的问题。如果缺少某些票证,请确保对其进行跟踪或创建问题。例如,查看要从代码库中删除的所有TODO。确定要修复的问题后,您可以制定有助于跟踪重构成功的指标。例如,您想要删除三个重复的模块并将代码覆盖率提高15%。现在您已经收集了所有问题并设定了目标,是时候分享您对代码库的了解以及为什么需要解决特定问题了。如果不解决问题,可以说明问题的背景和对项目的影响。这也是分享有关代码库新部分知识的好时机,因此所有开发人员都可以跟上。最后,确定要首先解决的问题的优先级。您将无法在重构周或您设置的任何时间表中完成所有事情。因此,请务必先解决影响最大的组织问题,然后再解决不太重要的问题。要完成代码库重构,请收集所有指标数据并根据您设定的目标对其进行验证。现在是讨论问题出在哪里以及将来如何改进代码库重构过程的好时机。不要期望一切顺利。错误可能会发生,这很好。结语:重构的成功与目的?无论您如何衡量重构的成功,请确保您不使用这些指标来评估程序员的绩效或决定晋升或类似的事情。重构代码旨在尽早解决代码库和组织问题。如果不加以治疗,它们可能会升级为更严重的问题,需要更多的时间和资源来解决。这也是组织代码重构的主要论据之一。在初创公司中,总是存在交付新功能的压力。但是,作为一个团队,有时您必须退后一步来评估代码并重构它以保持其质量。
