这是几本每个信仰敏捷开发的程序员都应该读一下的书籍,因为这几本书表达了跟我们相同的信念,并且内涵了极丰富的价值。这里推荐的这几本书都是很常规且通用的,并不是局限在某一领域(像《Effective Java》)。书目我尽量精简,大概就4-5本,我会不时的对这个清单进行修订。
下面就是这几本书,以及为什么我深信它们如此重要的原因。
1. 《Implementing Lean Software Development: From Concept to Cash》
Mary and Tom Poppendieck, 2006 (amazon)
薄但却极其丰富的一本书,对精益(Lean)软件开发思想及其各个方面做了精彩的描述。难以置信这边书里容下了如此多有价值的观点。它不仅向我们传递了为什么精益软件开发的可行性,并且向我们介绍了如何在实践中实现它。
关键词:消除浪费,延迟决定,可持续性节奏,提供质量
2. 《Running Lean: Iterate from Plan A to a Plan That Works》
Ash Maurya, 2012 (amazon)
敏捷开发倡导者相信,精益创业方法不仅是针对新公司,对于现有的公司也是激发革新创造的正确方法。而革新创造是我们前进的动力,能帮助我们在日趋激烈的市场竞争中生存下来的保障。如果你已经对什么是精益创业有基本的了解,那这本书正适合你。跟Eric Ries的《The Lean Startup》相反,这本书更有实践价值,它介绍了很多在实践中如何做假设前提测试的方法。
关键词:用户中心,测量,面谈,消除浪费,未知方案
3.《 代码整洁之道(Clean Code)》
Robert C. Martin (Uncle Bob), 2008 (amazon)
对于任何一个有上进心的软件专业人士来说都是一本非常重要的书,它能让我们认识什么是好的代码,如何写出好的代码。它会影响你写代码的方式。每个人都听说过方法、类应该简单、只做一件事、有自我说明的名称、测试驱动等。这本书对这些都做了说明,并解释了为什么要这样。
关键词:单一责任原则,TDD,YAGNI, DRY
4. 《Working Effectively with Legacy Code》
Michael Feathers, 2004 (amazon)
任何在维护老代码的人的圣经。即使是对于那些不受老代码影响的项目也能从此书中受益。对那些不存在历史遗留代码的开发工作,这本书中的重构和设计思想也值得你学习。这本书的主题是重构和测试。了解一段复杂的代码,安全的优化它,修改它。虽然这本书有点老,它的价值不减。书中介绍的很多方法、技巧和建议,每个程序员都应该掌握。先浅尝一下:
我还没有对这些代码有足够的了解,不能去修改它,这个应用结构不清,这个类太大,我可不想它再有任何的膨胀。
也许这本书没有必要每页都细读,但你需要对它说的是什么有必要的了解,这很重要,当有一天你处在某个处境中因这些智慧而受益时,你会想起这些这些智慧哪里来的,在哪能找到它们。