《领域专用语言实战》由戈施所著,本书很好地讲解了DSL,首先阐述了DSL的重要性,然后带我们轻松实现首个内部DSL。作者真正循序渐进地带我们领略DSL,这本书让我获益匪浅。……关于内部DSL的讲解,这是我至今见过的最为实用且完备的指南。而且,作者在讲解外部DSL的同时详细介绍了重要概念,给出了使用xtext等的示例。
DSL(领域专用语言)的要旨在于沟通。精心设计的DSL可以以一种从外观到内在都极为自然的方式,传达出其所表示领域的本质和真意,帮助消除业务与技术的隔阂,促进项目干系人与程序员的沟通。
《领域专用语言实战》由戈施所著,本书不仅介绍如何使用DSL解决问题,还会使用Ruby、Groovy、Scala、Clojure等现代语言阐述DSL的设计与实现,针对这些语言所代表的不同编程范式深入讨论其在DSL设计上的优劣。《领域专用语言实战》共分三部分。第一部分定位DSL驱动开发环境,寻找其在应用程序架构中的用武之地,帮助程序员或架构师了解如何调整现有开发工具和技术,使之适应DSL驱动的新范式。第二部分带你设计优秀的语义模型,使之成为上层语言抽象的有力后盾。该部分主要指导开发人员按照优秀抽象的设计原则搭建领域模型,由浅入深讲解了DSL实现技术,如元编程、解析器组合子,以及ANTLR、Xtext等开发框架。第三部分主要展望未来趋势,重点讨论解析器组合子和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 多语言开发