【发布时间】:2011-01-26 23:54:55
【问题描述】:
这是一个宽泛的问题,我不欣赏这样的简短/愚蠢的回答:“哦,那是模范工作,这个任务被推迟了(句号)”
问题 在我工作的地方,人们创建了一个系统超过 2 年,用于以最简化但尽可能广泛的方式管理制造过程,包括销售、购买、组装,系统被编码Ruby On Rails。
该应用已更改了很多次,结果导致回调(有些被多次调用)、200 多个模型和胖控制器一团糟:完全糟糕。
问题是,是否有设计用于处理 Rails 大型应用程序逻辑的 gem 或模式?能够与模型完全对话的逻辑(其唯一关心的是数据格式处理和验证)
我期望是减少各种控制器的复杂性,并且很难将回调跟踪到负责处理业务操作逻辑的文件中。在某些情况下需要等待响应,在其他情况下,只需验证输入就足够了,并且会发生一个 bg 过程。
即:
--> 出售一些产品(需要等待操作完成)
1.设置一个可以获取产品输入的视图
2.Controller获取员工输入的产品列表并调用逻辑
Logic::ExecuteWithResponse('sell', 'products', :prods => @product_list_with_qtt, :when => @date, :employee => current_user() )
此逻辑将处理采购订单、组装订单、机器计划、仓库预订等。
请记住,对 SalesOrder 的回调是不够的,因为它取决于调用它的位置(没有字段),取决于用户的类,以及模型不可见的其他内容,或者在某些情况下它会模型需要很长时间才能处理。
【问题讨论】:
标签: ruby-on-rails design-patterns business-logic