无情地重建或建造一个扔掉?

Pit*_*rou 23 refactoring

在使用新的系统概念或新技术的情况下,必须建立一个可以扔掉的系统,因为即使是最好的规划也不是那么无所不知,以至于第一次就做好了.因此计划抛弃一个; 无论如何,你会的.

- 弗雷德布鲁克斯,神话人月 [强调我的]

建立一个扔掉.这就是他们告诉我的.然后他们告诉我,我们现在都很敏捷,所以我们应该无情地重构.是什么赋予了?

是不是总是更好的重构我的方式走出困境?如果没有,任何人都可以建议一个经验法则来帮助我决定何时坚持下去,何时放弃并重新开始?

emk*_*emk 11

如果您正在进行测试驱动开发,那么您可以从几乎任何麻烦中重构出来.我毫不费力地改变了主要的设计决策,并拯救了十年前的代码库.

唯一的例外是当您发现您的架构从始至终完全错误时.例如,如果您使用线程编写应用程序,但您发现需要一堆异步状态机.那时,继续扔掉第一稿.


小智 10

早点扔掉,稍后重构

对于小型系统来说,扔掉是可以的,但是如果系统的规模很大,那么你就没有资源这么做了.

但是,您可以创建一个小型试验项目,该项目仅实现实际项目的非常重要的功能.经过一些试验和错误以及学习和丢弃的东西,你最终得到了一个坚实的核心和对实际项目更好的理解.然后,通过添加所需的所有功能,让项目的大小增加.但是一旦你到达那里,你就无法丢掉核心.只有重构.


Chr*_*rch 5

如果你是无情的,那么重构的最终结果将非常接近于你从头开始重建时所获得的结果,但是你不会在这个过程中遇到非工作系统.