1

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

通过多个文件将 Sinatra 用于大型项目

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

4

1 回答 1

1

我们在我工作的地方使用的模式是:

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

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

它似乎工作得很好。

于 2013-09-16T09:06:06.507 回答