展开全部

主编推荐语

本书适合开发人员、架构师、领域用户学习参考。

内容简介

DSL(领域专用语言)的要旨在于沟通。精心设计的DSL 可以以一种从外观到内在都极为自然的方式,传达出其所表示领域的本质和真意,帮助消除业务与技术的隔阂,促进项目干系人与程序员的沟通。
  
《领域专用语言实战》不仅介绍如何使用DSL解决问题,还会使用Ruby、Groovy、Scala、Clojure等现代语言阐述DSL的设计与实现,针对这些语言所代表的不同编程范式深入讨论其在DSL设计上的优劣。《领域专用语言实战》共分三部分。第一部分定位DSL驱动开发环境,寻找其在应用程序架构中的用武之地,帮助程序员或架构师了解如何调整现有开发工具和技术,使之适应DSL驱动的新范式。第二部分带你设计优秀的语义模型,使之成为上层语言抽象的有力后盾。该部分主要指导开发人员按照优秀抽象的设计原则搭建领域模型,由浅入深讲解了DSL实现技术,如元编程、解析器组合子,以及ANTLR、Xtext等开发框架。第三部分主要展望未来趋势,重点讨论解析器组合子和DSL工作台技术的发展前景。

目录

  • 版权信息
  • 版权声明
  • 献词
  • 前言
  • 致谢
  • 关于本书
  • 读者对象
  • 本书内容
  • 排版约定
  • 代码约定和下载
  • 作者在线
  • 关于作者
  • 关于封面图片
  • 第一部分 领域专用语言入门
  • 第1章 初识DSL
  • 1.1 问题域与解答域
  • 1.2 领域建模:确立共通的语汇
  • 1.3 初窥DSL
  • 1.4 DSL的执行模型
  • 1.5 DSL的分类
  • 1.6 何时需要DSL
  • 1.7 DSL与抽象设计
  • 1.8 小结
  • 1.9 参考文献
  • 第2章 现实中的DSL
  • 2.1 打造首个Java DSL
  • 2.2 创造更友好的DSL
  • 2.3 DSL实现模式
  • 2.4 选择DSL的实现方式
  • 2.5 小结
  • 2.6 参考文献
  • 第3章 DSL驱动的应用程序开发
  • 3.1 探索DSL集成
  • 3.2 内部DSL的集成模式
  • 3.3 外部DSL集成模式
  • 3.4 处理错误和异常
  • 3.5 管理性能表现
  • 3.6 小结
  • 3.7 参考文献
  • 第二部分 实现DSL
  • 第4章 内部DSL实现模式
  • 4.1 充实DSL“工具箱”
  • 4.2 内嵌式DSL:元编程模式
  • 4.3 内嵌式DSL:类型化抽象模式
  • 4.4 生成式DSL:通过模板进行运行时代码生成
  • 4.5 生成式DSL:通过宏进行编译时代码生成
  • 4.6 小结
  • 4.7 参考文献
  • 第5章 Ruby、Groovy、Clojure 语言中的内部DSL设计
  • 5.1 动态类型成就简洁的DSL
  • 5.2 Ruby语言实现的交易处理DSL
  • 5.3 指令处理DSL:精益求精的Groovy实现
  • 5.4 思路迥异的Clojure实现
  • 5.5 告诫
  • 5.6 小结
  • 5.7 参考文献
  • 第6章 Scala语言中的内部DSL设计
  • 6.1 为何选择Scala
  • 6.2 迈向Scala DSL的第一步
  • 6.3 正式启程
  • 6.4 制作一种创建交易的DSL
  • 6.5 用DSL建模业务规则
  • 6.6 把组件装配起来
  • 6.7 组合多种DSL
  • 6.8 DSL中的Monad化结构
  • 6.9 小结
  • 6.10 参考文献
  • 第7章 外部DSL的实现载体
  • 7.1 解剖外部DSL
  • 7.2 语法分析器在外部DSL设计中的作用
  • 7.3 语法分析器的分类
  • 7.4 工具支持下的DSL开发——Xtext
  • 7.5 小结
  • 7.6 参考文献
  • 第8章 用Scala语法分析器组合子设计外部DSL
  • 8.1 分析器组合子
  • 8.2 Scala的分析器组合子库
  • 8.3 用分析器组合子设计DSL的步骤
  • 8.4 一个需要packrat分析器的DSL实例
  • 8.5 小结
  • 8.6 参考文献
  • 第三部分 DSL开发的未来趋势
  • 第9章 展望DSL设计的未来
  • 9.1 语言层面对DSL设计的支持越来越充分
  • 9.2 DSL工作台
  • 9.3 其他方面的工具支持
  • 9.4 DSL的成长和演化
  • 9.5 小结
  • 9.6 参考文献
  • 附录A 抽象在领域建模中的角色
  • A.1 设计得当的抽象应具备的特质
  • A.2 极简,只公开对外承诺的
  • A.3 精炼,只保留自身需要的
  • A.4 扩展性提供成长的空间
  • A.5 组合性,源自纯粹
  • A.6 参考文献
  • 附录B 元编程与DSL设计
  • B.1 DSL中的元编程
  • B.2 作为DSL载体的Lisp
  • B.3 参考文献
  • 附录C Ruby语言的DSL相关特性
  • C.1 Ruby语言的DSL相关特性
  • C.2 参考文献
  • 附录D Scala语言的DSL相关特性
  • D.1 Scala语言的DSL相关特性
  • D.2 参考文献
  • 附录E Groovy语言的DSL相关特性
  • E.1 Groovy语言的DSL相关特性
  • E.2 参考文献
  • 附录F Clojure语言的DSL相关特性
  • F.1 Clojure语言的DSL相关特性
  • F.2 参考文献
  • 附录G 多语言开发
  • G.1 对IDE的特性要求
  • G.2 搭建Java和Groovy的混合开发环境
  • G.3 搭建Java和Scala的混合开发环境
  • G.4 常见的多语言开发IDE
展开全部

评分及书评

评分不足
1个评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。