致谢
2015 年 7 月下旬,我与 NFJS 巡回研讨会 2 负责人 Jay Zimmerman 进行了一次谈话,这次谈话意外促成了本书的诞生。我当时是(目前也仍然是)NFJS 巡回研讨会的成员,那一年 Venkat Subramaniam 博士 3 做了多次关于 Java 8 的演讲。由于 Subramaniam 博士决定在未来一年减少演讲的次数,Jay 询问我是否有兴趣从 2016 年初开始发表类似的演讲。我从 20 世纪 90 年代中期起就一直采用 Java 编写程序(所使用的第一个版本为 Java 1.0.6),对研究新 API 也抱有浓厚兴趣。念及此,我答应了 Jay 的请求。
2NFJS 巡回研讨会(No Fluff Just Stuff Software Symposium Tour)于 2001 年在美国丹佛创办,重点关注现代软件开发与架构领域出现的最新技术和最佳实践,演讲者包括作者、咨询师、开发人员以及行业专家。从 2001 年至今,NFJS 巡回研讨会已经在全美各地举办了 500 多场活动,参与人数超过 8 万人。——译者注
3Subramaniam 博士是 Agile Developer 公司创始人,休斯敦大学兼职教授。作为敏捷开发领域的权威人士,他培训了世界各地数以千计的软件开发人员。他还是一位多产的技术图书作者,所撰写的《Groovy 程序设计》一书是 Java 程序员学习 Groovy 的不二之选。另著有《高效程序员的 45 个习惯》《JavaScript 测试驱动开发》等书。——译者注
几年来,我针对 Java 引入的函数式特性做了多次介绍。2016 年秋天,在完成上一本范例教程 4 的写作后,我决定继续为 O'Reilly Media 撰写一本讨论 Java 的范例教程。那时我想当然地认为,这项工作应该是信手拈来。
4Gradle Recipes for Android,由 O'Reilly Media 出版,该书讨论了 Gradle 构建工具在 Android 项目中的应用。
著名科幻小说作家尼尔 • 盖曼(Neil Gaiman)曾表示,在完成《美国众神》一书的写作后,他认为自己已然了解如何写小说。不过他的朋友纠正说,他只是了解如何写这部小说而已。我现在理解了这句话的含义。本书最初计划写 150 页左右,包含 25 到 30 个范例,而成书接近 300 页,包含了 70 多个范例。不过这也使得本书的内容更为详尽和深入,比我预想的更有价值。
本书之所以能顺利出版,是因为我得到了不少人的帮助。Subramaniam 博士的演讲、著作以及与我的私下交流让我受益匪浅,他还欣然承担了本书的技术审阅工作。因此,若仍有疏漏,责任在他。(玩笑而已,责任当然应由我来承担,但请读者不要告诉 Subramaniam 博士我承认这一点。)
我在写作本书的过程中时常得到 Tim Yates 的帮助,我对此表示由衷的感谢。Tim 是我遇到的最好的程序员之一,他为 Groovy 社区所做的贡献远近闻名。不过 Tim 的才华不仅限于 Groovy,他是个多面手,这从他在 Stack Overflow 的评价可见一斑。我在 NFJS 巡回研讨会上发表 Java 8 的演讲时与 Rod Hilton 相识,他也为书稿提出了不少反馈意见。Tim 和 Rob 的建议都弥足珍贵。
我有幸与优秀的 O'Reilly Media 团队合作,出版了两本图书、十几部视频教程以及大量在线培训课程,读者可以通过在线平台 O'Reilly Safari 获取这些资源。Brian Foster 不仅提供了始终如一的支持,也展现了他克服官僚作风的出众能力。我在撰写上一本图书时与 Brian 相识,尽管他并未担任本书的编辑,但他的帮助使我受益良多,我们始终保持着良好的关系。
对于本书篇幅翻番,责任编辑 Jeff Bleiel 给予了充分理解,并对如何组织书稿提供了不少建议。我非常高兴与 Jeff 共事,也希望我们今后能继续合作。
我对以下 NFJS 演讲嘉宾表示感谢,他们不断的鼓励是我前行的动力:Nate Schutta、Michael Carducci、Matt Stine、Brian Sletten、Mark Richards、Pratik Patel、Neal Ford、Craig Walls、Raju Gandhi、Kirk Knoernschild、Dan“the Man”Hinojosa 以及 Janelle Klein。无论写书还是教学培训(我的实际工作),都是孤独的事业。我在社区结识了很多朋友和同事,大家共同讨论,一起玩耍。于我而言,这是一种有益的体验。
最后,我要对妻子 Ginger 和儿子 Xander 表示诚挚的谢意。没有你们的支持和体谅,就没有我今天的成就,这一点随着岁月的流逝变得越来越明显。任何言语都难以表达你们之于我的重要意义。
