在Rails(和其他MVC框架)中拥有非常大的控制器是不好的做法吗?

时间:2013-04-03 03:11:45

标签: ruby-on-rails controller refactoring

我是一名学生,并且一直在学习自己的轨道。到目前为止,我能够开发只执行标准数据库操作的简单应用程序。目前,我正在尝试增加我的知识,并了解如何创建实际上“做事”的应用程序,而不仅仅是简单的数据库外观。

我决定看看一些开源rails应用程序,看看专业人士是如何做到这一点的。本网站推荐的其中一个是Tracks。我简要介绍了源代码,并对一些控制器的大小感到震惊。例如,todos controller超过1400行。这是正常的吗?该代码是否应该重构并放在其他地方?如果是的话,应该放在哪里?或者,像这样拥有非常大的控制器是否正常?

2 个答案:

答案 0 :(得分:1)

你会遇到不同的意见和不同的看法,"fat model, skinny controller"是一个受欢迎的,并且Ruby on rails社区中的许多人都订阅了这个。在某种程度上,当对象提供某些属性和特征时,很多代码应该在模型中。

从测试开始(如执行TDD)有助于实现控制器中属于什么以及属于模型的内容,因为它在创建测试时会提出正确的问题/应该以哪种方式运行。

@dhh关于http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns

的一篇好文章

答案 1 :(得分:1)

一般来说,拥有如此庞大的控制器是不好的做法。

通常应尽可能将逻辑移入模型中。一篇很好的文章:http://www.sitepoint.com/10-ruby-on-rails-best-practices/

有一个名为“rails best practices”的优秀宝石,我觉得它非常有助于改善我的代码风格,https://github.com/railsbp/rails_best_practices。(相关页面,http://rails-bestpractices.com/posts/7-move-model-logic-into-the-model

相关问题