重构真的能提高代码质量吗?
与传统观点相反,新的研究发现,想要为了更高效和更具可维护性,而去重组软件代码,我们所花的时间和精力并不一定是值得的。
与传统观点相反,新的研究发现,想要为了更高效和更具可维护性,而去重组软件代码,我们所花的时间和精力并不一定是值得的。
重构软件,也就是,重组现有的源代码,以使其更高效,更具可读性和可维护性,这可能是所有开发人员时不时在做的一件事情。当然,重构背后隐含的假设是,将来的收益——可节省的人力物力,要能大于现在投入的成本——所耗费的时间和努力。然而,新的实验研究表明,情况可能并不像你想像得那样美好,重构或许并不能大幅度地改善软件代码质量,有时候甚至是完全没有起到一点改善作用。
此研究是由研究人员在斯里兰卡完成,近期发表于国际周刊“International Journal of Software Engineering & Applications”上,题目为《An Empirical Evaluation of Impact of Refactoring On Internal and External Measures of Code Quality》。目的是测试常见的重构技术是否真的可以改进外部(例如,代码是不是更易于维护?)和内部(例如,代码行数)两个方面的软件质量。
研究人员选择了一个小型的应用程序(约 4500 行 C# 代码),原先是 Kelaniya 大学的教学人员用于制定日程计划和管理在线文档的应用程序。然后在其代码上实施 10 种常见的重构技术(例如,用子类替换类型码,用多态替换条件语句)。
为了衡量重构对外部软件质量的效果,研究人员从 Kelaniya 大学,挑了一些懂得面向对象编程和 C# 的计算机专业的学生。其中一半学生通过可分析性和可变性评价了重构后的代码,而另一半则去评估未重构的代码。
运行每个代码库 1000 次然后平均结果,来分别衡量重构和非重构代码的执行时间和资源利用。
使用 Visual Studio 分别计算重构和非重构内部代码的软件质量。这些指标是:可维护性指数、时间复杂度、继承深度、类耦合,以及代码行。
下面是这些研究人员得出的主要结论:
- 重构并不能使得代码更易于分析
- 重构并不能使得代码更容易改变
- 重构代码并不能使得代码跑得更快
- 重构代码不会导致资源利用降低
唯一的利好是,有证据表明,重构过的代码的确更易于维护
不过,上述研究结果依然待验证,因为试验对象是一个小样本——一个小型的应用程序和固定的重构技术组。所以,就目前而言,此结果还是别用到实际工作上的好。
本文由 TecHug 分享,英文原文及文中图片来自 www.codeceo.com。
你也许感兴趣的:
- 雷蒙德·陈 旧事新说:当愤怒的客户要求与比尔·盖茨通话时
- 微软否认使用人工智能用Rust语言重写Windows 11
- 讨论:为什么Python能胜出?
- 使用 PostgreSQL 18 实现即时数据库克隆
- 我断开IPv4整整一周,只为理解IPv6过渡机制
- 我在地铁上编程
- Debian 的 Git 迁移计划
- Debian将龙芯LoongArch列为官方支持的架构
- Android对美国外部内容链接引入2-4美元安装费及10-20%分成政策
- 软件控制等级军事标准

你对本文的反应是: