本书原名“The Pragmatic Programmer”.也就是“注重实效的程序员”。
正如书名所示.本书将围绕“注重实效”讲述关于编程的各种话题:个人责任、曳光弹开发、调试策略、元程序设计、按合约设计( Design By Contract )、重构、无情的测试.等等。
看到本书的目录、你也许会奇怪,300多页的篇幅、怎么能涵盖如此多内容?但本书的两位作者Andy Hunt和 Dave Thomas的确做到了,他们知道抵达编程的各种维度的途径.并找到了一种言简意赅的方式讲述这些途径;与此同时、在书中还提供了大量资源、可以帮助你找到各种更深入讨论这些话题的读物。本书的各个小节既独立又相关.你可以从头开始阅读,也可以随手翻开任何一页开始阅读——DaveThomas就将本书视为一本“洗手间读物”。
如果你是编程初学者、你可以从本书中了解到各种编程技术和方法,根据书中的指引拓展你的编程生涯;如果你是富有经验的程序员,同样可以从本书中获益:如果一本书能够全面、明晰地总结你从实践中获得的各种认识、总结你从其他书里散乱地读到的技术和方法.这本书就一定不是无益的。
编程是一种技艺。用最简单的话表述,编程可归结为让计算机做你(或你的用户)想要它做的事情。作为程序员,你既是倾听者.又是顾问;既是解释者,又是发号施令者。你设法捕捉难以捉摸的需求.并找到表达它们的方式,让一台纯粹的机器能够合理地处理它们。你设法为你的工作建立文档.以使他人能够理解它;你还设法使你的工作工程化,以使他人能够以它为基础进行构建。还有、你设法在项目时钟无休止的“嘀嗒”声的催迫下完成所有这些工作。你每天都在创造小小的奇迹。
我们不会假装自己拥有所有的(或者即使是大部分)答案,我们的思想也并非适用于所有情况。我们所能说的只是,如果你遵循我们的方法,你将迅速地获取经验,你的生产力将会提高,并且你还将更好地理解整个开发过程。你将能编写更好的软件。
软件的构造应该是工程学科。但是,这并不排斥个人的技艺。想一想中世纪在欧洲建造的大教堂,每一座都需要数千人年的努力,跨越许多个十年。学到的教训被传递给下一批建造者,后者又通过他们的造诣去提高结构工程的水平。但木匠、石匠、雕刻工和玻璃工都是手艺人,他们解释各种工程需求.以制造超越了建筑的纯粹机械方面的一个整体。
我们,采集的只是石头,却必须时刻展望未来的大教堂。
——采石工人的信条