【问题标题】:Why sinatra is a DSL?为什么 sinatra 是 DSL?
【发布时间】:2015-03-24 23:25:28
【问题描述】:

关于sinatra 的非常first line它是用于在Ruby 中轻松创建Web 应用程序的DSL。我可以理解它重量轻,非常灵活,可以快速创建 Web 应用程序并且只需最少的努力,但无法理解它是如何成为 DSL 的?

【问题讨论】:

  • 我认为,严格来说,Sinatra 不是一种语言,而更像是一个和一组使用 Ruby 定义的编程模式语。但是在基于 Ruby 的框架中,可以创建特定的、更高级别的编程模式来帮助编写特定领域的代码。所以也许将库(或模式集)称为“语言”是合适的。

标签: ruby sinatra


【解决方案1】:

一个原因是它将其域内的动作(“动词”)定义为方法,例如:

get '/hi' do
  "Hello World!"
end

这里,Sinatra 已将其域中的操作(即 HTTP 请求方法“GET”)合并到其“词汇表”中。

(类似于围绕银行业务构建库并定义 accountcustomer 等方法。)

这更多的是关于DSL的真正定义吗?

【讨论】:

    猜你喜欢
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    相关资源
    最近更新 更多