ЛентаСтатьиЗаметкиКурсы
Рецепты
← Все курсы

Go Backend Developer

GoBackendREST APIClean ArchitecturePostgreSQLObservabilitySecurityDocker

Курс 2: Go Backend Developer

Добро пожаловать в мир реальной бэкенд-разработки!

Вы знаете основы Go. Теперь пора строить настоящие сервисы. Этот курс превращает знания языка в инженерные навыки: архитектура, тестирование, наблюдаемость, безопасность.


О курсе

Цель: научить строить поддерживаемые и надёжные сервисы с использованием проверенных архитектурных паттернов.

Подход: каждый модуль приближает вас к созданию продакшен-сервиса. Вы не просто пишете код — вы проектируете систему.

Результат: после курса вы сможете самостоятельно спроектировать и реализовать полноценный бэкенд-сервис с архитектурой, тестами и наблюдаемостью.


Для кого этот курс

АудиторияЧто получит
Разработчики, знающие основы GoНавыки построения реальных сервисов
Junior-разработчикиПуть к уровню Middle
Инженеры, начинающие с APIСистемный подход к разработке

Предварительные требования

Обязательные

  • ✅ Завершённый Курс 1: Go Foundation
  • ✅ Уверенное владение синтаксисом Go
  • ✅ Понимание конкурентности
  • ✅ Опыт написания юнит-тестов

Желательные

  • Базовое знание SQL
  • Понимание HTTP и REST
  • Опыт работы с базами данных

Программа курса

Модуль 1: Основы проектирования API

Файл: 01-api-design-fundamentals.md

  • Принципы REST
  • Ресурсы и коллекции
  • Версионирование
  • Коды состояния
  • Пагинация и фильтрация

Практика: спроектировать API для сервиса управления репозиториями


Модуль 2: Паттерны организации проекта

Файл: 02-project-organization-patterns.md

  • Flat vs Layered vs Clean Architecture
  • Hexagonal Architecture
  • Выбор паттерна под задачу
  • Структура папок

Практика: организовать проект с использованием слоистой архитектуры


Модуль 3: Clean Architecture Deep Dive

Файл: 03-clean-architecture-deep-dive.md

  • Границы слоёв
  • Зависимости между слоями
  • Интерфейсы и абстракции
  • Тестирование слоёв

Практика: реализовать сервис с разделением на слои


Модуль 4: Управление конфигурацией

Файл: 04-configuration-management.md

  • Источники конфигурации
  • Переменные окружения
  • Файлы конфигурации
  • Валидация при старте

Практика: реализовать загрузку конфигурации из разных источников


Модуль 5: Доступ к базам данных

Файл: 05-database-access.md

  • PostgreSQL и pgx
  • Пул соединений
  • Репозитории
  • Миграции
  • Транзакции

Практика: реализовать слой доступа к данным с миграциями


Модуль 6: Слой бизнес-логики

Файл: 06-business-logic-layer.md

  • Доменные модели
  • Сервисы и use cases
  • Валидация бизнес-правил
  • Обработка ошибок

Практика: реализовать бизнес-логику для управления репозиториями


Модуль 7: Наблюдаемость

Файл: 07-observability.md

  • Логирование
  • Метрики
  • Трейсинг
  • Корреляция запросов

Практика: добавить логирование и метрики в сервис


Модуль 8: Фоновая обработка

Файл: 08-background-processing.md

  • Воркеры и джобы
  • Планировщики
  • Паттерн Outbox
  • Обработка ошибок

Практика: реализовать фоновый воркер для обработки событий


Модуль 9: Основы безопасности

Файл: 09-api-security.md

  • Аутентификация
  • Авторизация
  • Валидация входных данных
  • Защита от типовых атак

Практика: добавить аутентификацию и авторизацию в сервис


Модуль 10: Docker и контейнеризация

Файл: 10-docker-containerization.md

  • Dockerfile для Go
  • Многоступенчатая сборка
  • Docker Compose
  • Health checks

Практика: контейнеризировать сервис и настроить docker-compose


Модуль 11: Практический проект

Файл: 11-practical-project.md

Цель: закрепить навыки разработки в полноценном сервисе

Проект: Сервис управления репозиториями

Неделя 1-2: Архитектура и данные

  • Проектирование структуры проекта
  • Настройка конфигурации
  • Подключение к базе данных
  • Миграции

Неделя 3-4: Бизнес-логика

  • Доменные модели
  • Сервисы и use cases
  • Валидация
  • Обработка ошибок

Неделя 5-6: Инфраструктура

  • Наблюдаемость (логи, метрики)
  • Фоновая обработка
  • Безопасность

Неделя 7-8: Финализация

  • Тестирование
  • Контейнеризация
  • Документация

Критерии приёмки:

  • Реализована чистая архитектура с разделением слоёв
  • Подключена БД с миграциями
  • Добавлена наблюдаемость
  • Реализована фоновая обработка
  • Сервис контейнеризирован
  • Написаны тесты с покрытием > 70%

Структура проекта курса

course-2-go-backend-developer/
├── README.md                          # Этот файл
├── 01-api-design-fundamentals.md
├── 02-project-organization-patterns.md
├── 03-clean-architecture-deep-dive.md
├── 04-configuration-management.md
├── 05-database-access.md
├── 06-business-logic-layer.md
├── 07-observability.md
├── 08-background-processing.md
├── 09-api-security.md
├── 10-docker-containerization.md
└── 11-practical-project.md            # Практический проект

Как проходить курс

Шаг 1: Изучите теорию

Прочитайте материал модуля. Обратите внимание на архитектурные паттерны.

Шаг 2: Спроектируйте решение

Перед написанием кода спроектируйте структуру. Нарисуйте диаграмму.

Шаг 3: Реализуйте

Напишите код, следуя выбранной архитектуре.

Шаг 4: Протестируйте

Напишите тесты для каждого слоя.

Шаг 5: Проверьте себя

Ответьте на вопросы в конце модуля.

Шаг 6: Выполните практический проект

После завершения всех модулей выполните практический проект для закрепления навыков.


Рекомендации по обучению

Делайте

✅ Проектируйте перед написанием кода ✅ Рисуйте диаграммы архитектуры ✅ Пишите тесты для каждого слоя ✅ Ведите заметки по архитектурным решениям (начало ADR) ✅ Используйте реальный проект как основу для практики ✅ Выполняйте практический проект в конце курса

Не делайте

❌ Не пишите код без проектирования ❌ Не смешивайте слои архитектуры ❌ Не пропускайте тестирование ❌ Не игнорируйте наблюдаемость ❌ Не пропускайте практический проект


Инструменты

Обязательные

  • Go — последняя стабильная версия
  • PostgreSQL — для работы с базой данных
  • Docker — для контейнеризации

Рекомендуемые

  • golangci-lint — агрегатор линтеров
  • pgx — драйвер для PostgreSQL
  • Prometheus — для метрик
  • Grafana — для визуализации метрик

Оценка прогресса

Критерии успеха

МодульКритерий
1Спроектирован REST API
2Выбрана и применена архитектура
3Реализованы слои с разделением
4Настроена конфигурация
5Подключена БД с миграциями
6Реализована бизнес-логика
7Добавлена наблюдаемость
8Реализована фоновая обработка
9Добавлена безопасность
10Сервис контейнеризирован
11Выполнен практический проект

Финальная проверка

После завершения всех модулей вы должны:

  • Уметь проектировать REST API
  • Понимать и применять архитектурные паттерны
  • Уметь работать с базами данных
  • Писать тесты для всех слоёв
  • Настраивать наблюдаемость
  • Реализовывать фоновую обработку
  • Обеспечивать безопасность
  • Контейнеризировать сервисы
  • Выполнить практический проект

Что дальше?

После успешного завершения курса вы будете готовы к:

Курс 3: Go Service Architect

Что изучите:

  • Проектирование для надёжности и масштаба
  • Паттерны распределённых систем
  • Выбор платформы (Serverless, VDS)
  • Наблюдаемость в масштабе
  • Планирование восстановления

Предварительные требования:

  • ✅ Завершённый Курс 2
  • ✅ Опыт построения реальных сервисов
  • ✅ Понимание архитектуры и тестирования

Готовы строить реальные сервисы? Начнём! 💪

Программа курса

1

Модуль 1: Go Backend Developer (Middle)

→
2

Модуль 2. Виды организации проектов (ключевой модуль)

→
3

Модуль 3. Clean Architecture Deep Dive (ключевой модуль)

→
4

Модуль 4. Configuration Management

→
5

Модуль 5. Database Access: PostgreSQL (углублённо)

→
6

Модуль 6. Business Logic Layer

→
7

Модуль 7. Observability

→
8

Модуль 8. Background Processing

→
9

Модуль 9. API Security

→
10

Модуль 10. Docker и контейнеризация

→
11

Модуль 11: Практический проект

→
Начать обучение