DSLs in Action实战指南
领域语言的实战经验,《DSLs in Action》这本书讲得还挺系统的。如果你之前只是听说过 DSL,不太了解怎么上手,这本能帮你把理论和实践都串起来。前半部分讲概念,后半部分直接教你怎么做,挺适合想自己动手写个小语言的场景。
内部 DSL和外部 DSL的对比写得比较清楚,像用Scala
、Groovy
这类语言去做内部 DSL,表达力强,语法糖也丰富,做起来比较顺手。外部 DSL 虽然麻烦点,要从语法搞起,但胜在自由度高,你想怎么设计都行。
书里有个挺有意思的点,叫“DSL 在野生环境中”,其实就是拿几个行业场景,比如金融、测试驱动开发这些,讲讲 DSL 是怎么落地的。看完你会发现,原来自己项目里也有不少地方可以考虑搞个小 DSL 优化一下。
要是你用Scala
多,推荐顺带看下 Dsl.scala,就是一个专门做Scala
嵌入式 DSL 的源码项目,挺实用的。还有像Specify DSL这类 BDD 框架,也能学到不少设计上的巧思。
,如果你正好在做业务建模、规则引擎、或者是测试框架这类事情,不妨翻翻这本,学点 DSL 思维,说不定能省下不少代码量。如果你想动手试,可以从内部 DSL 开始,响应快、风险小,写着写着就上瘾了。
下载地址
用户评论