188app彩票iosRefactoringCringely

2003年6月3

最近的一次Robert Cringely的作品最近在重构社区引起了小小的轰动,因为他批评了重构。188app彩票ios菲利普总结了人们的反应188app彩票ios重构邮件列表用一个异常克制的“……”他听起来就像个‘无神论者’,只会给自己根本不想读的书写评论。”

当然,我们并不清楚Cringely对重构有多少理解,尽管他确实理解重构是一种保持行为的转换过程的关键点。188app彩票ios他所做的是强调了一些不恰当使用重构的方式。188app彩票ios

一种误用是重构不会改变的代码。188app彩票ios重构的全部意义在于它改进了现有代码的设188app彩票ios计。设计良好的代码的价值在于它更容易更改。因此,您可以重构您希望将来更改的代码。重构代码不可能是稳定的。188app彩票ios

另一个例子是他的一个重构团队,将其他团队的代码进行重构。188app彩票ios这是我愿意花钱避免的“服务”。程序员应该只重构他们自己的代码,而不是去搞其他的东西。XP团队使用集体代码所有权,这鼓励任何人重构团队代码库中的任何代码,但这只适用于该团队的代码。一个团队在不告诉任何人的情况下对其他团队的代码进行重构的想法肯定不是我所推荐188app彩票ios的。

最后,他抱怨重构被用来覆盖任何形式的代码更改。188app彩票ios和其他人一样,我百分之百同意他的观点。人们把重构当作重构的同义词,这一直是我最讨厌的事情之一。188app彩票ios188app彩票ios重构是一个非常特殊的过程,它使用一系列保持语义的小转换来更改代码库。这是一个非常特殊和严格的过程。重构代码还有其他的方法,不管有益与否,这些都不是重构。188app彩票ios

所以总的来说,我同意Cringely说的很多话。这是真的,邮件列表上的评论也是真的。总的来说,这种烦恼是关于Cringely在急切地指责时尚时错误地重构的感觉。188app彩票ios

我与Cringely分道扬镳的地方是他的观点,他认为80%的重构都是浪费时间,软件经理应该停止重构以节省资金。188app彩票ios重构的要点在于改进设计可以188app彩票ios使更改变得更容易,因此重构可以提高生产率。当然,程序员需要判断重构工作是否有回报,而这不是您可以轻松量化的东西。188app彩票ios但是一次又一次地,我看到人们浪费时间去处理那些带有补丁的设计糟糕的代码,这只会让情况变得更糟。188app彩票ios重构是一种摆脱这种特殊的死亡螺旋的方法——这就是为什么我认为它是一种非常有价值的技术。