Это попытка собрать всю информацию о доменно-ориентированном дизайне, которую знает мир, на динамических языках (Python, Ruby, PHP и т. д.). Не только DDD, но и вся достойная информация о многоуровневой и чистой архитектуре с отделением бизнес-логики от кода инфраструктуры и фреймворка.
Итак, поехали!
«Архитектурные шаблоны с Python» (также известный как «Космический Python») — книга Гарри Персиваля и Боба Грегори, в которой представлены DDD и стратегические шаблоны (готовится к выпуску на O'Reilly, также доступна в раннем выпуске на Safari).
Чистые архитектуры в Python — книга Леонардо Джордани на основе его поста
Domain-Driven Rails — книга Роберта Панковецкого и команды Arkency о DDD, CQRS, источниках событий, связанных с проектами Rails.
Доменно-ориентированное проектирование на PHP — книга Карлоса Буэносвиноса, Кристиана Соронелласа и Кейвана Акбари о DDD и реализации с помощью PHP
Строительные блоки, основанные на событиях, для проектирования, управляемого предметной областью, с помощью Python. Эта небольшая книга содержит краткий язык шаблонов для DDD, основанного на событиях, в Python. В этой книге основное внимание уделяется надежным «строительным блокам» DDD. Это позволяет избежать повторения «стратегических» моделей DDD. Для создания надежных, масштабируемых и удобных в обслуживании приложений и систем требуется практический подход «снизу вверх». В предисловии по-новому рассматривается язык шаблонов как описание событий. Это небольшая книга, и на данный момент она еще не закончена.
«Внедрение чистой архитектуры» — книга, посвященная практическим аспектам внедрения чистой архитектуры. Это хорошо иллюстрируется фрагментами кода на Python. Помимо самой чистой архитектуры, она также представляет другие шаблоны разработки программного обеспечения, такие как модульность и внедрение зависимостей. CQRS или источник событий.
Разделение бизнес-логики и доступа к данным в django — Python, Django
Почему проектирование, ориентированное на предметную область, кажется популярным только в статических языках, таких как C и Java?
Усилия по предметно-ориентированному проектированию на динамических языках?
DDD — проектирование, управляемое предметной областью, какой порядок разработки следует применять? - Питон
Получение агрегатов изнутри других агрегатов – вопрос StackOverflow об агрегатах в приложении Python
Как избежать эффекта домино в наших сервисах (SOLID на уровне макропроектирования)
Приложения Python с чистой архитектурой (веб-приложения) — Пшемек Левандовски о применении «Чистой архитектуры дяди Боба» в веб-приложениях Python с примерами кода и аннотациями типов
Доменно-ориентированный дизайн на Python — слайды на португальском языке, но содержат полезный код на Python.
От Active Record к событиям - Эмануэле ДельБоно об использовании DDD/CQRS/ES в приложениях Ruby on Rails
От кода, связанного с фреймворком, к микросервисам через DDD
Шестиугольный дизайн в Django. Python, Django, содержит некоторый код.
Микросервисы: повышение автономности наших команд с помощью архитектуры, управляемой событиями
DDD для разработчиков Rails — целый блог Виктора Савкина о DDD в Ruby on Rails
Доменно-ориентированное проектирование и архитектуры MVC — две статьи Федерико Каргнелутти с примерами PHP во второй части
Объекты-значения в Java и Python — об Value Object
, сравнение объектов-значений в Java и Python
Методика предметно-ориентированного проектирования Python — небольшой обзор DDD в Python
Исследование доменов с помощью Python. Небольшая статья с примером классов Repository
и Storage
.
Чистые архитектуры на Python: пошаговый пример — Реализация чистой архитектуры дяди Боба на Python. Содержит пошаговое объяснение и репозиторий GitHub со всем кодом.
Представляем обработчик команд на https://www.cosmicpython.com/ (ранее в техническом блоге made.com), за которым следуют репозиторий и шаблон единиц работы в Python, CQRS/обработчики и представления, а также зачем использовать события домена?
Большие веб-приложения на Python: хорошая архитектура — статья, в которой говорится, что MVC недостаточно для больших приложений и нужен отдельный уровень для бизнес-логики.
Субреддит DDD + Ruby — субреддит для разработчиков Ruby, заинтересованных в доменно-ориентированном проектировании.
Блог и информационный бюллетень Arkency — они много пишут о DDD, поиске событий и тестировании в Ruby/Rails. Не просто текст, а код и иногда даже вебинары.
Hanami em Production – 2 месяца назад: сообщение на португальском языке, описывающее опыт Creditas в создании и сопровождении своего основного приложения (60 тысяч строк кода + 2 миллиона запросов в месяц) с DDD в Ruby с использованием платформы Hanami.
Как улучшить контексты именования в доменно-ориентированном дизайне — описывает технику поиска лучшего имени для ваших ограниченных контекстов.
Реализация доменно-ориентированного дизайна в PHP. Алиреза Рахмани Халили: введение в доменно-ориентированный дизайн и способы его реализации в Laravel с помощью PHP.
Event Sorcery — подробный блог с длинными статьями о создании приложений, управляемых событиями, с помощью Python.
Как начать работу с DDD и Onion-Architecture в веб-приложении Python — вполне понятное название статьи в блоге Такахиро Икеучи. Включая репозиторий на github с реализацией идеи.
Практический пример шестиугольной архитектуры с использованием Python (включая пример FastAPI) — статья о шестиугольной архитектуре, объясняющая основы и показывающая примеры кода.
Доменно-ориентированное проектирование с помощью Python — отличный доклад о DDD и Python с объяснениями многих тем DDD и примерами кода от Роберта Смоллшира из Skills Matter.
Шаблоны доменно-ориентированного проектирования в Python. Подробный доклад Роберта Смоллшира о шаблонах DDD в Python с конференции EuroPython 2018.
Чистая архитектура в Python — потрясающий доклад Брэндона Роудса о PyOhio2014
Шестиугольная архитектура в Django Talk на русском языке от @proofit404, содержит примеры кода и макет проекта.
Доменно-ориентированное проектирование и гексагональная архитектура с Rails - доклад Эрика Робертса и Деклана Уилана о Ruby on Rails на конференции RailsConf 2014 с примерами кода
Шестиугольные рельсы — Ruby on Rails, GoRuCo 2012, Мэтт Винн
Шестиугольная архитектура в DDD — Гольф с DDD в PHP Гордона Скиннера с конференции PHP UK
Границы Python — разговор о Boundaries
, Гэри Бернхардт из Pycon US 2013
Границы Ruby — тот же доклад Гэри Бернхардта, но на Ruby из Ruby Conf 12. Содержит раздел контроля качества.
Hexagonal TDD — TDD-реализация гексагональной архитектуры приложения Rails. В 3-х частях.
Джим Вейрих об отделении от Rails — презентация Джима Вейриха за октябрь CincyRb.
От Active Record к событиям — доклад Эмануэле ДельБоно из Wroclove.rb о DDD/CQRS/ES в Ruby и Ruby on Rails.
Созданы навечно: доменно-ориентированный подход к красивым системам — выступление Эндрю Хао на RailsConf 2017. Методы рефакторинга устаревшей кодовой базы в стиль DDD, обзор дизайна и примеры кода.
Технически DDD — фантастический доклад Пима Элсхоффа о начале работы с DDD с использованием объектов-значений, сущностей и сервисов в PHP.
Возможно: применение предметно-ориентированного проектирования и реактивной архитектуры в функциональном программировании — доклад Роба Мартина с ElixirConf 2017.
Чистая архитектура — выступление Себастьяна Бучински на PyGotham 2018 с кодом и слайдами. Также есть запись в блоге на английском языке.
Доменно-ориентированный дизайн - CODEiD 2018, доклад Артёма Антоненко @Antonyan. На русском языке. Также есть репозиторий — PHP DDD Skeleton и другие проекты, связанные с DDD, под его аккаунтом на github.
Eventsource 101 — доклад Боба Грегори о поиске событий с помощью живого кодирования на Python. Он с нуля кодирует корзину электронной коммерции, основанную на событиях.
Проектирование на основе предметной области для Python. Эпизод 219. Когда ваши программные проекты начинают масштабироваться, становится сложнее понять и поддерживать все их части. В этом выпуске Генри Персиваль делится своим опытом работы с предметно-ориентированным дизайном в крупных проектах Python.
Как мы уменьшаем сложность наших проектов - Выступление Бориса Цема на PyCon RU 2019 (на русском языке) об использовании шаблонов DDD для сокращения проектов Wargaming.net.
Чистые архитектуры в Python - доклад Леонардо Джордани о PyLondinium19
Источник событий в Python — зрелая, стабильная и популярная библиотека Python для поиска событий и DDD.
PyAssimilator — набор шаблонов DDD на Python с поддержкой различных внешних библиотек.
Dry-Python — набор библиотек Python для подключаемых компонентов бизнес-логики.
Пример приложения Ruby DDD — порт примера приложения DDD, написанного на Java в Ruby. Определенно стоит прочитать.
DDD в Django — попытка реализовать DDD и гексагональную архитектуру в Django.
DDD в Flask — краткий пример архитектуры на основе DDD с использованием Flask.
DDD в Falcon — простая реализация DDD и шестиугольной архитектуры в Falcon с несколькими включенными батареями.
Канбан в Python — реализация простой канбан-доски на Python с подходом DDD.
Канбан в Clojure — то же самое в Clojure
Канбан в упражнениях на Python — та же доска, разделенная на упражнения для студентов некоторых семинаров Sixty-North.
Rewind — Rewind — это сервер хранилища событий (CQRS), написанный на Python. Не то чтобы это было написано с использованием подхода DDD, но все же связано.
Пример приложения «Чистая архитектура» (python) — репозиторий с примером модульного приложения, написанного на Python. Код используется в книге «Реализация чистой архитектуры».
Чистая архитектура с Python — обсуждение этой темы и сути на Reddit с предлагаемой архитектурой и некоторыми комментариями к ней.
abidria-api — приложение Django, написанное с чистой архитектурой. Также есть статья Хорди Фиерро, в которой объясняются компоненты архитектуры и то, как они взаимодействуют друг с другом.
Hanami — хороший вариант из мира Rails. Hanami — это новая среда, которая поощряет и помогает разрабатывать приложения DDD в Ruby. В руководстве по началу работы упоминаются некоторые концепции DDD и то, как они вписываются в структуру.
Шестиугольная архитектура + DDD + CQRS, примененная в PHP с использованием Symfony 4
Revents — возможная реализация DDD/CQRS/ES в Ruby и Ruby on Rails.
DDD Rails Sample — проект, предназначенный для использования в качестве отправной точки для тех, кто хочет создавать приложения предметно-ориентированного проектирования в Rails.
Классы и интерфейсы доменно-ориентированного проектирования. Проект представляет собой коллекцию PHP-примеров классов и интерфейсов, вдохновленных доменно-ориентированным дизайном.
Банковское приложение DDD CQRS ES — банковское приложение, соответствующее правилам DDD, с использованием чистой архитектуры, источников событий и CQRS.
Пример приложения с гексагональной архитектурой (python, с FastAPI) — пример приложения, написанного на Python поверх веб-инфраструктуры FastAPI с использованием принципов гексагональной архитектуры.
Шаблоны DDD в Python - Sixty North предлагает двухдневное обучение в классе по реализации DDD в Python с реляционной или событийной персистентностью.
Rails + Domain Driven Design Workshop — мастер-классы от Arkency. На странице должно быть расписание будущих семинаров и краткое изложение того, чего от них ожидать.
Курс по основам EventStorming (также на испанском языке) — изучите основы EventStorming для разработки программного обеспечения с использованием подхода DDD для последующей реализации его на любом языке динамического программирования.