万本电子书0元读

万本电子书0元读

顶部广告

领域专用语言实战电子书

  著名博客“Ruminations of a Programmer”作者、ACM高级会员20余年经验总结   多位业内大牛鼎力推荐   全面涵盖5种JVM语言   真正讲透DSL设计与实现

售       价:¥

纸质售价:¥47.60购买纸书

103人正在读 | 1人评论 6.2

作       者:Debasish Ghosh

出  版  社:人民邮电出版社

出版时间:2013-10-01

字       数:29.0万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
DSL(领域专用语言)的要旨在于沟通。精心设计的DSL可以以一种从外观到内在都极为自然的方式,传达出其所表示领域的本质和真意,帮助消除业务与技术的隔阂,促项目干系人与程序员的沟通。 《领域专用语言实战》不仅介绍如何使用DSL解决问题,还会使用Ruby、Groovy、Scala、Clojure等现代语言阐述DSL的设计与实现,针对这些语言所代表的不同编程范式深讨论其在DSL设计上的优劣。《领域专用语言实战》共分三部分。部分定位DSL驱动发环境,寻找其在应用程序架构中的用武之地,帮助程序员或架构师了解如何调整现有发工具和技术,使之适应DSL驱动的新范式。第二部分带你设计优秀的语义模型,使之成为上层语言抽象的有力后盾。该部分主要指导发人员按照优秀抽象的设计原则搭建领域模型,由浅深讲解了DSL实现技术,如元编程、解析器组合子,以及ANTLR、Xtext等发框架。第三部分主要展望未来趋势,重讨论解析器组合子和DSL工作台技术的发展前景。 《领域专用语言实战》适合发人员、架构师、领域用户学习参考。<br/>【推荐语】<br/>著名博客“Ruminations of a Programmer”作者、ACM高级会员20余年经验总结 多位业内大牛鼎力推荐 全面涵盖5种JVM语言 真正讲透DSL设计与实现<br/>【作者】<br/>Debasish Ghosh Anshinsoft公司 首席技术布道师,发者推荐博客“Ruminations of aProgrammer”的作者,ACM协会高级会员。他拥有跨国IT企业20余年工作经验,擅长为各种客户(无论是中小型公司还是财富500强企业)交付企业级解决方案,对自己将软件设计和编程*实践制度化而引以为傲,热爱Java、Ruby、Scala、OO及函数式编程,关注DSL和NoSQL数据库。Twitter账号:@debasishg。 译者简介: 郭晓刚 大学肄业,有过两次创业和创业失败的经验,从嵌式硬件到企业软件发皆无所成。作为爱好的翻译反倒坚持不辍,积攒了五六本独译、合译的作品。长期在InfoQ中文站从事编辑工作,顺带磨练了技术触觉和翻译、写作的技艺。现在家照顾本书拖稿期间出生的儿子。<br/>
目录展开

前言

致谢

关于本书

读者对象

本书内容

排版约定

作者在线

关于作者

关于封面图片

关于封面图片

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

第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.7 组合多种DSL

6.8 DSL中的Monad化结构

6.9 小结

6.6 把组件装配起来

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条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部