创建仅供一次使用的帮助程序方法是否有好处



我注意到在 Rails 教程中,有时作者会制作只使用一次的辅助方法。这让我觉得很荒谬,但在学习ActionCable时,我注意到DHH在2年前为ActionCable介绍时也做了同样的事情。所以也许有一点是我错过了。仅供说明,这是DHH的代码。

# app/jobs/message_broadcast_job.rb
class MessageBroadcastJob < ApplicationJob
  queue_as :default
  def perform(message)
    ActionCable.server.broadcast 'room_channel', message: render_message(message)
  end
  private
    def render_message(message)
      ApplicationController.renderer.render(partial: 'messages/message', locals: { message: message })
    end
end

现在我只编写这样的 execute 方法,并跳过帮助程序方法:

def perform(message)
  ActionCable.server.broadcast 'room_channel', { 
    message: ApplicationController.renderer.render(
      partial: 'messages/message', 
      locals: { message: message }
    )
  }
end

第一个结构比我的有什么好处吗?我只看到一个毫无意义的抽象。

你写的东西很好,但在 Ruby on rails 中,有流程需要遵循,遵循或不遵循是你自己的选择。

我们使用助手的原因如下。

  1. 在应用程序中很好地组织代码。
  2. 使用DRY概念这样,如果需要相同的辅助方法可以通过多个方法或动作使用。

希望它清楚在 ruby on rails 应用程序中使用助手的目的。

感谢和问候哈伦德

创建帮助程序方法(或与此相关的任何方法)有两个正当理由:

  1. 使一段代码可重用
  2. 让任何阅读代码的人都清楚代码的目的

我认为两者都是有效的。您应该问问自己,创建帮助程序方法是否会使应用程序逻辑更加清晰,并使任何人(甚至您)更容易理解正在发生的事情。如果是这样的话,我认为创建一个只会使用一次的助手是可以的。

在大型应用程序中,我发现清晰度通常比几行额外的代码更重要。以后甚至有人可能会找到它的另一个用途。

最新更新