Доступна оплата мастер-классов российскими и иностранными картами, ЮMoney, быстрыми платежами СБП и SberPay

DevConf 2018 и слайды про Агрегатное мышление

В пятницу и субботу в Москве в центре Digital October и в офисе Action провели DevConf 2018. Было круто! Выступил с докладом о проектировании доменных агрегатов, где показал примеры инкапсуляции бизнес-логики внутрь доменных сущностей и декомпозиции внутренностей по ответственностям:

Первым делом, говорю спасибо организаторам Conf.Guru за выбор места и Digital October за удобную сцену с отличным экраном! Это намного круче, чем проектор!

Приятное в тематических конференциях – доклады, еда и кулуары. Беседы с интересными людьми о проектах, образовании, партнёрствах, развитии отрасли. Это эффективный инструмент обмена опытом и щедрый источник вдохновения для новых свершений:

Вдруг подходит Пётр Мязин и дарит наклейку Пятиминутки PHP. Мир тесен! Поговорили о хобби и о деле жизни. Поделились небольшими профессиональными секретами. Поблагодарили друг друга за общественный вклад:

На сцене выступление спикера не заканчивается. О многом интересном ещё можно поговорить и после. Посидеть на диване или пообедать со своими зрителями или читателями. Обсудить доклад. Посоветовать книги или статьи. Подсказать, как им довести до ума их проекты, чтобы работа с ними стала легче и приятнее. Могут даже пригласить к себе в гости... Подумаю об этом :)

Вокруг так много умных и талантливых людей!

Сотни программистов, техлидов и менеджеров, которые хотят стать лучше. Которым не безразлично качество их работы. Которые любят учиться. С которыми интересно общаться. Которые решились податься в путешествие на конференцию вместо пятничных сериалов.

Судя по разговорам, практически каждый здесь может выйти на сцену и рассказать интересную историю из своей профессиональной жизни. Приятно, что люди развиваются. Что стараются. Что слушают друг друга. Задают вопросы. Что не пускают свою жизнь на самотёк.

Надеюсь, что все остались довольны. Что стали в своём деле хоть немного лучше и нашли себе новых партнёров и друзей.



Судя по комментариям, все заждались продолжения скринкастов по фреймворкам. Код уже готов, скоро запишу. А пока подключайтесь к моим полезным каналам:

Там в реальном времени публикуем отчёты о посещённых мероприятиях, заметки о бизнесе и спонтанные инсайты, о которых не пишу сюда на сайт.


Комментарии

 

godii

При всем уважение, но уже не первый доклад - краткий пересказ пары глав из ddd in php и подобного. Тем более, учитывая название, хотелось бы услышать что нибудь про какие нибудь сложные аггрегаты, примеры оптимизации оных и тд и тп. А получается опять 25.

Ответить

 

Дмитрий Елисеев

> Хотелось бы услышать что нибудь про какие нибудь сложные аггрегаты, примеры оптимизации оных и тд и тп.

В докладе агрегат заказа совместных покупок уже достаточно сложный и реальный. Подробнее про агрегаты с оптимизацией через ленивую загрузку есть цикл статей. А вообще, сложные агрегаты как раз никто не делает и никакя дополнитеьная оптимизация им не нужна.

> А получается опять 25.

Так везде и будет. Хотите увидеть супер-мега-метод в 500 строк? Нигде не увидите. Сложные агрегаты и сложные методы никто не пишет. Большие методы в процессе рефакторинга разбивают на мелкие по ответственностям, большие агрегаты дробят на мелкие по контекстам.

Ответить

 

go

> А вообще, сложные агрегаты как раз никто не делает и никакя дополнитеьная оптимизация им не нужна.

Ну вот взять того же Вернона. У него достаточно примеров когда инфраструктурные детали влияют на аггрегат. В том числе и на решение раздробить его. К тому же в зависимости от выбранной инфраструктуры (орм, бд) оптимизации всеравно могут проникать в домен, в том числе и в код аггрегата.

> Большие методы в процессе рефакторинга разбивают на мелкие по ответственностям, большие агрегаты дробят на мелкие по контекстам.

Так точно. В противовес есть правило "изменение 1 аггрегата в рамках транзакции". А так же такие вещи как транзакционная и итоговая согласованность, границы инварианта и тд. Вобщем такие базовые вещи о использование (позитивные/негативные примеры, опыт) которых и хотелось бы услышать в презентации "Агрегатное мышление".

> Сложные агрегаты и сложные методы никто не пишет

Я совершенно не это имел ввиду.

Ответить

 

Дмитрий Елисеев

> У него достаточно примеров когда инфраструктурные детали влияют на агрегат. В том числе и на решение раздробить его.

Необходимость оптимизации проявляется только в виде исключения, если появляются тысячи или миллионы вложенных элементов. А такое бывает очень редко.

> А так же такие вещи как транзакционная и итоговая согласованность, границы инварианта и тд.

Тогда бы это был пересказ глав про контексты и их взаимодействие через доменные события.

Ответить

 

godii

> Тогда бы это был пересказ глав про контексты и их взаимодействие через доменные события.

Справедливо. Но, мне понравился ваш доклад, только проблема в том что я видел его год назад, и пол года назад от другого докладчика. А вот вольного пересказа "глав про контексты и тд" с примерами интеграции, личным опытом, подводными камнями... Таких докладов сейчас практически нет, а хотелось бы.

Ответить

 

xfg

Ну это всё подробно описывается у Вернона. Я бы хотел, чтобы Дмитрий уделял внимание не только бекенду, но и фронтенду, в частности программированию 3d графики. Там популярна архитектура entity-component-system по которой вообще нет книг, только разрозненные статьи и параллельно можно было бы подтянуть знания по линейной алгебре, векторам и матрицам преобразований без которых никуда в 3d. Все таки в эре webgl живем. Можно начать с webgl, затем съехать на библиотеки, но так чтобы абстрагировать код приложения от этих библиотек. Но упор всё же сделать именно в математику необходимую для программиста 3d графики.

Ответить

 

Дмитрий Елисеев

Менеджер ответил. Всё нормально.
Спасибо, что сообщили!

Ответить

 

Паша

А видео то будет?

Ответить

 

Дмитрий Елисеев

Видео не снимали.

Ответить

 

Alma

Оо, Дима костюмчик надел..

Ответить

Оставить комментарий

Войти | Завести аккаунт | Войти через


(никто не увидит)





Можно использовать теги <p> <ul> <li> <b> <i> <a> <pre>