Мы продолжаем разбираться в Domain-Driven Design — на этот раз прямо на уровне кода. Несколько недель назад мы с Евгением Лукьяновым делали EventStorming для идеи сервиса аналитики Telegram-каналов: системы, которая парсит каналы, анализирует посты, считает метрики и помогает авторам понимать, о чём писать и какие темы заходят.
Евгений — технический директор компании Satory и автор образовательного проекта StreamConcat. Он много лет работает с DDD и чистой архитектурой и строит на этих принципах коммерческие системы. Поэтому вместо абстрактных рассуждений мы открыли редактор и начали разбирать, как события, агрегаты и инварианты из EventStorming превращаются в Kotlin-код на Spring Boot.
Полезные ссылки:
https://t.me/stringconcat
https://www.youtube.com/@UCJ2Tig1kywPjqjNh0mb54Ug
Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog
– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321
– Смотреть в ВК Видео: https://vkvideo.ru/video-224967259_456239248
🔹 Telegram-канал Организованного Программирования: https://t.me/orgprog
🔹Хекслет Клуб в Telegram https://t.me/HexletClubBot
В этом выпуске:
— как из стикеров EventStorming получается структура домена
— почему агрегаты и доменные события часто реализуют без ORM
— как выглядит минимальный каркас DDD-приложения: entity, aggregate root, value object
— зачем хранить события внутри сущностей и как потом их «вынимать»
— как устроены use case-слои и почему бизнес-логика должна жить внутри домена
— где заканчивается доменная модель и начинается инфраструктура
— как связывать агрегаты через события и слушатели
— транзакции, outbox-паттерн и обработка доменных событий
— почему вокруг DDD так много споров и где инженеры видят оverengineering\
#DDD #EventStorming #архитектура #программирование #разработкаПО #организованноепрограммирование #кириллмокевнин
Чистая архитектура и Domain Driven Design на практике | Евгений Лукьянов №77
- () - - Введение. Можно ли превратить DDD из теории в реальный код?
- () - - Идея стартапа: AI-сервис для анализа Telegram-каналов и поиска тем для постов
- () - - Главные сущности проекта: канал, пост и тематика
- () - - Демонстрация логики агрегатов
- () - - Базовые типы: ID, строковые ограничения и value-объекты
- () - - Бизнес-ошибки против исключительных ситуаций
- () - - Live-валидация на фронтенде и UX
- () - - Когда безопасность требует дополнительных проверок
- () - - Зачем использовать Mock в тестах
- () - - Проблема уникальности в нагруженных системах
- () - - Когда DDD действительно спасает архитектуру
- () - - Vibe coding и парное программирование с AI
- () - - Транзакции и работа с Postgres
- () - - Заключение. DDD vs классическая архитектура



