vue 页面重构工作
研究人员发现,重构似乎并不能使代码易于理解或更改 ,甚至不能使代码更清晰(通过循环复杂度,继承深度,类耦合或代码行来衡量)。
但是,正如其他人所讨论的那样 ,这项研究存在严重缺陷。 它似乎是由不了解如何正确进行重构的人设计的:
- 研究人员基于OO代码质量模型,选择了10种“高影响力”重构技术(来自Shatnawi和Li的2011年研究 ),该模型测量了可重用性,灵活性,可扩展性和有效性(“设计能够达到的程度)。使用OO设计概念和技术来实现所需的功能和行为”,无论其含义是什么),但具体不包括可理解性 。 然后,他们发现重构后的代码显然难以理解或修复。 嗯,这应该是一个惊喜吗?重构旨在使代码更具可扩展性,可重用性和灵活性。 在许多情况下,这实际上会使代码变得不那么简单,更难以理解。 灵活性,可扩展性和可重用性通常是以简化为代价的,需要额外的脚手架和抽象。 这些是长期投资,旨在偿还系统的整个生命周期–在研究允许的几个小时内无法衡量的水平。这些技术清单中没有包括常见的明显有用的重构。使代码更简单易懂,例如Extract Class和Extract Method(这是影响最大的两个重构,根据Alshehri和Benedicenti的研究,2014年 )提取变量,移动方法,更改方法签名,重命名任何内容,…[在此处插入您自己的其他有用重构的清单]。
- 没有证据,也没有理由相信,已经完成了重构工作。 大概有人在Visual Studio中输入了一些重构命令,并且代码“正确地重构了”。
- 该研究旨在衡量重构是否使代码更易于更改。 但是他们尝试通过评估学生是否能够找到并修复已插入到代码中的错误来做到这一点–与其说是更改,不如说是更多地了解代码。
- 代码库(4500行)和研究规模(两组,每组10名学生)都太小了而没有意义,并且学生没有足够的时间做有意义的工作:5分钟阅读代码,30分钟回答一些问题90分钟的时间来尝试查找和修复一些错误。
- 正如研究人员指出的那样,试图理解代码的开发人员是没有经验的。 尚不清楚即使正确地重构了代码,他们是否也能够理解代码并使用它。
但是研究确实指出了重构的一些重要局限性以及如何完成重构。
好的重构需要时间
正确地重构代码需要花费经验和时间。 是时候了解代码了。 是时候了解在什么情况下应该使用哪些重构了。 是时候学习如何正确使用重构工具了。 是时候学习多少重构就足够了。 当然还有时间把工作做好。
不熟悉语言,设计和问题域,并且以前没有通过重构工作的人不会做得很好。
重构是自私的
重构时,一切都与您有关。 您以某种方式重构代码,以使其更容易理解,并且应该使将来更容易更改。 但这并不一定意味着其他人更容易理解和更改代码。
在进行一些基本的, 实用的重构时 ,很难出错。 但是,使某些程序员感到满意的更深层次的结构更改,例如重构为模式或其他“大重构”或“ 大规模重构 ”更改,也会使代码更难以为其他程序所理解和使用,尤其是在仅工作时。部分完成(通常是在意图良好,雄心勃勃的根管重构工作中发生)。
在这项研究中,研究人员认为他们试图通过使代码更具扩展性,可重用性和灵活性来使代码更好。 但是他们没有考虑学生的需求。 而且他们没有遵循重构的主要指令:
始终从重构开始以了解。 如果您没有使代码更简单易懂,那就错了。
具有讽刺意味的是,研究中的学生应该用原始代码以及“重构代码”来做的事是首先对其进行重构,以便他们能够理解。 那本来可以进行更有趣,更有用的研究。
重构工程
毫无疑问,重构(正确完成)将使代码更易于理解,更可维护并且更易于更改。 但是您需要正确地做。
翻译自: https://www.javacodegeeks.com/2015/03/making-refactoring-work.html
vue 页面重构工作