活文档:与代码共同演进
上QQ阅读APP看书,第一时间看更新

致谢

首先要特别感谢我的官方审稿人Rebecca Wirfs-Brock、Steve Hayes和Woody Zuill。他们在很短的时间内审阅了我的文稿并提出了深刻的修改意见,帮助我更好地改进和组织了材料。

非常感谢Pearson团队,他们是:开发编辑Chris Zahn,我有幸经常与他合作;出版人Mark Taub,他负责了本书的整个出版流程;Kitty Wilson对本书进行了细致的文字编辑;还有Tonya Simpson,非常高兴在整个项目里与你一起工作。我还要感谢执行编辑Chris Guzikowski,他在2016年让Pearson公司签下了本书。

本书的概念都来自一些我非常尊重的人。Dan North、Chris Matts和Liz Keogh提出了BDD(Behavior-Driven Development,行为驱动开发)实践,它是活文档在工作中的最佳示例之一。Eric Evans在《领域驱动设计:软件核心复杂性应对之道》一书中提出了许多概念,这些概念又促成了BDD。Gojko Adzic在《实例化需求:团队如何交付正确的软件》一书中提出了活文档一词。在本书中,我将详细阐述这些概念并将其推广到软件项目的其他领域。DDD(Domain-Driven Design,领域驱动设计)强调了该思想在项目的生命周期中是如何发展的,而且它的支持者建议统一领域模型和代码。同样,本书也建议统一项目工件和文档。

模式运动及其作者(以Ward Cunningham和Kent Beck为首)让我们明白,通过参考那些已经在程序模式语言(PLoP)会议上发布或介绍过的模式,可以编写出更好的文档。

Pragmatic Programmers1、Martin Fowler、Ade Oshyneye、Andreas Rüping、Simon Brown和其他许多作者已经就如何以更好的方式编写更好的文档总结了宝贵的经验。Rinat Abdulin最先描述了活图表,也是创造了这个术语的人。谢谢你们所有人!

1这里指《程序员修炼之道》(The Pragmatic Programmers)一书的作者Andrew Hunt和David Thomas。——译者注

非常感谢Eric Evans与我进行的所有讨论(尽管大部分讨论与本书无关)以及提出的建议。

还要感谢Brian Marick与我分享了他在可见工作方式(visible working)领域的工作。鼓舞和激励很重要,与Vaughn Vernon和Sandro Mancuso就写书进行的讨论确实令我获益良多。谢谢两位!

有些讨论非常重要,尤其是那些催生新想法、加深理解或令人兴奋的讨论。感谢George Dinwiddie、Paul Rayner、Jeremie Chassaing、Arnauld Loyer和Romeu Moura与我进行的所有激动人心的讨论,同时也感谢你们与我分享自己的故事和经历。

通过本书的写作,我尽可能地收集了大家的想法和反馈,尤其是在软件开发会议的开放空间会议期间。Maxime Sanglan和Franziska Sauerwein给了我第一个反馈,令我深受鼓舞。谢谢你们!在一些会议或非会议场合(例如,Agile France、SoCraTes Germany、SoCraTes France、CodeFreeze Finland、Meetup Software Craftsmanship Paris圆桌会议,以及Arolla公司在晚上举办的几次Jams of Code比赛等),我都做过关于活文档的演讲,感谢所有参与者。

有一段时间,我一直在不同会议上做演讲,但讲的都是业内已广泛接受的实践。对于像活文档这样更为新颖的内容,我还必须测试不同受众的接受程度。感谢第一批冒着风险选择这个主题的会议,包括巴黎的NCrafts会议、伦敦的Domain-Driven Design eXchange会议、波尔多的Bdx.io会议和布加勒斯特的IT.A.K.E会议。感谢你们主办了最初几届相关讲座或研讨会,从中获得的大量反馈激励我更努力地创作本书。

很幸运,我在Arolla公司有一群非常热心的同事。感谢你们对本书的贡献并做了本书的第一批读者,特别是Fabien Maury、Romeu Moura、Arnauld Loyer、Yvan Vu和Somkiane Vongnoukoun。Somkiane建议我在书中加一些故事,使内容读起来不那么乏味,这是本书收到的最佳改进建议之一。感谢法国兴业银行企业与投资银行部(SGCIB)Craftsmanship中心的所有指导人员,感谢他们在午餐时与我进行的所有讨论和提出的想法,以及他们对改进我们的软件开发方法的热情。特别感谢Gilles Philippart(我在本书中多次提及他的想法)、Bruno Boucard和Thomas Pierrain。

还必须感谢Clémo Charnay和Alexandre Pavillon,他们为SGCIB商品贸易部门信息系统中的一些实验想法提供了早期支持,还要感谢Bruno Dupuis和James Kouthon使这些想法成为现实。本书中的许多想法已经在我以前合作的公司中尝试过了,包括SGCIB的商品部门、Sungard Asset Management的Asset Arena团队、Swapstream的所有员工、CME的同事,等等。

感谢Café Loustic和那里所有优秀的咖啡师。这是一个非常适合作家写作的地方,我在那里写了很多章节,带给我动力的通常是来自Caffenation的埃塞俄比亚单一产地咖啡。感谢我的爸爸和妈妈,是你们鼓励我追求自由的灵魂。最后,感谢我的妻子Yunshan,在本书写作过程中,她一直给予我支持和鼓励。非常重要的是,你画的那些可爱图片使得阅读本书成为一种愉快的体验!亲爱的,你的支持极为重要,我会像你支持我写作本书一样去支持你的项目。