Специализация Frontend (React + TypeScript) в разработке — пока доступен backend-контент. Что планируется во frontend-треке →

Go

Go-стек UCP-сервиса: структура и проводка зависимостей, net/http и chi, JSON, валидация, middleware, context, ошибки, auth, sqlc+pgx, конкурентность, тесты, наблюдаемость. Примеры на Go.

Зачем для UCP. Go-стек (net/http + chi + курированные библиотеки) — механика Go-биндинга UCP-сервиса, как Spring для Java, но явная: зависимости проводятся руками, ошибки передаются значением, context.Context идёт сквозь весь вызов. Без понимания этого нельзя осознанно писать Handler-ы и интегрировать инфраструктуру на Go. Часть пути продукт-инженера.

Раздел разбит на 12 статей. Можно читать подряд (фундамент → граница и сквозная логика → данные → конкурентность и эксплуатация) или точечно.

Фундамент

  1. Структура проекта и проводка зависимостей — раскладка, явная проводка в main, конфиг из env.
  2. Роутинг: net/http и chi — роутер chi, группы, URL-параметры.
  3. Обработчики и JSONhttp.HandlerFunc, decode/encode JSON.

Граница и сквозная логика

  1. Валидация — явная проверка на границе.
  2. Middleware — цепочка обёрток: логи, recovery, request ID.
  3. Context и отменаcontext.Context: значения, дедлайны, отмена.
  4. Ошибки и HTTP — явные ошибки, %w, перевод в HTTP-коды.
  5. Аутентификация и авторизация — JWT в middleware, пользователь в context, роли.

Данные

  1. Персистентность: sqlc и pgx — типобезопасные запросы, транзакции, миграции.

Конкурентность и эксплуатация

  1. Конкурентность и graceful shutdown — goroutines, errgroup, остановка по сигналу.
  2. Тестированиеtesting, httptest, table-driven, testcontainers.
  3. Наблюдаемостьslog, OpenTelemetry, метрики, health.

Связанное