将整个参数作为参数传递给方法是一个坏习惯?

问题描述 投票:2回答:1

我担心的是

控制器关注:

module User
  extend ActiveSupport::Concern

  def abc(params)
    ...
  end
end

现在我从我的控制器调用这个abc方法

控制器:

  class UserController < AdminController
    ...
    user = abc(params)
    ...
  end

那么将整个参数从我的控制器传递给abc方法是一个坏习惯吗?

ruby-on-rails ruby
1个回答
6
投票

是的,这是一种不好的做法,因为在这种方法中,你实际上并不需要整个params。你只需要几把钥匙,但无论如何你都会通过整个过程,让你的生活变得更轻松。

但是,通过这样做,你的生活会更加艰难。当重新审视/重构这个方法的时候,你从params实际使用的是什么并不明显。您必须分析方法中的所有代码路径。这是不必要的工作。

忘记重构,甚至。每次要调用方法时都必须这样做。

例如,比较这两个调用

User.abc(params)

User.abc(params[:id], params[:email])

哪一个看起来更“可管理”?

© www.soinside.com 2019 - 2024. All rights reserved.