加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 为什么Ruby on Rails被称为域专用语言?

发布时间:2020-12-16 22:43:33 所属栏目:百科 来源:网络整理
导读:最近,当我试图解释为什么 Ruby on Rails是一个领域专用语言(DSL)到我组织的实习生时,我无法表达我的推理,我想要的结果.也许我不明白这个空间足以教导细微差别.将他重定向到Martin Fowler的 article或Google排名第一的InfoQ或其他资料也没有太大帮助. 有些可
最近,当我试图解释为什么 Ruby on Rails是一个领域专用语言(DSL)到我组织的实习生时,我无法表达我的推理,我想要的结果.也许我不明白这个空间足以教导细微差别.将他重定向到Martin Fowler的 article或Google排名第一的InfoQ或其他资料也没有太大帮助.

有些可以解释为什么Rails是一个DSL的例子/并行的情况,这不是一个相当新的代码世界的人的巫术的东西?了解意识形态还有助于阐述轨道生态系统的复杂性?

解决方法

技术上来说,ruby不是DSL,它只是非常干净地编写内部DSLs.马丁的Fowler的博客wiki This link将有助于澄清事情.

Rails已经被描述为DSL,尽管我更确切地将其作为一个框架,使得很好的使用几个DSL.

编辑:intro to the public version of Martin Fowler’s DSL book有一个激励的例子,虽然它仍然针对程序员更多.

再次编辑:如果你指出ruby允许ruby代码看起来像“voodoo”的例子可以是有用的

port 2001

respond :resource=>"/hello" do  |request,response|
  response.body = "<message>hello</message>"
end

这比直接调用方法更干净.实现DSL可能需要像代码一样的“voodoo”(创建DSL比使用DSL更困难),而且一般来说,相对较新的编码的人应该首先关心DSL的功能,而不是如此实现它.

什么使Ruby在内部DSL方面有好处包括(1)使用块(任何具有干净关闭的语言都具有此优点),(2)不需要括号的方法类,以及(3)能够在运行中修改类是什么验证)可能我还没有想到.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读