Мы продолжаем разбираться в 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
- (00:00) - - Введение. Можно ли превратить DDD из теории в реальный код?
- (02:45) - - Идея стартапа: AI-сервис для анализа Telegram-каналов и поиска тем для постов
- (08:51) - - Главные сущности проекта: канал, пост и тематика
- (17:10) - - Демонстрация логики агрегатов
- (27:45) - - Базовые типы: ID, строковые ограничения и value-объекты
- (38:15) - - Бизнес-ошибки против исключительных ситуаций
- (46:26) - - Live-валидация на фронтенде и UX
- (59:22) - - Когда безопасность требует дополнительных проверок
- (01:09:57) - - Зачем использовать Mock в тестах
- (01:21:19) - - Проблема уникальности в нагруженных системах
- (01:28:08) - - Когда DDD действительно спасает архитектуру
- (01:37:37) - - Vibe coding и парное программирование с AI
- (01:51:33) - - Транзакции и работа с Postgres
- (02:01:56) - - Заключение. DDD vs классическая архитектура
Fler avsnitt av Организованное программирование
Visa alla avsnitt av Организованное программированиеОрганизованное программирование med Кирилл Мокевнин finns tillgänglig på flera plattformar. Informationen på denna sida kommer från offentliga podd-flöden.
