【问题标题】:Delegate implementation in Sinatra routesSinatra 路由中的委托实现
【发布时间】:2013-09-20 06:14:54
【问题描述】:

我一直在寻找 Rusy Sinatra 的良好做法,我在 stackoverflow 上发现了这个问题:

Using Sinatra for larger projects via multiple files

但是,我想知道如果某些路由背后的业务逻辑很大,该怎么办。将它包装在一个类(助手/实用程序)中并从路由委托给它不是更好吗? 我认为这将使控制器保持清洁且易于操作。 放置这样一个实用程序类的最佳文件夹是什么?

【问题讨论】:

    标签: ruby sinatra implementation routes


    【解决方案1】:

    我工作时使用的模式是:

    Sinatra Web Handler -> 'Processor' 类(将业务逻辑封装在可重用的路由中,有时在外观之后)。处理器执行任何可能需要的 ORM 或缓存​​操作,并且知道何时委派给进一步的下游处理器(或者,甚至是其他内部/外部服务)。

    这将 sinatra 路由与应用程序逻辑分离,意味着我们可以插入这些处理器类。我们尝试保持与一个业务流程相关的处理器类,例如用户创建,并以我们可以在需要时将它们插入其他端点的方式编写它们。实际上,我们在主应用程序中使用 Sinatra 作为 HTTP 请求路由器。

    它似乎工作得很好。

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      相关资源
      最近更新 更多