上QQ阅读APP看书,第一时间看更新
推荐序
埃里希·伽玛
(Erich Gamma)
软件开发的核心
献给Ann Marie, Angela, Micah, Gina, Justin,
Angelique, Matt和Alexis……
任何珍品都不及家人的陪伴,
任何宝藏都不如亲情的宽慰。
刚刚交付完Eclipse开源项目的一个大版本后,我就马不停蹄地着手为这本书写序。刚刚开始恢复元气的我,脑子还有些模糊。但有一点我比以往更清楚,那就是“交付产品的关键因素是人,而不是过程”。我们成功的诀窍很简单:和沉迷于交付软件的人一起工作,使用适合自己团队的轻量过程进行开发,在此过程中不断调整和适应。
如果了解过我们团队中的开发人员,就会发现他们都认为编程是软件开发的中心。他们不仅写代码,还会持续消化和洗手代码以保持对系统的理解。用代码验证设计时得到的反馈,对设计者的信心来说至关重要。我们的开发人员知道模式、重构、测试、增量交付、频繁构建以及其他一些XP(极限编程)最佳实践的重要性。这些实践改变了我们对当今软件开发方法的看法。
对于技术风险高以及需求变化频繁的项目,熟练掌握这种开发风格是获得成功的先决条件。虽然敏捷开发方法不太注重形式和项目文档,但一旦涉及重要的日常开发实践,却表现出了极大的关注。落地这些实践正是本书的重点。
作者长期活跃于面向对象社区,对C++实践、设计模式以及面向对象设计的一般原则都有贡献。他是XP和敏捷方法的早起倡导者。本书以这些贡献为基础,覆盖了敏捷软件开发实践的全部内容。这是一项了不起的成就。不仅如此,作者在说明每件事情的时候,都用了案例和代码,这与敏捷实践完全一致。他用写代码这个实际行动来阐明敏捷编程和敏捷设计。