Бесплатно
Самый полный гайд по архитектуре Go-проекта
3 часа практики от Senior Engineer из BigTech, которые дадут системное понимание архитектуры
После этого гайда ты будешь точно знать, как структурировать Go-проект, когда добавлять DDD, ACL и CQRS, и сможешь уверенно принимать архитектурные решения на работе и собесах
Забрать гайд бесплатно
Этот гайд для тебя, если
- Проект растет, код превращается в кашу, хочешь навести порядок в архитектуре
- Хочешь систематизировать знания и уверенно отвечать на собесах по архитектуре
- Слышал про DDD, CQRS, ACL, но не понимаешь, когда это реально нужно
Что подробно разбираем
Handler / Service / Repository
Разберешься, почему именно 3 слоя, а не 2 или 10. Увидишь эволюцию каждого слоя на реальном коде
Интерфейсы и валидация
Узнаешь, где правильно объявлять интерфейсы и как разделить валидацию на структурную и бизнес-логику
Race Conditions и Mutex
Разберешься, откуда берутся гонки в сервисном слое и как их решать
DDD: Domain-Driven Design
Научишься выносить бизнес-логику из раздутых сервисов в доменные модели
Anti-Corruption Layer
Научишься строить адаптер между внешним API и доменом, чтобы чужие модели и термины не просачивались в твой код
CQRS
Узнаешь, как отделить запросы на чтение от записи и ускорить ответ сервиса в десятки раз
Программа гайда
0:00
Акт 0. Скрипт на 80 строк
Пишем утилиту с нуля и кладём весь код в один файл на 80 строк. Разбираемся, что такое принцип YAGNI и почему не надо усложнять раньше времени
13:51
Акт 1. Три слоя: Handler, Service, Repository
Утилита превращается в HTTP-сервис с CRUD, и сразу встаёт вопрос: как это организовать. Разбираем, почему именно три слоя Handler, Service, Repository, что каждый из них защищает и как выглядит эволюция кода от скрипта до полноценного сервиса. И как покрыть всё это E2E тестами
32:26
Акт 2. Валидация и интерфейсы
Смотрим, где должна жить валидация, чем структурная отличается от бизнес-логики и как правильно объявлять интерфейсы в Go
50:44
Акт 3. Race Conditions и Mutex
Разбираемся, как возникают гонки данных: две горутины одновременно обращаются к одному полю и данные расходятся в минус. Что такое атомарность операций и как навести порядок через sync.Mutex
1:17:17
Акт 4. DDD — Domain-Driven Design
Сервис разбух до 200+ строк ифов. Переходим на богатую доменную модель: Value Object, Entity и Aggregate, где каждый объект сам отвечает за свои правила
2:30:25
Акт 5. Anti-Corruption Layer
Подключаем внешний API и строим Anti-Corruption Layer, смотрим как изолировать чужой формат данных так, чтобы при смене поставщика менялся только один файл
2:45:20
Акт 6. CQRS — разделение чтения и записи
Страница грузится 800ms и подгружает тысячи полей, хотя показывает только четыре. Разбираемся, как разделить чтение и запись: Write path через агрегат, Read path напрямую в SQL.
В конце готовый чеклист, когда и какой паттерн использовать
В конце готовый чеклист, когда и какой паттерн использовать
Что говорят прошедшие гайд
Преподаватель —
Олег Козырев
-
Т-Банк Staff EngineerРазрабатываю LLM-платформу для создания ИИ продуктов внутри компании
-
Авито Senior EngineerРазрабатывал внутреннюю платформу для сотен сервисов корпорации
-
Ozon Tech Senior EngineerРазрабатывал сервисы логистики, модерации контента и мониторинга доставки
-
Route 256 ПреподавательМенторил и преподавал курсы по построению микросервисов в школе Ozon Tech
0
подписчиков на YouTube
0
подписчиков в Telegram
0
коммерческой разработки
3 часа практики
Бесплатно
Забирай готовый гайд
по архитектуре Go-проекта
Забрать гайд в Telegram
* После нажатия на кнопку откроется пост в моём Telegram-канале со ссылкой на гайд