Передавать только идентификатор объекта или весь объект в метод - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть класс Foo, подключенный к базе данных, и метод bar, который принимает один аргумент с двумя возможными спецификациями и реализациями:

class Foo
  def bar(object_id)
    object = Object.find(object_id)
    object.do_something
  end
end

и

class Foo
  def bar(object)
    object.do_something
  end
end

Должен ли я передать object.id и загрузить объект из базы данных или передать только object только что загруженный?Какой подход лучше?Имеет ли это значение для производительности?

1 Ответ

0 голосов
/ 06 декабря 2018

Если вы не делаете это через sidekiq или другую форму сериализации, вы должны просто передать объект - он все равно окажется в памяти, поэтому вы избегаете ненужных запросов к БД и делаете свой класс менее зависимым от Objectреализация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...