书是 130325 寄送到珠海的,超乎相象的厚!
- 好象趁出差帝都,用原先的家务时间替换为读书时间,才将此书啃完的
- 果断是当初: 编程语言实现模式 (豆瓣)
http://book.douban.com/subject/10482195/
的配套图书! 之前就吼过:"但是,要配套另外两本才真心实用的起来,这本是基本地图,ANTLR 是装备,DSL 语法设计图书则是藏宝图了..."
照例吐槽先!
- 至今读到的最象 OREILLY 图书的技术图书!
- 不论书脊,排版,章节设计
- 都是浓浓的一般 OREILLY 动物书的自在流畅
- 山寨到这种地步真心不易
- 但是,太对不起 ThoughtWorks 的敏捷形象了吧
- 以外,最最最怨恨的是居然没有给出图书源代码工程来!
- 最最最吸引俺的,就是译序中指出的:
- "这是用DSL写成的有关DSL的书"!
- 因为OBP 工程的原因
http://code.google.com/p/openbookproject/
- 俺是习惯使用 rST 配合 Sphinx 进行图书撰写的
- 也同样遇到了老马的 patternRef/codeRef 问题
- 虽然 rST 本身提供了一定的解决方案,但是,用起来还是不够直觉
- 如果 DSL 可以公开 docbook 的工程源代码
- 那么,真心可以是对中国出版社技术图书组稿方式的一大推动
- 其实不用全部公开,只对中/E文版本公开包含图书典型场景的几章就好!
整本图书,正如作者在序言中所述
- "尽力将DSL 领域所有知识,进行了关键性评点..."
- 就已经这么厚了! 所以,作者只能自认没法真正完成本身就在快速迭进的DSL技术全貌描述
- 所以,整本内容,处处表现出一种谦虚谨慎的学术范儿,令人安心,共鸣
- 只是,出版社应该联系作者,尽快将DSL 实现过程把诊断/错误处理相关的内容,专门出本书吧!
其实,对于多数程序猿,第一部分,叙述部分的内容,就已经值得整书价格了!
- 对什么是DSL,DSL 的分类,DSL 的适用场景,进行了综合性介绍
- 可以感觉的出,是作者写的最畅快的部分
- 然后的部分:通用/外部DSL/内部DSL/其它模型,都是具体实现的细节论述
- 整个图书的设计,非常象当年的 可爱的Python
http://book.douban.com/subject/3884108/
- 先用实例故事将想传达的经验包含进来
- 通过 PCS 部分,对各个技术细节进行深入描述
- 所以,读起来很是自得
- 只是非常怨念的是作者展示各种DSL 技巧使用的是 JAVA/C#/Ruby
- 几种俺最无爱的语言!
- 特别是JAVA 看着大片大片密仄的代码段,实在没有心情认真理解
- 好在,每种实现都不算长,也就一两页,当需要时,完全可以对等翻译成 py 版的
- 其实,DSL 在平时就在经常使用
- 各种框架使用的模板系统
- ORM 库
- OpenResty 的 lua 业务脚本
- 复用 Graphviz 脚本,解析成工作流
- 周蠎其实就是种经典的解析树操作实现的内部DSL
- ...
- 只是,没有机会真正自个儿从头实现一个
- DSL 这书给出了几乎全部 DSL 实现形式
- 对于各种场景什么适合,进行了郑重的建议
- 省的我们自个儿乱折腾了
- 完全能够根据业务特性,选择合适的模式,进行快速完成
对于俺,DSL 这书最有用的是:
- 第三部分,外部DSL,是个完备的指导手册,可以在具体实践中直接使用
- 以及 p49 开始,不断强调的:
- "对任何有持久价值的东西,都应该通过测试进行双重确认"
- 这一思想,实在是软件工程师应该第一时间训练出来的自觉
- 但是,,,,嗯嗯嗯,不展开了
- 所以,要真心开始训练自个儿了...
- 另外: ANTLR 看来是DSL 谁也跳不过去的工具,也应该有专门的图书进行分享吧?
- 推荐 The Definitive ANTLR Reference: Building Domain-Specific Languages
- Terence Parr 07年的书
- 看哪个出版社手快了...
PS:
- 最后,忽然发现一个非常诡异的事儿:
- 书是华章科技出的
- 但是,在封底折边出现的是 博文的微信公众帐号宣传
- 难道机械同电子出版社要合并了!?
- 进一步的,博文的微信号名称是码农读书会
- 嗯嗯嗯,图灵也乱入了?