
Хотелось бы сделать это в виде стрима или видео, но это довольно затратно. Поэтому если вам такой формат понравился - дайте знать.
https://gist.github.com/davydovanton/a8f3cab112e43cfafbcbbfae2472f6c7
Size: a a a
# bad
def action(params)
service = Container['http://amp.gs/3HFd']
http://amp.gs/3HFO(params)
end
# also bad
def action(container = Container)
service = container['http://amp.gs/3HFd']
http://amp.gs/3HFO(params)
end
# bad
def action(params)
service = Container['services.show']
service.call(params)
end
# also bad
def action(container = Container)
service = container['services.show']
service.call(params)
end
UserService
из статьи об агрегатах, там еще походу опечатка ибо код не работает как должен), но статьи будут полезны для общего развития, а также, что бы понять что проблема DDD в том, что нет конкретики и стандартизации в терминах. Так же хотелось бы видеть отдельную статью по сервисам, потому что хочется видеть какую логику автор хочет держать в энтити, а какую в сервисе.Team -> Member, Team -> Project
), где дает определение агрегатам и объясняет в чем абстракция может помочь. Дальше происходит разбор системы с агрегатами, описывается, почему дупликации данных между агрегатами не проблема и как можно сохранять агрегаты (CQRS, relation model, event sourced). О ES дается подробное объяснение принципа работы сохранения агрегатов. Дальше описывается самая сложная часть - как найти "хороший" размер и границы для каждого из агрегатов. А в конце объясняется Optimistic Concurrency и зачем это надо.apache + rails + mysql
развивался и превратился в систему с кешированием, search engine, брокером на RabbitMQ и большим количеством асинхронных фичей. Авторы описывают каждый переход и объясняют почему появился каждый новый переход. Нравится, что статья не перегружена деталями и расписывает каждый переход поверхностно, но при этом, объясняет почему и зачем это надо было.