Size: a a a

2019 December 29

V

V in pro.elixir
Ни слова про Ubiquitous Language и Conway's Law. Очень поверхностная статья.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Зачем дублировать Фаулера? В этом нету смысла, его можно прочитать и так.
Основная мысль: в Фениксе есть контексты, они нужны для того-то, и они не имеют НИКАКОГО ОТНОШЕНИЯ к DDD и Bounded Contexts. Конец статьи
источник

AU

Alexander Uljev in pro.elixir
Офигенно же, что разработчики Эликсира и Феникса зашивают прямо в базовую сборку такой необходимый функционал
источник

V

V in pro.elixir
Alexander Uljev
Офигенно же, что разработчики Эликсира и Феникса зашивают прямо в базовую сборку такой необходимый функционал
Только Феникса. Эликсир - просто язык, вне определённых техник.
источник

AU

Alexander Uljev in pro.elixir
Ну ладно, реализация Эликсира
источник

AU

Alexander Uljev in pro.elixir
Микс, тесты, доки - всё есть вне Феникса
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Башка уже болит от великих software designers, у которых «у меня же контексты в Фениксе из коробки, поэтому DDD у меня тоже из коробки»
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Хотя те контексты, которые феникс генерирует из коробки, относятся вообще к persistence layer
источник

V

V in pro.elixir
Źmićer Rubinštejn
Зачем дублировать Фаулера? В этом нету смысла, его можно прочитать и так.
Основная мысль: в Фениксе есть контексты, они нужны для того-то, и они не имеют НИКАКОГО ОТНОШЕНИЯ к DDD и Bounded Contexts. Конец статьи
Я встречал подобное [осмысленное] существование контекстов в приложениях только с целью вынесения домена в контекст. Для чего их предлагается использовать в статье? Для скрытия деталей реализации?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Контекст в фениксе нужен чтобы переисполбзовать User |> changeset |> Repo.create. Потому что иначе куда их засунуть? В каждый контроллер и сервис? Нет, получается copy paste. В модель? Но модели не существует, потому что это не ActiveRecord
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вот и придумали дополнительный слой абстракции
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Конец
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А потом набежали чукчи, у которых триггер на слово «контекст» и стали придумывать, как упихнуть это все в DDD
источник

ВК

Василий Кузнецов in pro.elixir
Źmićer Rubinštejn
Зачем дублировать Фаулера? В этом нету смысла, его можно прочитать и так.
Основная мысль: в Фениксе есть контексты, они нужны для того-то, и они не имеют НИКАКОГО ОТНОШЕНИЯ к DDD и Bounded Contexts. Конец статьи
насколько я понял, в статье указано, что контекст может в этом помочь, но его использование далеко не обязательно
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Василий Кузнецов
насколько я понял, в статье указано, что контекст может в этом помочь, но его использование далеко не обязательно
В статье сказано, что контекст решает некоторые проблемы, которые другим способом решает DDD. Вообще то они ортогональны.

Единственное что может помочь: правильное разделение persistence layer на контексты поможет чётче увидеть границы между bounded contexts - в некоторой степени.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Однако bounded context - это бизнес, в то время как Phoenix context вообще нет
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Например стандартный контекст Sessions - к какому домену отнесём? Да хз, бизнесу вообще насрать на такие вещи, сессий нету в терминологии ни одного «operation» отдела вашей организации
источник

ВК

Василий Кузнецов in pro.elixir
Źmićer Rubinštejn
Например стандартный контекст Sessions - к какому домену отнесём? Да хз, бизнесу вообще насрать на такие вещи, сессий нету в терминологии ни одного «operation» отдела вашей организации
ни к какому, верно
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А jwt токены и куки где-то делать надо.
источник

V

V in pro.elixir
Źmićer Rubinštejn
Контекст в фениксе нужен чтобы переисполбзовать User |> changeset |> Repo.create. Потому что иначе куда их засунуть? В каждый контроллер и сервис? Нет, получается copy paste. В модель? Но модели не существует, потому что это не ActiveRecord
Это скрытие деталей реализации за интерфейсом. Можно использовать контексты феникса только для этой цели и ограничиться. Можно пойти дальше.
источник