Профессиональная конференция для Go-разработчиков

Domain Driven Design в Go — это не больно (почти)

Golang Conf: Architecture

Go: Architecture

Методы и техника разработки ПО
GO

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Илья с лёгкой иронией собирается раскрыть глубокую тему использования паттернов DDD в большом проекте, какими они должны быть, и как этого добиться инструментально на масштабе компании.

Целевая аудитория

Разработчики, техлиды, архитекторы.

Тезисы

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

С другой стороны, мы можем идти привычной дорогой к клубку легаси, с которым сложно работать. Данную дилемму можно свести к двум стульям и решить ее элегантно, идя постепенно, а не «Разбежавшись, прыгать со скалы».

Взяв CRUD, с которого чаще всего начинают множество проектов, мы постепенно соберём бизнес-правила и преобразуем кусочек за кусочком в доменную модель, применяя тактические паттерны DDD (Factory, Value Object, Entity, Aggregate, Repository), учитывая все их особенности в Go.

Дополнительно я познакомлю вас с опенсорсными инструментами, которые нам помогают дружить: Go Way и DDD. Они:
* позволяют не плодить getter и setter через сохранение публичных свойств у структур, но с запретом их редактировать вне домена;
* следят за тем, чтобы слои инфраструктуры и приложения не врастали в домен;
* отделяют представления (БД, API и т. д.) от домена.

Backend-сочинитель продуктовых решений для передачи вашего смартфона в хорошие руки.

Авито

На Авито каждый может найти что-то свое среди миллионов частных объявлений и предложений компаний. У них десятки тысяч RPS к бэкенду, терабайты картинок в хранилище и мощная система автоматизированной модерации на базе машинного обучения. Каждый месяц сервисом пользуется треть населения России.

Видео