0

人们如何组织复杂的方法?我的意思是程序员通常把不属于任何特定模型的方法放在哪里,而是使用 3-4 个模型和 2-3 个作用域来做出一些复杂的决定?

例如,我现在正在开发的应用程序的核心是以下脚本:

@items_to_post = Item.where(calendar_id: Ad.ready_to_post.collect(&:calendar_id).uniq).not_posted_yet(ad)
if @items_to_post.renewable.count > 0
  @output = "Please Renew First"
else
  @first_item = @items_to_post.first
  @post = Post.new(title: @first_item.randomizations.first.title, body: @first_item.description, ... )
  ...
end

我只是不想让你厌烦整个代码——它很长,需要在两个地方调用,但差别很小。

我已经把所有这些都放到了我的 ExportController 中,这很丑,尤其是对于 Controller,因为它违反了 MVC 约定,但我不知道该怎么做。

你们通常把这样的方法放在哪里?

4

1 回答 1

0

单一职责原则:将每个工作分配给一个单独的类,该类只知道(获取依赖项)它完成工作所需的事情。如果你把这些职责变小,每个类的依赖数量就会减少,并且类会很简单。它可能会使您的代码作为一个整体变得更加复杂,但这没关系,因为您不必一次查看所有内容。

如果您实际上发布了更多代码,人们可能会提出一些可以拆分为单独类的职责。

于 2013-09-11T11:50:28.547 回答