《领域特定语言》是一本由Martin Fowler著作,机械工业出版社华章公司出版的平装图书,本书定价:89.00元,页数:488,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。
《领域特定语言》读后感(一):DSL实践地图册! (敬谢何编赠书)
书是 130325 寄送到珠海的,超乎相象的厚!
- 好象趁出差帝都,用原先的家务时间替换为读书时间,才将此书啃完的
- 果断是当初: 编程语言实现模式 (豆瓣)
的配套图书! 之前就吼过:"但是,要配套另外两本才真心实用的起来,这本是基本地图,ANTLR 是装备,DSL 语法设计图书则是藏宝图了..."
照例吐槽先!
- 至今读到的最象 OREILLY 图书的技术图书!
- 不论书脊,排版,章节设计
- 都是浓浓的一般 OREILLY 动物书的自在流畅
- 山寨到这种地步真心不易
- 但是,太对不起 ThoughtWorks 的敏捷形象了吧
- 以外,最最最怨恨的是居然没有给出图书源代码工程来!
- 最最最吸引俺的,就是译序中指出的:
- "这是用DSL写成的有关DSL的书"!
- 因为OBP 工程的原因
- 俺是习惯使用 rST 配合 Sphinx 进行图书撰写的
- 也同样遇到了老马的 patternRef/codeRef 问题
- 虽然 rST 本身提供了一定的解决方案,但是,用起来还是不够直觉
- 如果 DSL 可以公开 docbook 的工程源代码
- 那么,真心可以是对中国出版社技术图书组稿方式的一大推动
- 其实不用全部公开,只对中/E文版本公开包含图书典型场景的几章就好!
整本图书,正如作者在序言中所述
- "尽力将DSL 领域所有知识,进行了关键性评点..."
- 就已经这么厚了! 所以,作者只能自认没法真正完成本身就在快速迭进的DSL技术全貌描述
- 所以,整本内容,处处表现出一种谦虚谨慎的学术范儿,令人安心,共鸣
- 只是,出版社应该联系作者,尽快将DSL 实现过程把诊断/错误处理相关的内容,专门出本书吧!
其实,对于多数程序猿,第一部分,叙述部分的内容,就已经值得整书价格了!
- 对什么是DSL,DSL 的分类,DSL 的适用场景,进行了综合性介绍
- 可以感觉的出,是作者写的最畅快的部分
- 然后的部分:通用/外部DSL/内部DSL/其它模型,都是具体实现的细节论述
- 整个图书的设计,非常象当年的 可爱的Python
- 先用实例故事将想传达的经验包含进来
- 通过 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年的书
- 看哪个出版社手快了...
:
- 最后,忽然发现一个非常诡异的事儿:
- 书是华章科技出的
- 但是,在封底折边出现的是 博文的微信公众帐号宣传
- 难道机械同电子出版社要合并了!?
- 进一步的,博文的微信号名称是码农读书会
- 嗯嗯嗯,图灵也乱入了?
《领域特定语言》读后感(二):我不想说别人是托,但这无比糟糕的翻译也能9.2分???
这本书是不是太小众了,居然没有吐槽它的翻译?反正我最近是一边看一边备受折磨,忍不住要上来吐槽几句(处女吐槽)。
已经糟到影响阅读的程度了!时不时要拿原版的出来对照,才理解是什么意思。
姐姐,我就是英文烂,才要买中文版啊,能不能走点心,靠点谱啊!
细节就不用说了,就挑几个标题来说(以下翻译意见不代表我的翻译就很好,只是说明中文版翻译得有多烂) :
Context Variable 翻译成 语境变量,拜托,context在计算机领域一般是翻译成“上下文”,虽然这个也不怎么样,但至少约定俗成了,总比这个莫名其妙的“语境”好
Embedded Interpretation 翻译成 内嵌解释器 ,这字面哪有“器”啊,文章的意思也完全没有“器”的意思!而且你“ Embedded Translation”翻译成“嵌入式语法翻译”,怎么” Embedded Interpretation " 就翻译成“内嵌解释器”了? 上下两章的译法根本就不统一。
ewline Separators 翻译成 以换行符作为分隔符,当然,这还算不上错,只是确实啰嗦。
Delimiter-Directed Translation,Syntax-Directed Translation 分别翻译成 “分隔符指导翻译”,“语法指导翻译”,这又是不可理解的中文,什么是“指导”啊!是灵道来指导工作吗?用“制导”虽然也不容易理解,至少还准确一些。
最不能忍的是Alternative Computational Models翻译成其他计算模型概述?!! 文章在此之前根本没提到“计算模型“,哪来”其他计算模型“,而且哪来的”概述“,这一部分全部都是概述好不,画蛇添足地加一个概述什么意思嘛!而且Alternative在这里根本就是“可选的”的意思好不!
Method Chaining 翻译成 方法级联,这根本就不对,cascade 才是级联,这是“方法链"或”方法链式调用“
Object Scoping 翻译成 ”对象范围“,这不是“对象作用域“吗?
Literal List 翻译成 列表的字面构造,“列表字面量”不就可以了?而Literal Map 则是直接选择不翻译!
Transformer Generation翻译成”基于转换器的代码生成“,Templated Generation 怎么就翻译成模板化的生成器了?能不能前后一致啊?
Model-Aware Generation 翻译成 基于模板的代码生成 ,Model Ignorant Generation 翻译成 无视模型的代码生成了?一个是模型感知,一个是模型无知,感知不代表是“基于”,而“无知”是压根不知道,不是故意无视它
标题尚且如此,内容就更不用说了,,很多句子完全就是机器翻译的水准!如果不是翻译们(对,是很多人合译的)水平太差,就是态度很有问题。
《领域特定语言》读后感(三):不推荐阅读
五星的主题,三星的内容,三星的行文,二星的翻译。
前后文引用严重,概念混淆不清,语言啰嗦繁琐。
懒得举例子了。