代表在Sinatra航线上实施

时间:2013-09-16 07:08:47

标签: ruby sinatra implementation routes

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

Using Sinatra for larger projects via multiple files

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

1 个答案:

答案 0 :(得分:1)

我工作的模式是:

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

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

它看起来效果很好。