本书内容

图1、图2、图3除了勾画出了全书的组织脉络,对各章的内容也作了简略的阐述。本书分为三部分:

  • 使用DSL;
  • 实现DSL;
  • DSL开发的未来趋势。

enter image description here

图1 第1章到第3章的学习历程

enter image description here

图2 第4章到第6章的学习历程

enter image description here

图3 第7章到第9章的学习历程

第一部分(第1章~第3章)作为总括,详细地阐述了DSL驱动开发环境的定位,帮助读者在自己的应用程序架构中找到它的用武之地。如果你是程序员或者架构师,这部分内容将协助你调整现有的开发工具和技术,使之适应DSL驱动的新范式。本书主要围绕各种JVM(Java虚拟机)语言展开论述。因此,Java程序员很快就能够从书中找到适合自身项目情况的DSL运用方式,在自己的Java项目内集成用表现力更佳的其他JVM语言开发出来的DSL。

DSL拥有各种贴近用户思维的语法结构,这些语言抽象有赖于语义模型在背后提供支撑。第二部分(第4章~第8章)探讨如何设计出优秀的语义模型,使之成为上层语言抽象的有力后盾。这个部分主要是给开发人员准备的,旨在指导开发人员按照优秀抽象的设计原则来搭建领域模型。从第4章到第8章,各章都含有丰富的DSL代码片段,实现语言包括Ruby、Groovy、Clojure、Scala等。如果正在或即将使用这些语言来实现DSL,那么你会发现这几章的内容特别实用。书中讲解了DSL的实现手法,而且将从最基本的技术入手,逐渐深入到高级技术,如元编程、解析器组合子,以及ANTLR、Xtext等开发框架。

第三部分(第9章)主要展望未来趋势,重点讨论解析器组合子和DSL工作台技术未来的发展。

本书面向真正的实践者。因此,虽然书中也含有理论知识,但只是作为帮助理解具体实现的铺垫而存在。我发自内心地相信这将是一本让奋战在开发第一线的实干家感觉有用的书。