我一直在为Rusy Sinatra寻找好的做法,我在stackoverflow上找到了这个问题:
Using Sinatra for larger projects via multiple files
但是,我想知道在某些路线背后的业务逻辑很大的情况下该怎么做。将它包装在一个类(帮助器/实用程序)并从路由委托给它是不是更好? 我认为这将使控制器保持清洁,易于遵循。 放置这样一个实用程序类的最佳文件夹是什么?
答案 0 :(得分:1)
我工作的模式是:
Sinatra Web Handler - > 'Processor'类(将业务逻辑封装在可重用的路由中,有时在Facade后面)。处理器执行可能需要的任何ORM或缓存操作,并知道何时委托给更多下游处理器(或者甚至是其他内部/外部服务)。
这将sinatra路由与应用程序逻辑分离,意味着我们可以插入这些处理器类。我们尝试将处理器类保持与一个业务流程相关,例如,用户创建,并以我们可以根据需要将它们插入其他端点的方式编写它们。我们实际上使用Sinatra作为HTTP请求路由器进入我们的主应用程序。
它看起来效果很好。