Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Я рекомендую сначала ознакомиться с Базовыми видео, от основателя этого термина Эрика Эванса, чтобы понять его философию и причины возникновения.

Основы DDD от основателя. Видео.

Погружаемся в DDD

Быстрая обзорная статья по DDD от Microsoft

https://docs.microsoft.com/ru-ru/archive/msdn-magazine/2009/february/best-practice-an-introduction-to-domain-driven-design

Статьи на русском по основным принципам DDD

Книги по DDD, "о которых все говорят"

Эти книги точно стоит приобрести и прочитать, а потом много-много раз в процессе работы к ним возвращаться. Когда вас спрашивают, насколько вы знаете DDD, можете щеголять цветами прочитанных книг, посвященные в тему вас поймут :)

План обучения

Я бы даже назвал его план последовательного освоения материала, чтобы именно погружаться в тему постепенно, а не бултыхнуться в нее с кучей неизвестных терминов.

Для части пунктов не приведены ссылки сознательно, обычно одна статья покрывает несколько пунктов, поэтому воспользуйтесь ссылкой из пункта выше, чем тот который вас интересует.

Более полное погружение в DDD

Другие полезные ресурсы о DDD, CQRS, EventSourcing

Сборники ресурсов по DDD

https://github.com/heynickc/awesome-ddd#contents

Сборник ресурсов по eventStorming

https://virtualddd.com/learning-ddd/awesome-eventstorming

Курсы

Курс обучения (10 дней бесплатно, потом $29/месяц)

Domain-Driven Design Fundamentals

https://www.pluralsight.com/courses/domain-driven-design-fundamentals

Буду рад комментариям и дополнениям.

Комментарии (2)


  1. xini
    25.02.2022 13:34
    +3

    Большое спасибо! Бесценно иметь все в одном месте под рукой


  1. altexxx
    27.02.2022 19:17

    Хорошая статья, много полезных ссылок, спасибо.

    Я сам тоже собирал ссылки на тему DDD, и многие из них уже в статье есть, но некоторыми хотел поделиться дополнительно для полноты картины.

    PS. Ссылки на книги не реферальные, а для быстрого поиска.

    1. Книга "Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)" - https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164

      Отличная книжка про архитектуру от автора принипов SOLID. Так же рассказывает про дальнейшее развитие этих принципов на более высокие уровни, например, при переходе с уровня классов к уровню модулей и компонентов. Хорошо перекликается с другими книжками по архитектуре (много общего с DDD и MDD). Читал в оригинале, про переводы не знаю. Английский среднего уровня, много новых слов. Легендарный автор рассказывает что такое архитектура, и как её правильно готовить. При этом не важно какой язык программирования, и даже какой его тип, потому что принципы не поменялись с того времени, когда он стал программистом, 50+ лет назад. В очередной раз с другого ракурса объясняет и демонстрирует, что архитектура - это не про фреймворки, и не обязательно они не должны оказывать влияние на архитектуру.

    2. Patterns, Principles, and Practices of Domain-Driven Design - https://www.wiley.com/en-ie/Patterns,+Principles,+and+Practices+of+Domain+Driven+Design-p-9781118714706

      Книга затрагивает не только DDD, но и ES и CQRS, с упором на практическое применение. Логическое продолжение книги "Реализация методов предметно-ориентированного проектирования".

      Открывает новые архитектурные подходы, в виде ES, CQRS, на примерах с современным набором инструментов, в виде REST протокола, мессаджингом и так далее. Опять же упор на практику, в более современном виде.

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

    3. Хорошие статьи Mattias Noback про DDD и архитектуру, на тему того как менялось понимание хорошей архитектуры, двигаясь от активной пропаганды конкретного фреймворка, через углубление в DDD и Hexagonal Architecture, к пониманию, что фреймворк это не главное, и надо строить архитектуру не завязываясь на него, по возможности
      * https://php-and-symfony.matthiasnoback.nl/2017/07/layers-ports-and-adapters-part-1-introduction/
      * https://php-and-symfony.matthiasnoback.nl/2017/08/layers-ports-and-adapters-part-2-layers/
      * https://php-and-symfony.matthiasnoback.nl/2017/08/layers-ports-and-adapters-part-3-ports-and-adapters/

    4. “Microservices for everyone” - Mattias Noback
      https://leanpub.com/microservices-for-everyone
      Книга про то, как современные технологии объединяют основные подходы в DDD, ES, CQRS и гармонично выливаются в теорию и практику микросервисов.

    5. (Видео курсы) Domain Driven Design, CQRS, and Event Sourcing
      http://subscriptions.viddler.com/GregYoung

      Видео курсы на тему DDD/ES/CQRS и архитектуру. От автора самого термина CQRS.

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

    6. DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together
      https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/
      Статья, в которой собрано всё вместе, с хорошей схемой, иллюстрирующей как все эти подходы соотносятся друг с другом.