第一部分 领域专用语言入门

什么是领域专用语言(DSL)?DSL对于应用程序开发者有何价值?DSL能给使用软件的行业用户带来哪些好处?DSL驱动开发是否有助于开发团队与领域专家团队之间的交流?DSL驱动开发有何利弊?这些问题都可以在第一部分找到答案。

这一部分由第1章~第3章组成,将介绍多种被广泛使用的DSL和设计DSL的一般原则,以便你在自己动手设计DSL时知道应该注意什么。

第1章照例是对DSL的入门介绍。

第2章将带你一起设计第一个DSL。随着设计的推进,你将体会到用户需求一步步地演变成富于表现力的DSL。我们首先用Java来实现DSL,然后换成JVM上的另一种语言Groovy,届时你将看到语言表现力的提升。

第3章介绍如何围绕一个核心应用程序集成内部与外部DSL,以及如何处理错误和异常。

这一部分面向程序员和不具备编程背景的领域用户,因此特意避开了具体的实现细节,以便读者对DSL的大体情境有一个全面的了解。

目录

  • 版权声明
  • 献词
  • 前言
  • 致谢
  • 关于本书
  • 关于封面图片
  • 第一部分 领域专用语言入门
  • 第1章 初识DSL
  • 第2章 现实中的DSL
  • 第3章 DSL驱动的应用程序开发
  • 第二部分 实现DSL
  • 第4章 内部DSL实现模式
  • 第5章 Ruby、Groovy、Clojure 语言中的内部DSL设计
  • 第6章 Scala语言中的内部DSL设计
  • 第7章 外部DSL的实现载体
  • 第8章 用Scala语法分析器组合子设计外部DSL
  • 第三部分 DSL开发的未来趋势
  • 第9章 展望DSL设计的未来
  • 附录A 抽象在领域建模中的角色
  • 附录B 元编程与DSL设计
  • 附录C Ruby语言的DSL相关特性
  • 附录D Scala语言的DSL相关特性
  • 附录E Groovy语言的DSL相关特性
  • 附录F Clojure语言的DSL相关特性
  • 附录G 多语言开发