Чему вы научитесь
- Понимать роль архитектуры в разработке Go-приложений
- Проектировать структуру Go-проекта с понятными границами ответственности
- Управлять зависимостями между компонентами приложения
- Организовывать конфигурацию Go-приложений
- Разделять приложение на Domain, Service и Repository слои
- Применять Layered Architecture в Go-проектах
- Использовать Dependency Injection без тяжёлых DI-контейнеров
- Создавать Composition Root и собирать зависимости приложения в одном месте
- Применять Functional Options для конфигурации компонентов
- Проектировать Go-приложения по принципам Clean Architecture
- Разделять Use Cases, Adapters и внешние зависимости
- Понимать направление зависимостей в Clean Architecture
- Применять Hexagonal Architecture и подход Ports & Adapters
- Проектировать архитектуру REST API
- Организовывать gRPC-сервисы и middleware
- Проектировать слой доступа к PostgreSQL
- Выбирать место кеширования в архитектуре приложения
- Использовать context как архитектурный инструмент
- Проектировать конкурентную и асинхронную обработку данных
- Организовывать логирование, метрики и Distributed Tracing
- Распознавать архитектурные антипаттерны
- Проводить архитектурный рефакторинг существующего Go-кода
- Оценивать компромиссы архитектурных решений, а не применять шаблоны механически
О курсе
Для кого этот курс
Начальные требования
Знание базового синтаксиса Go
Умение работать со структурами, методами и интерфейсами
Понимание пакетов и модулей Go
Базовое понимание обработки ошибок и context желательно
Базовое представление о HTTP и базах данных пригодится в соответствующих разделах
Опыт коммерческой разработки не требуется
Преподаватели курса
Как проходит обучение
Курс построен от архитектурных принципов к их применению в реальных Go-приложениях.
Сначала Вы разбираете архитектурную проблему и причины её возникновения, затем изучаете один из подходов к решению и смотрите, как он реализуется средствами Go.
По мере прохождения курса примеры становятся сложнее: от структуры проекта и слоёв до Clean Architecture, REST API, PostgreSQL, конкурентности и observability.
Особое внимание уделяется сравнению решений и их компромиссов. Задача курса — не дать одну «правильную» структуру проекта, а научить принимать архитектурные решения осознанно.
Обучение проходит в собственном темпе, а материалы можно использовать как справочник при проектировании собственных Go-приложений.
Что вы получите
- Системное понимание архитектуры Go-приложений
- Навык организации структуры Go-проекта
- Понимание Layered Architecture и разделения приложения на слои
- Практическое понимание Dependency Injection и Composition Root
- Навык применения Clean Architecture в Go
- Понимание Hexagonal Architecture и Ports & Adapters
- Навык проектирования архитектуры REST и gRPC API
- Понимание архитектуры доступа к PostgreSQL и кешированию
- Навыки проектирования конкурентных и асинхронных компонентов
- Понимание роли логирования, метрик и Distributed Tracing
- Навык обнаружения архитектурных антипаттернов
- Понимание подходов к архитектурному рефакторингу
- Базу для проектирования более крупных и поддерживаемых backend-приложений на Go
- Сертификат Stepik после успешного завершения курса