前 言
程序员好比运动员,要想在竞技场上获胜,需要在训练场里长期刻苦地练习技艺。
程序员好比士兵,要想在短兵相接的白刃战中取胜,需要在练兵场上长期刻苦地练习格斗。
程序员好比调酒师,要想用炫目的技艺为客人花式调酒,需要在业余时间长期练习抛瓶。
运动员与和平年代的士兵有大量的时间用于训练。但绝大多数程序员所在的软件公司,在一个接着一个的项目进度的压力下,无法提供大量的时间来供程序员练习,而很多程序员又不愿意在下班后再碰代码。如此一来,程序员们就成了一直在竞技场上比赛的运动员,一直在敌人面前搏斗的士兵,和一直在客人面前拋瓶的调酒师,他们没有时间练习。
这样不做练习的程序员,只能把在练习过程中所犯的错误都留在了公司的代码库里,成为了烂代码。已有的烂代码延长了给软件添加新功能和修复bug的时间,带来更大的进度压力,这就导致利用工作时间练习的机会更少了,进而在代码库里留下更多的练习时所犯的错误,形成了更多的烂代码。如此往复,万劫不复。
如此说来,程序员应该像调酒师那样,上班时间努力工作,下班时间操练手艺。
编程是一门手艺。手艺是自己的,如果在公司领导的支持下能在上班时练习固然很好,但若条件不具备,那么就在下班时自己练。其实这也不吃亏,艺多不压身。
本书就是为程序员练习编程这门手艺而撰写的。
目 录
第1章 刻舟求剑的文档
第2章 按图索骥地编写代码
第3章 写main()方法测试一下
第4章 调试一下
第5章 用TDD重做编程操练题目
第6章 消除假数据所带来的重复代码
第7章 让下一个测试足够有意思
第8章 嗅出代码“腐臭”和新的测试点
第9章 测试后行 vs 测试先行
第10章 何谓“烂代码”
第11章 记录所闻到的“腐臭”
第12章 用测试描绘用户意图
第13章 分而治之——釜底抽薪
第14章 分而治之——抛砖引玉