> 出处:[编程派](http://codingpy.com/article/the-little-printf-chapter03/)
> 原文:[http://ferd.ca/the-little-printf.html](http://ferd.ca/the-little-printf.html)
![](https://box.kancloud.cn/2016-01-05_568b3f74823a4.jpg)
> 小Printf刚开虽然只能写一写简单的程序,但是随着自己的水平慢慢提升,也尝试开发了一个较为大型的系统,使用了多种模块。但是,毕竟还是太年轻,很多问题没有处理好,导致程序不断崩溃。认识到了自己的不足,他决定走出去,向偌大的软件世界学习、求助。 - [上一章](http://codingpy.com/article/story-of-little-printf-chapter2/)
我很快就弄清楚了这个小家伙目前的成果。他的代码仓库里面只有一些小程序,带有表格的简单网页以及一些命令行脚本。它们都没有什么出彩的地方,创建之后,也会很快被删除。
后来,他开始开发一个更大的程序,这个程序用到了多个模块。它需要使用套接字,访问磁盘,并与真正的数据库进行交互。当程序第一次构建完并成功运行的时候,小Printf高兴地跳了起来。但是这个程序还不够好。
它需要进行重构,编写更好的测试脚本、文档、lint检查和分析。程序运行一段时间之后,一天早上突然就崩溃了。
然后,又不断出现崩溃的情况。
程序的设置是错误的,日志文件没有轮转(rotate),磁盘读写速度不稳定,网络也会时不时中断,总是会出现各种故障,程序编码也被弄混了,数据库没有定期清理,导致数据库交易挂死;证书最终过期,不断出现各种通用漏洞(CVE)。
![](https://box.kancloud.cn/2016-01-05_568b3f7496842.png)
总之,他的那个程序最后变得一团糟。
他告诉我说:“看来我还什么都不懂!我本应该满足完自己的需求就好了。但是由于编写了一个不错的系统,我慢慢地自大,我花了那么多时间去打补丁,甚至是已经抵消掉了程序为我节省的时间。”
一天早上,他决定离开自己的办公室。“再见了”,他对着办公室说道。他要走出去,看看软件世界除了自己乱糟糟的服务器之外,都有着什么精彩之处。
他离开之后,原来那个程序的日志会越积越大,直到硬盘空间被耗尽。