title: 为什么软件开发需要重构？
desc: 经验上，一开始的设计总是会有问题的。
topic: 软件开发
content: 举个例子。假设构建一个复杂系统需要考虑10点。由于人本身的局限，你肯定会做错其中的6点，当然这6点并不影响第一版的发布。然后，你如何修正这6点？ 你不能重写系统。因为重写系统你还会做错6点，虽然可能是不同的6点。你不能在增加系统功能的同时修正这6点，因为增加一个功能，就会再增加比如说5点要考虑的东西，这个过程中你又会做错3点。当你不增加新功能，又试图修复这6点中的某一个或者几个，这个过程就是重构。重构并
answerer_tags: Adobe 程序员