Самый полный гайд по архитектуре Golang проекта
Забрать гайд
Бесплатно

Самый полный гайд по архитектуре Go-проекта

3 часа практики от Senior Engineer из BigTech, которые дадут системное понимание архитектуры

После этого гайда ты будешь точно знать, как структурировать Go-проект, когда добавлять DDD, ACL и CQRS, и сможешь уверенно принимать архитектурные решения на работе и собесах

Забрать гайд бесплатно
Гайд по архитектуре Go-проекта

Этот гайд для тебя, если

  • Проект растет, код превращается в кашу, хочешь навести порядок в архитектуре
  • Хочешь систематизировать знания и уверенно отвечать на собесах по архитектуре
  • Слышал про 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-канале со ссылкой на гайд

Забрать гайд бесплатно