Size: a a a

pro.rb (Ruby/Rails / RU)

2021 April 19

FK

Fedor Koshel in pro.rb (Ruby/Rails / RU)
Я однажды тоже хотел так сделать, но тимлид прижег мне пальцы утюгом и я не смог.
источник

FK

Fedor Koshel in pro.rb (Ruby/Rails / RU)
Вообще что бы такое не использовать есть паттерны проектирования
источник

IK

Ivan Kokorev in pro.rb (Ruby/Rails / RU)
Описать задачу, чтобы посмотреть, как её решат паттерны проектирования, или не стоит тратить время на ерунду?
источник

NB

Nikita Bulai in pro.rb (Ruby/Rails / RU)
Если методов много, то не слишком (лично для меня). Но это дело вкуса же
источник

AM

Anton Machkasov in pro.rb (Ruby/Rails / RU)
Опиши) Как минимум мне очень интересно)))
источник

IK

Ivan Kokorev in pro.rb (Ruby/Rails / RU)
Нужно сделать ActiveRecord-класс Server
Сервер бывает разных производителей (например, Supermicro, Lenovo, Dell - определяется http-запросом к серверу) и с разными операционными системами (например, Windows, Linux, Esxi - определяется по значению поля в базе)
У каждого сервера есть одинаковые методы (перезагрузись, установи операционную систему и так далее) с разной реализацией, зависящей от производителя и операционной системы
источник

IK

Ivan Kokorev in pro.rb (Ruby/Rails / RU)
Производителезависимые методы нужны не всегда, и Server можно пользоваться без них в 50% задач
источник

ℹ🅿

ℹ️ 🅿️ in pro.rb (Ruby/Rails / RU)
Звучит как наследование
источник

IK

Ivan Kokorev in pro.rb (Ruby/Rails / RU)
Ага
Как будем наследовать два класса?
источник

A

Alexander in pro.rb (Ruby/Rails / RU)
Звучит как STI
источник

ℹ🅿

ℹ️ 🅿️ in pro.rb (Ruby/Rails / RU)
Да и одного достаточно
источник

IK

Ivan Kokorev in pro.rb (Ruby/Rails / RU)
Одного - это какого?
DellWindowsServer < Dell, Windows, Server
источник

ℹ🅿

ℹ️ 🅿️ in pro.rb (Ruby/Rails / RU)
Так погоди, от сервера и достаточно
А остальное - уже детали поведения, не стоит все в одну кучу мешать
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
dependency injection
источник

AD

Anton Davydov in pro.rb (Ruby/Rails / RU)
а он тут зачем?
источник

ℹ🅿

ℹ️ 🅿️ in pro.rb (Ruby/Rails / RU)
Ага, хоть его можно вставить для подключения зависимостей, хоть просто адаптеры для поведения описывать
источник

ℹ🅿

ℹ️ 🅿️ in pro.rb (Ruby/Rails / RU)
В общем, спорное решение
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
ну типа же на какой машине он построен нужно же ещё сконфигурировать, но от реализации сервиса не должен зависеть
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
Аля у винды должна быть версия
источник

FK

Fedor Koshel in pro.rb (Ruby/Rails / RU)
Наследование плюс dependency injection специализированной логики из отдельного класса
источник