Size: a a a

Saint P Ruby Community

2019 December 09

w

wi11son in Saint P Ruby Community
а есть кто-нибудь здесь из railsware?
источник

DS

Dmitriy Strukov in Saint P Ruby Community
wi11son
а есть кто-нибудь здесь из railsware?
ребята из Польши, которые
источник

DS

Dmitriy Strukov in Saint P Ruby Community
?
источник

IM

Igor Morozov in Saint P Ruby Community
@davydovanton напомни, пожалуйста, а есть где-нибудь твоя преза с рубираша последней? Ты там перечислил разные способы вызвать сервисы: Foo.call(…), Foo.new.call(…), Foo.new(…).call и т.п.

Хочу список посмотреть. Чтоб протестить каждый — сколько памяти жрет, что быстрее (есть ли вообще разница?).

У меня-то мнение по поводу конкретных подходов есть, но хочется добавить туда каких-нибудь цифр
источник

VM

Vitaly Mashanov in Saint P Ruby Community
На ютубе есть, на канале РР
источник

IM

Igor Morozov in Saint P Ruby Community
❤️
источник

RI

Rustam Ibragimov in Saint P Ruby Community
мне кажется,  не совсем логично foo.new.call(...) сравнивать с foo.new(...).call (допустим),
т.к. foo.new.call(..) ты можешь потом коллить сразными аттрибутами, а foo.new(..) в принципе один раз аттрибуты заинстанцирует и по памяти типа дешевле, но ты одну и туже операцию вызываешь многократно, и тут другие уже проблемы и вещи в принципе происходят (разное поведение в принципе И то, как ты это будешь использовать 🙂 )

а foo.call(...) в реализация может быть разной от случая к случаю (как функциональный объект, который неявно инстанцируется в call, или как модуль без состояния - просто module foo.call(...) без инстанцирования (типа один глобальный инстанс сервисника))

@morozzzko если прям вот эти все кейсы разберешь - было бы оч круто потом твои размышления и мысли послушать 🙂
источник

IM

Igor Morozov in Saint P Ruby Community
Да, вот именно все эти кейсы хочу посмотреть и понять их цену и применимость

И мб выяснить, что нет ничего страшного в том, что кто-то кладёт аргументы вызова в конструктор, а потом просто дёргает #call, а я просто с жиру бешусь
источник

MS

Mikhail Sytchev in Saint P Ruby Community
+ насчет расшарить мысли
источник

A

Alex in Saint P Ruby Community
Ванную, что никакой разницы не будет.
источник

IM

Igor Morozov in Saint P Ruby Community
В памяти будет разница между тремя вариантами:

1. инстанциируешь объект и переиспользуешь между запросами
2. на каждый запрос спаунишь по объекту и выкидываешь
3. не инстанциируешь объектов
источник

IM

Igor Morozov in Saint P Ruby Community
Ну и в производительности эти 3 варианта тоже по-разному будут, по идеи.

Но есть ещё идеологии и прагматизм — что-то делать некорректно потому что есть какие-то убеждения. Какие-то штуки делать удобно потому что можно сделать ХХХ

Вот эти различия — ценные
источник

IM

Igor Morozov in Saint P Ruby Community
Хочу навсегда закрыть для себя вопрос с этими штуками. Иметь точку для разговоров «вот решение, вот последствия, договорились юзать? ок, пошли дальше». а то слишком много времени на такие штуки можно потратить
источник

A

Alex in Saint P Ruby Community
Все эти накладные расходы -- обычно копейки по сравнению с тяжестью бизнес-логики.
источник

AD

Anton Davydov in Saint P Ruby Community
Igor Morozov
В памяти будет разница между тремя вариантами:

1. инстанциируешь объект и переиспользуешь между запросами
2. на каждый запрос спаунишь по объекту и выкидываешь
3. не инстанциируешь объектов
Service.call(params)
Service.new.call(params)
Service.new(params).call
Service.new(options).call(params)
Service.new(dependencies).call(params)
источник

IM

Igor Morozov in Saint P Ruby Community
Anton Davydov
Service.call(params)
Service.new.call(params)
Service.new(params).call
Service.new(options).call(params)
Service.new(dependencies).call(params)
❤️
источник

IM

Igor Morozov in Saint P Ruby Community
Alex
Все эти накладные расходы -- обычно копейки по сравнению с тяжестью бизнес-логики.
а вот споров вокруг них — до жопы. хочется их закрыть)
источник

SZ

Slava Zharkov in Saint P Ruby Community
мне бы скорее интересно про идеи и убеждения услышать
источник

IM

Igor Morozov in Saint P Ruby Community
я вот за жизнь больше рабочей недели потратил на обсуждения такой херни. а мог бы делом заниматься

… сказал я в чате в рабочее время

но спасибо за идеи и мнения ❤️
источник

A

Alex in Saint P Ruby Community
Как по мне, это вопрос кодстайла, который должен быть согласован на уровне команды/проекта. Принципиального отличия между всеми этими способами нет.
источник