ryu*_*ice 12 business-logic ruby-on-rails
我是一个ASP.NET MVC开发人员,刚开始我的第一个关于rails的大项目,但我很困惑,因为我把业务逻辑放在哪里?在ASP.NET上我创建了一个包含处理业务逻辑的服务(域驱动设计)的库,我听说rails使用了胖模型瘦控制器的概念,但我在ASP.NET中有一些项目,它们将所有逻辑添加到控制器会造成很大的混乱,还有其他方法吗?
Jes*_*ott 13
使用FatModels和SkinnyControllers的概念.您的模型应该知道它们的行为方式和应该做的事情.
当您的模型太胖时,将它们提取到可重复使用的模块中并将它们包含在您的模块中.
您可以使用RSpec(或test/unit或shoulda)轻松测试模型的行为.然后,您可以使用Cucumber测试应用程序的行为是否正确.
"业务逻辑"或某些人可能称之为"域逻辑"并不属于Rails和/或.NET MVC项目附近的任何地方.Rails和MVC应该依赖于你的域,而不是相反.我建议您阅读杰弗里·巴勒莫的洋葱建筑,或者观看罗伯特·马丁的"建筑失落的岁月".(无论如何,我认为那是那个话题).可能有更多的资源,但你会感谢以后将Rails和.NET MVC视为第三方框架,而不是应用程序的主要部分.
小智 5
我认为这篇博客文章很好地概述了将域驱动设计与 rails 框架结合的策略:http : //www.smashingboxes.com/domain-logic-in-rails/
TL; 博士
将经典 Rails 模型重构为存储库,并在控制器中使用外观层与域模型进行交互。
我自己也在为此苦苦挣扎,尽管胖控制器模式似乎占了上风,但软件中的任何“胖”似乎都是一种气味,违反了单一职责。
| 归档时间: |
|
| 查看次数: |
10722 次 |
| 最近记录: |