Ruby 关于 DSL 的问题

Unknow user · December 11, 2012 · Last by Sherlockhlt replied at December 12, 2012 · 2770 hits

第一次接触 DSL 这个东西,看完 Ruby 编程语言第 8.12 节。有了一个大概的认识,但是不知道是不是正确。

我理解的领域特定语言是,利用 Ruby 的元编程特性,把指令粘合在一起并装成了各种模具,每次需要使用的时候就是按照这种模具填入新料就可以出结果了,多个模具通过不同组合就可以解决一系列复杂的问题,而且还能表现出灵活的“动态”。而称为“语言”,我认为是定义了一种新的描述方式,这个方式借助 Ruby 元编程的特性,让使用者感觉上面产生新的语言,但是还是优雅的 Ruby 风格编码。

不知道像 haml 这样的工具算不算 DSL?

DSL 和 ruby 没关系,只是专注于某个领域的一种语言。 像 HTML HAML 都是 DSL,用什么实现都可以。

看不明白,不过没有关系,高深的我都看不明白。 我说一下我的理解吧。 DSL,就是领域描述语言,就是说业务领域的语言来描述一件事情。

Ruby 说的 DSL 确实和你说的差不多,不过 DSL 广义上不是这样子的

You need to Sign in before reply, if you don't have an account, please Sign up first.