@rubylang

Страница 569 из 1684
Сергей
03.11.2016
13:59:07
кто-нибудь юзал DCI паттерн с рельсами?

Igor
03.11.2016
14:07:49
http://dci-in-ruby.info/

це есть пример на рельсе

староват правда

Google
I
03.11.2016
14:12:32
вилка по зп какая?
80-120 пишут же

yopp
03.11.2016
14:12:38
где пишут-то?

I
03.11.2016
14:12:49
в самой вакансии

а так надо всегда писать свой максимум

Konstantin
03.11.2016
14:23:07
@dd_bb в превью видно

yopp
03.11.2016
14:26:31
кто-нибудь юзал DCI паттерн с рельсами?
я вот не вижу профита в DCI в целом

из того что я видел, контексты получаются жутко тяжелые и размазанные

Сергей
03.11.2016
14:27:20
в этом и есть исскуство DCI

yopp
03.11.2016
14:27:26
в итоге у тебя есть один класс, в котором один метод

Сергей
03.11.2016
14:27:29
один бизнес-кейс == один контекст

yopp
03.11.2016
14:27:31
в котором 10 объектов

и вся логика в 10 объектах, которые опять куда-то размазаны

Google
Сергей
03.11.2016
14:28:01
так ну ясно)

это из-за того, что многим сложно отказаться от мышления контроллерами и моделями

yopp
03.11.2016
14:28:33
ну вон даже в статье на том сайте

перевод между счетами уже три класса

Сергей
03.11.2016
14:28:54
не три класса а один класс и 2 модуля

yopp
03.11.2016
14:29:27
вот и я говорю, три класса :)

плюс вот такое: source_account.extend SourceAccount

Сергей
03.11.2016
14:30:40
вот и я говорю, три класса :)
модули это не классы

yopp
03.11.2016
14:30:49
ой всё

модуль сам по себе никакого смысла не имеет, если брать концепцию языка

модуль это разносчик методов

Сергей
03.11.2016
14:31:17
тонкие контроллеры, тонкие модели, и классы-кейсы по мне отлично просто нужно учиться работать с этим

Антон
03.11.2016
14:31:32
Sergey
03.11.2016
14:31:53
yopp
03.11.2016
14:31:57
https://www.sitepoint.com/dci-the-evolution-of-the-object-oriented-paradigm/

плюс в этом примере я вижу огромную проблему

в def transfer_out amount спрятали context.destination_account.transfer_in amount

короче никакой проблемы не решили, а создали кучу новых

Сергей
03.11.2016
14:33:41
что почитать на эту тему чтобы так с примерами для тупых?)
врятли смогу подсказать но возможно уговорю человека, который сильно шарит, написать статью

Sergey
03.11.2016
14:34:06
Я уже благодарен за попытку )

Google
Сергей
03.11.2016
14:35:00
короче никакой проблемы не решили, а создали кучу новых
этому паттерну более 20 лет То что Вы не умеете его использовать, не работает в Вашу пользу А всего лишь доказывает, что паттерн не лишен недостатков, как и все остальные. Использование паттерна в соответствии с рекомендациями, решает проблемы сложных бизнес-кейсов, а также тестирования этих самых кейсов

yopp
03.11.2016
14:35:24
пфф

если мне с первого раза не могут показать нормальный кейс, где паттерн оправдан, то о чём мы тут вообще говорим?

в показаном кейсе, паттерн сделал всё сильно сложнее, чем просто банальный service object

Сергей
03.11.2016
14:36:11
пфф
не вижу смысла дальше переписываться

Антон
03.11.2016
14:36:27
если нет простого примера, то это заумь, маркетинг, ватевар еще

yopp
03.11.2016
14:36:48
ну окей!

если нет простого примера, то это заумь, маркетинг, ватевар еще
пример простой, но он не показал какие реально проблемы должен решить паттерн

Сергей
03.11.2016
14:37:39
если нет простого примера, то это заумь, маркетинг, ватевар еще
Зачем нужна квантовая механика вообще тогда Простых примеров её использования и практической пользы нет впринципе

yopp
03.11.2016
14:37:41
потому что проблему нормально не смогли сформулировать

идее что земля плоская уже сколько лет?

yopp
03.11.2016
14:38:07
тоже паттерн-же!

Антон
03.11.2016
14:38:26
Зачем нужна квантовая механика вообще тогда Простых примеров её использования и практической пользы нет впринципе
квантовая механика решает конкретные проблемы они юзают паттерны вполне привычные научным лудям

yopp
03.11.2016
14:39:05
также и здесь
здесь не смогли нормально сформулировать проблему

ты тоже не можешь нормально объяснить какую конкретно решает этот паттрен

Сергей
03.11.2016
14:39:23
ок

Огромные и сложные бизнес-кейсы

yopp
03.11.2016
14:39:38
что значит «огромные и сложные»?

Google
Сергей
03.11.2016
14:39:40
размазанная бизнес-логика по куче объектов

yopp
03.11.2016
14:39:52
что значит «размазанная бизнес-логика»?

ты можешь простой пример придумать?

и показать MVC vs DCI

или любой другой паттерн сравнить с DCI

где будет очевидно приемущество DCI?

Сергей
03.11.2016
14:40:56
и показать MVC vs DCI
я не собираюсь заменить MVC

Admin
ERROR: S client not available

Сергей
03.11.2016
14:41:06
а использовать их вместе

Igor
03.11.2016
14:41:11
https://www.youtube.com/watch?v=4UhESx6vK4c

впринципе это видео хорошо описывает DCI

yopp
03.11.2016
14:42:20
а использовать их вместе
так вот внимание вопрос: какую проблему это должно решить-то?

Сергей
03.11.2016
14:42:29
что значит «размазанная бизнес-логика»?
это значит если взять бизнес-кейс, и посмотреть по коду места его реализации и увидеть, что в модели куча методов, в контроллере код который использует кучу моделей. Нельзя просто взглянуть в одно место и посмотреть как это работает. В модели есть куча методов и никак нельзя понять где используются методы

yopp
03.11.2016
14:42:41
так и в DCI нельзя!

Сергей
03.11.2016
14:42:55
yopp
03.11.2016
14:42:56
если у тебя будет сложная логика, у тебя будет три ведра контекстов, четыре вагона ролей

и в итоге у тебя всё опять размажется по куче мест

yopp
03.11.2016
14:43:32
ну вот на простой трансфер между счетами уже класс и два модуля

Сергей
03.11.2016
14:43:45
всё в одном файле

Google
yopp
03.11.2016
14:43:48
лол

аргументы один круче другого

там из логики только проверка баланса

теперь давай подумаем о простых вещах, например кредитном лимите, лимите на операции, кешбеке?

Сергей
03.11.2016
14:44:32
так попросили простой пример

польза DCI видна только на сложных кейсах

yopp
03.11.2016
14:44:55
ох

Сергей
03.11.2016
14:45:05
тоже самое как вообще использовать дико сложный фреймворк для очень простых вещей

Sergey
03.11.2016
14:45:06
Можно на правах нуба задам вопрос - а какую архитектуру предпочитаете, Вы, @dd_bb ?

Сергей
03.11.2016
14:46:18
отличный ответ, чо

yopp
03.11.2016
14:46:33
какой вопрос, такой ответ, чо!

мне нравится решать конкретные проблемы, а не абстрактные в вакууме

Сергей
03.11.2016
14:47:06
можно было не отвечать

yopp
03.11.2016
14:47:27
по этому мне вот эти абстрактные вещи про «DCI работает только на больших кейсах» полная хуета

Антон
03.11.2016
14:47:27
Можно!
def transfer amount in_context do source_account.transfer_out amount end end я не понимаю что это знанчит читаю: вывести деньги со счета эмэмэм куда вывести?

Сергей
03.11.2016
14:47:49
source_account

ну хз

я так-то согласен что пример не очень

Страница 569 из 1684