遗留代码
---

与我们生活息息相关的很多软件里满是错误、脆弱的代码，并且难以扩展。这就是我们说的“遗留代码”。

相信你也经常看到某某网站的架构之路，会发现其中一个很有趣的过程就是他们会把之前的架构抛弃掉。接着，他们又做了一个这样的系统，然后过些年这个系统又被重做了。究其原因，会发现这个架构是在几年前设计的。在几年前，他是非常好的架构。但是随着时间的演变，他还是几年前的架构。这是为什么呢？

###遗留代码

什么是遗留代码？

> 没有自动化测试的代码就是遗留代码，不管它是十年前写的，还是昨天写的。

从一个新手程序员到一个老鸟，我们的编程水平都在不断增加。但是我们过去写的代码一直都在那里，我们一直都没有足够的勇气去动它们。因为我们知道如果一不小心改错了什么，就会导致一些意外的 Bug。这些 Bug 可能会对我们的编程生涯造成一些影响。

我们不知道这样做的后果，是因为我们没有对原来的代码进行测试。如果代码都是经过测试的，那么我们在修改中出的错，都会在测试中加以体现。长此以往，没有人敢去修改这些代码。

既然它在旧的系统中工作得很好，那么我们就没有理由去修改它们。当有新的需求出现时，我们就可以重新设计一个新的系统。
