gpt4 book ai didi

ruby-on-rails - 为什么 Ruby on Rails 被称为领域特定语言?

转载 作者:行者123 更新时间:2023-12-04 00:40:36 24 4
gpt4 key购买 nike

最近,当我试图向我所在组织的一名实习生解释为什么 Ruby on Rails 是一种领域特定语言 (DSL) 时,我无法将我的推理阐述为我想要的效果。也许我不太了解空间,无法教授细微差别。将他重定向到 Martin Fowler' article或者谷歌排名第一的 InfoQ 或其他 Material 也没有太大帮助。

有人可以解释为什么 Rails 是一个带有示例/并行情况的 DSL,对于代码世界的新手来说,这不是巫毒教的东西吗?了解意识形态也可能有助于阐述 Rails 生态系统的复杂性?

最佳答案

从技术上讲,ruby 不是 DSL,它只是有助于非常干净地编写内部 DSL。 This link到 Martin's Fowler's blog wiki 应该有助于澄清事情。

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 可能需要“巫毒”之类的代码(创建 DSL 比使用 DSL 困难得多),一般来说,对编码相对较新的人应该首先担心 DSL 的作用,而不是它是如何实现的。

使 ruby​​ 擅长内部 DSL 的原因包括(1)使用块(任何具有干净闭包的语言都有这个优势),(2)不需要括号的方法类,以及(3)动态修改类的能力(这是 validates 的作用)。可能还有更多我没有想到的。

关于ruby-on-rails - 为什么 Ruby on Rails 被称为领域特定语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2822002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com