was successfully added to your cart.

Корзина

Энциклопедия. DDD Light. Полезные ссылки

!!! ВНИМАНИЕ DEPRECATED

Данная статья более неактуальна, потому что я успел сделать еще один скачок эволюции и перейти в сторону функциональщины, поэтому дальнейшие материалы будут выходить в рамках 2-х онлайн книг:

  1. λ Функционально Ориентированное Программирование (ФОП) λ
  2. ? Fatigue Driven Development (FDD) ?

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

  1. Theory
    1. (NEW) https://refactoring.guru/ru – про все паттерны человеческим языком и с картинками
  2. DDD
    1. Что можно узнать о Domain Driven Design за 10 минут? – проще и быть не может
    2. Domain services vs Application services – самая простая статья для понимания того, в чем отличие Доменной и логики Приложения
    3. Vaughn Vernon — How to Use Aggregates for Tactical Design
    4. Записки первая и вторая на тему перехода от Anemic к Rich Domain Model
  3. Validation
    1. Видео и презентация (офигенные) на тему подхода к валидации
    2. Статья. Что делать если изменяются требования к уже существующим сущностям.
  4. CQRS
    1. Рентабельный код 2: крадущийся DDD, затаившийся CQRS
    2. Command and Query Responsibility Segregation (CQRS) на практике – одна из лучших статей ever
    3. CQRS. Факты и заблуждения
    4. Как мы попробовали DDD, CQRS и Event Sourcing и какие выводы сделали
    5. Udi Dahan — If (domain logic) then CQRS, or Saga?
  5. Repository + Query Object
    1. Command and Query Responsibility Segregation (CQRS) на практике – Глава «Эволюция кода»
    2. Книга «Entity Framework Core in Action» – 4 и 10-ая главы о том, как совмещать (любой) ORM с DDD
  6. Clean / Onion / Hex Architecture
    1. Заблуждения Clean Architecture
    2. DDD, Hexagonal, Onion, Clean, CQRS… как я собрал всё это вместе
    3. https://habr.com/ru/post/267125/
  7. Vertical Slices
    1. Vertical Slice Architecture — Jimmy Bogard (eng)
    2. Максим Аршинов — Быстрорастворимое проектирование (видео) (статья) (rus)
    3. Encountering «Vertical Slice Architecture»… Is it incompatible with Clean Architecture? (там внизу еще куча ссылок) (eng)
  8. Node.js
    1. Khalil Stemmler (github) – он в самых дотоншых деталях рассказывает как сделать чистый DDD на Node.js + TS + выложил несколько репозиториев с примерами проектов. Просто бомба.
  9. Event Driven Architecture
    1. https://www.youtube.com/watch?v=1hwuWmMNT4c
    2. https://www.youtube.com/watch?v=STKCRSUsyP0
    3. https://emacsway.github.io/ru/domain-events-in-ddd/ – ах как я люблю его, сделал полный обзор вопроса причиноследственных связей использования Events и их типов
  10. Modular Monolith
    1. https://github.com/kgrzybek/modular-monolith-with-ddd – проект просто с кучей документации и шикарным примером того, как делать Модули в рамках Монолита
  11. Examples
    1. https://github.com/stemmlerjs/white-label & https://github.com/stemmlerjs/ddd-forum – DDD + TS , один из лучших примеров
    2. https://github.com/dotnet-architecture/eShopOnContainers – невероятно залайканный пример просто огромного ПО, которое включает в себя ВСЕ. Готовьте пару десятков часов на реальный lvl up своей насмотренности.
    3. https://github.com/VaughnVernon/IDDD_Samples – репозиторий от самого Vaughn Vernon! На мой взгляд среднячок и имеет некоторые ошибки, но точно стоит изучения
    4. https://github.com/citerus/dddsample-core – очень чистенький и приятный на изучение DDD проект (если что, основной код здесь)
    5. https://github.com/ddd-by-examples/factory – большой и прикольный проект, включающий все (но с ужасной структуризацией папок)
    6. Flutter + Firebase + DDD https://resocoder.com/category/tutorials/flutter/firebase-ddd/

Кого почитать / у кого я все пизжу

  1. Россия
    1. Федор Борщев
    2. Игорь Камышев
    3. Максим Аршинов
    4. Александр Бындю
    5. Тимур Шемсединов (youtube) (курс)
  2. Rest of the world
    1. Vladimir Khorikov
    2. Khalil Stemmler (github)
      1. Он в самых дотоншых деталях рассказывает как сделать чистый DDD на NodeJS + дает несколько репозиториев с примерами проектов. Просто бомба.
    3. Martin Fowler
      1. Он каким-то образом ответил на все вопросы разработки в своей блоге https://martinfowler.com/. А еще у него ахуительный костюм.
    4. Vaughn Vernon
    5. Udi Dahan
      1. Можно бесконечно смотреть на огонь, воду и выступления Udi. Очень харизматичный мужик с невероятными концепциями, которыми мы, скорее всего, никогда не воспользуемся. Талеб мира IT.
    6. Eric Evans
    7. Greg Young
    8. Jimmy Bogard
    9. Chris Richardson
    10. Microsoft

FAQ

«Если бы ты выделил 1 секцию из всех материалов, то какую?»

Это была бы секция «Examples». Потому что сколько у вас не будет теории, не посмотрев реальный код, почти ВСЕ непонятно.

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

В моей работе технического консалтера – это один из самых важных навыков.

«Что посоветуешь для ускорения изучения?»

Попробуйте написать ХОТЬ ЧТО-НИБУДЬ с применением этих концепций.

И нет, не стоит начинать с коммерческих проектов, поскольку вы совершите огромное количество ошибок из-за чего возненавидите эти концепции и бросите все к чертям собачим (большинство противников именно так и возненавидели DDD).

«Почему так много C# и Java проектов?»

Потому что все проотцы крупных архитектурных решений пишут на C# и Java.

Я даже больше скажу: C# ASP .NET имеет прям в себе кучу встроенных шаблонов и библиотек для работы в стиле DDD, Clean Architecture и так далее.

А вот вам нечего пиздеть: TypeScript разработчикам повезло больше всех, поскольку JavaScript пиздили с Java, а TypeScript с C#, так что вам должны быть знакомы все эти концепции.

«А если мне в лом все это читать?»

О, а вот это хороший вопрос:

В июле 2020 года начнет выходить серия моих курсов на тему облегченного DDD.

Ждите апдейты в Telegram @davidshekunts_blog

Гораздо больше контента и развлечений в Telegram-канале