Отличный (хотя и немного капитанский) доклад Сэма Ньюмена про сокрытие информации.
Очень понравилась часть про coupling: он делит на несколько видов и выстраивает их в иерархию от самой слабой связанности на уровне домена до самой сильной на уровне контента. Я раньше в голове не делил по видам, хотя подсознательно понимал эти степени.
Также крутая тема со скрытием информации. Очень важно понимать, что, во-первых, чем больше вы расшарили информации, тем дальше будет тяжелее и, во-вторых, явным раскрытием проще управлять.
Ограниченные контексты и агрегаты как раз и направлены на то что скрыть информацию, а то что не скрыто показать явно. Для меня теперь любая анемичная дырявая модель – пример content coupling (aka Pathological coupling): ни контракта, ни инвариантов, никакой явности, даже семантика полей разъезжается иной раз.
Сделал майндмап, можно пробежаться по основным тезисам прежде чем смотреть доклад целиком.
P.S. не смог нагуглить быстро про Tramp Coupling – знаете, что это такое?
Очень понравилась часть про coupling: он делит на несколько видов и выстраивает их в иерархию от самой слабой связанности на уровне домена до самой сильной на уровне контента. Я раньше в голове не делил по видам, хотя подсознательно понимал эти степени.
Также крутая тема со скрытием информации. Очень важно понимать, что, во-первых, чем больше вы расшарили информации, тем дальше будет тяжелее и, во-вторых, явным раскрытием проще управлять.
Ограниченные контексты и агрегаты как раз и направлены на то что скрыть информацию, а то что не скрыто показать явно. Для меня теперь любая анемичная дырявая модель – пример content coupling (aka Pathological coupling): ни контракта, ни инвариантов, никакой явности, даже семантика полей разъезжается иной раз.
Сделал майндмап, можно пробежаться по основным тезисам прежде чем смотреть доклад целиком.
P.S. не смог нагуглить быстро про Tramp Coupling – знаете, что это такое?
YouTube
Hiding The Lead - Sam Newman
Information hiding, coupling, and cohesion, microservices-style
The terms coupling and cohesion come from the world of structured programming, but they are also thrown about in the context of microservices. In this session, I look at the applicability of…
The terms coupling and cohesion come from the world of structured programming, but they are also thrown about in the context of microservices. In this session, I look at the applicability of…
Небольшой опрос, приключение на пару минут https://www.menti.com/8ek7z9uxrk
UPD Пробелы ставить можно и нужно!)
UPD Пробелы ставить можно и нужно!)
Forwarded from Andrey Ratushniy
Коллеги, завтра в рамках онлайн митапа по PHP будет доклад на тему DDD. Участие бесплатное https://simbirsoft.timepad.ru/event/1467649/
simbirsoft.timepad.ru
Online-митап по PHP от SimbirSoft / События на TimePad.ru
Если вы занимаетесь разработкой на PHP и хотите обсудить кейсы из практики ─ подключайтесь к нашему новому онлайн-митапу! Эксперты IT-компании SimbirSoft представят несколько докладов, поделятся опытом и ответят на вопросы. По традиции мы вручим подарки…
Сегодня рассказывал про агрегаты на Archdays2020. Примеры кода и референсы доступны по ссылке. Репозиторий будет обновляться.
GitHub
GitHub - GraDea/aggregates
Contribute to GraDea/aggregates development by creating an account on GitHub.
Это был тяжелый год, был он тяжелей чем тот (с)
Есть желание 17 декабря проводить старый год каким-нибудь онлайн-мероприятием. Какой формат вам нравится больше? Можно выбрать несколько.
Есть желание 17 декабря проводить старый год каким-нибудь онлайн-мероприятием. Какой формат вам нравится больше? Можно выбрать несколько.
Anonymous Poll
75%
Воркшоп с кодом (про агрегаты, например, или что-то еще)
21%
Пара классический докладов
9%
Сессия Lean coffee
23%
Круглый стол с экспертами
1%
Другое, напишу в комментариях.
Поделился своим видением на Domain-Driven Design
Заодно похрустели пиццей на камеру 🍕🍕🍕
https://www.youtube.com/watch?v=I0WI28QmjCc
P.S. Подготовка нового мероприятия в полном разгаре, stay tuned, скоро будет анонс!
Заодно похрустели пиццей на камеру 🍕🍕🍕
https://www.youtube.com/watch?v=I0WI28QmjCc
P.S. Подготовка нового мероприятия в полном разгаре, stay tuned, скоро будет анонс!
YouTube
Moscow Python Podcast. Domain-driven design (level: All)
В гостях у Moscow Python Podcast Евгений Пешков разработчик в компании Dodo Engineering. Поговорили с Евгением о том, что такое DDD и зачем он нужен.
Канал Евгения - https://news.1rj.ru/str/dddevotion
Ведущие выпуска — сооснователь MoscowPython и компании DryLabs…
Канал Евгения - https://news.1rj.ru/str/dddevotion
Ведущие выпуска — сооснователь MoscowPython и компании DryLabs…
https://www.youtube.com/watch?v=SaTz4vS_CGE подоспело видео про агрегаты с Archdays2020.
YouTube
ArchDays 2020 • Агрегаты, мои агрегаты, как приятно о вас думать! • Евгений Пешков (Dodo Eng)
Агрегаты, мои агрегаты, как приятно о вас думать! - Евгений Пешков
Агрегат выглядит простым паттерном, но разработчики не всегда полностью понимают как правильно работать с агрегатом, как находить его границы, как реализовать взаимодействие нескольких агрегатов.…
Агрегат выглядит простым паттерном, но разработчики не всегда полностью понимают как правильно работать с агрегатом, как находить его границы, как реализовать взаимодействие нескольких агрегатов.…
По мотивам воркшопа написал статью про агрегаты https://habr.com/en/company/dododev/blog/532628/
Сперва думал, что я перенесу все что проговаривал, но понял что объем темы настолько велик, что плохо пихать все в одну статью. Теперь думаю над продолжением.
Сперва думал, что я перенесу все что проговаривал, но понял что объем темы настолько велик, что плохо пихать все в одну статью. Теперь думаю над продолжением.
Хабр
Агрегаты, мои агрегаты, как приятно о вас думать
В Domain-Driven Design выделяют стратегические и тактические паттерны. Например, первые — это Единый язык, а вторые — Агрегаты. Я много раз слышал от коллег, что...
23 декабря московским вечером планируем немного поболтать про код. Я не хочу делать формальный ивент с докладчиками и презами, но хочется пообщаться в неформальной обстановке.
Есть две опции.
1. Вам что-то не ясно в DDD. Вы бы хотели обсудить и увидеть как это делается. Напишите в комментариях.
2. Вам есть чем поделиться. Вы недавно (может и давно) запилили крутую штуку и можете показать код и рассказать что и как вы делали. Не надо думать, что крутые штуки бывают только у небожителей. Тот же Outbox Pattern вполне интересная штука и не все знают как это делается, что надо учесть. И тоже пишите в комментарии или в личку.
Ну и в любом случае присоединяйтесь!)
Есть две опции.
1. Вам что-то не ясно в DDD. Вы бы хотели обсудить и увидеть как это делается. Напишите в комментариях.
2. Вам есть чем поделиться. Вы недавно (может и давно) запилили крутую штуку и можете показать код и рассказать что и как вы делали. Не надо думать, что крутые штуки бывают только у небожителей. Тот же Outbox Pattern вполне интересная штука и не все знают как это делается, что надо учесть. И тоже пишите в комментарии или в личку.
Ну и в любом случае присоединяйтесь!)
https://dddevotion.timepad.ru/event/1509640/
В предыдущей статье была уже эта ссылка. Публикую еще раз.
Предновогодний митап с кодом и общением. Приходите! Если вы постоянно читаете канал, то можете не регистрироваться, 23 декабря вечером здесь будет дополнительный анонс с ссылкой на ютуб или зум (пока что решаем как будет удобнее).
В предыдущей статье была уже эта ссылка. Публикую еще раз.
Предновогодний митап с кодом и общением. Приходите! Если вы постоянно читаете канал, то можете не регистрироваться, 23 декабря вечером здесь будет дополнительный анонс с ссылкой на ютуб или зум (пока что решаем как будет удобнее).
dddevotion.timepad.ru
Пишем код по DDD / События на TimePad.ru
В Domain-Driven Design выделяют стратегические и тактические паттерны. Например, первые — это Единый язык и Ограниченные контексты, а вторые — Сущности, Доменные события или Агрегаты. мы постоянно слышим от коллег, что со стратегией всё понятно, но когда…
Уже завтра DDD-посиделки. Первый спикер - Андрей Ратушный @agratushniy. Андрей - активный участник сообщества, практикует Domain-driven design, с радостью согласился провести мастер-класс "От теории к коду".
Андрей так описывает этот воркшоп:
Я покажу, как можно сформировать структуру каталогов в фреймворке Symfony для разработки проекта с использованием ДДД подхода. Покажу примитивный слой супер-типов, а затем приступим к построению модели в порядке: Domain -> Application -> Ifrastructure -> Controller.
Повторяем процесс построения модели еще в двух контекстах. Затем соединяем это все при помощи событий. Пишем пару юнит, и пару интеграционных тестов на Behat.
Свои вопросы можете задавать в треде – мы постараемся ответить на все.
Андрей так описывает этот воркшоп:
Я покажу, как можно сформировать структуру каталогов в фреймворке Symfony для разработки проекта с использованием ДДД подхода. Покажу примитивный слой супер-типов, а затем приступим к построению модели в порядке: Domain -> Application -> Ifrastructure -> Controller.
Повторяем процесс построения модели еще в двух контекстах. Затем соединяем это все при помощи событий. Пишем пару юнит, и пару интеграционных тестов на Behat.
Свои вопросы можете задавать в треде – мы постараемся ответить на все.
Второй докладчик Владимир Хориков – автор книги Unit Testing Principles, Practices, and Patterns, автор блога и курсов на Pluralsight. Он расскажет про инкапсуляцию и изоляцию, а именно:
- почему важна инкапсуляция
- почему важна изоляция
- почему нельзя иметь и то и другое в большинстве случаев.
- почему важна инкапсуляция
- почему важна изоляция
- почему нельзя иметь и то и другое в большинстве случаев.
Ссылка на трансляцию митапа 23 декабря https://www.youtube.com/watch?v=UlEmtTJUwtA
@agratushniy и @vkhorikov огромное спасибо за доклады.
Ссылки, видео и дополнительные материалы опубликуем чуть позже.
К сожалению, не смогли ответить на все вопросы, но вы может задать их в чате.
Ссылки, видео и дополнительные материалы опубликуем чуть позже.
К сожалению, не смогли ответить на все вопросы, но вы может задать их в чате.
В начале года будет интересное мероприятие https://www.meetup.com/Virtual-Domain-Driven-Design-meetup/events/275246441/
Список участников впечатляет
Rebecca Wirfs-brock
Chris Richardson
Alberto Brandolini
Nick Tune
Krisztina Hirth
Trond Hjorteland
Крайне рекомендую!
Список участников впечатляет
Rebecca Wirfs-brock
Chris Richardson
Alberto Brandolini
Nick Tune
Krisztina Hirth
Trond Hjorteland
Крайне рекомендую!
Meetup
[Panel] Splitting systems towards bounded contexts and microservices, di 12 jan 2021, 19:30 | Meetup
Time: 19:30 CET
(WARNING, MEETUP DOES NOT ALWAYS PROVIDE THE CORRECT TIME IN YOUR TIMEZONE!!)
This will be a panel discussion.
> If you want to participate join zoom:
http
(WARNING, MEETUP DOES NOT ALWAYS PROVIDE THE CORRECT TIME IN YOUR TIMEZONE!!)
This will be a panel discussion.
> If you want to participate join zoom:
http
Репозиторий к докладу Андрея https://github.com/agratushniy/symfony-ddd-example
Вопросы и комментарии всячески приветствуются!
Вопросы и комментарии всячески приветствуются!
GitHub
GitHub - agratushniy/symfony-ddd-example: Пример реализации приложения с использованием DDD-подхода
Пример реализации приложения с использованием DDD-подхода - agratushniy/symfony-ddd-example
Помимо канала и чата есть группа в ФБ https://www.facebook.com/groups/dddevotion
Буквально недавно к ней присоединился сотый участник. Пока что там мало контента, даже не все что здесь пишем дублируется.
Если вы используете ФБ:
1. Присоединяйтесь.
2. Пишите и коментируйте)
Буквально недавно к ней присоединился сотый участник. Пока что там мало контента, даже не все что здесь пишем дублируется.
Если вы используете ФБ:
1. Присоединяйтесь.
2. Пишите и коментируйте)
Facebook
Log in or sign up to view
See posts, photos and more on Facebook.
