C++ 重构技巧

在这里插入图片描述多年前,当 C++ 还不够成熟的时候,全球代码库很小,我们可以轻松地阅读、审核代码,然后将其用于构建项目,产生无限可能。或许这种情况可能从未出现,但我们可以想象一下,如果程序虽然简短简单,但很完整,不需要扩展功能。这种情况下,可能没必要进行代码重构。然而,如果需要检查或更新代码库,无论是扩展代码库,还是基于不同语言改进代码库,亦或是仅为了检查效率而审核代码库,重构代码都很有必要。

重构代码的原理是在不改变代码的前提下改进现有代码。实质上,就是在提高设计和整体可读性的同时,确保功能完好。代码重构提高了效率、可读性、可维护性和可扩展性。让我们从语法和语义两个方面进行简单的补充说明。

重构为何如此重要?

重构的目的在于使代码更具可维护性。通过提高可读性,使故障诊断和调试变得更简单。此外,对于需要完成新增功能、平台迁移或采用编程语言最新和最重要功能的新手人员,重构能够减轻他们的大量推演工作。

切记,随着新功能的添加,内聚性会降低。内聚性指的是模块各组件之间的关联程度,一般而言,功能应具有高度内聚性。添加一个新功能可以提高多功能性,但它不是一个高度集中的函数或类,而是更广泛和不集中。而重构的目的之一就是提高内聚性。

尽管严格来说,代码重构并非用于清除漏洞,但通过重构,确实可以发现漏洞。例如,当几乎相同的代码块仅略有不同时,细微的差异并不总是像复制粘贴错误那样有意为之。代码重构是预防性维护的重要一步,有助于为未来的开发人员明确遗留功能。

重构的另一重要需求是准备新功能的代码库。需要添加新功能时,一种很好的方式就是先对代码进行必要变更,以便引入新功能,而不改变实际运行。因此,我们可以检查回归,确保代码已准备就绪,可引入新功能,但功能仍可正常运行。接下来,就可以引入新功能。这可能需要改变原先的测试,因为系统行为可能随新功能的变化而改变。将重构代码作为第一步,可以有效降低功能扩展所带来的风险。

我们应在何时重构?

理想情况下,重构应在构建现有代码库之前完成。另一方面,也许您想对遗留的 C++ 代码库进行现代化改造。在任何情况下,当您处理用于添加新功能或更新现有功能的代码时,它提供了清理现有功能的绝佳机会。尤其是,对于那些不熟悉项目的人来说,这是了解已有内容的绝佳时机。重构工作不仅会改善项目(至少在可读性方面),而且会使开发人员在需要进行下一组增强时更加容易。

代码异味

术语代码异味是指可以快速发现的东西,通常对应于代码中更深层次的问题。然而,需要切记的重要一点就是,代码异味通常是问题的一个指标,而不是问题本身。此外,它并不总是表示存在问题。一个很好的例子是有一个特别长的函数。它可能看起来可疑,并最终指向一个隐藏着细微缺陷的区域。也就是说,拥有一个长函数本身并不是一个错误。

还有一种观点认为,只要程序员看到有改进的机会,就应该进行重构。因此,当他们察觉到问题时,就应采取行动。事实上,有人建议,这不应该是一项有计划的任务,而应是一项例行的工作,以确保当前的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值