-
Фаза 1. Основы языка: Go · 8 вопросов
Синтаксис, структуры и методы, интерфейсы, срезы и map, ошибки, горутины и каналы, указатели, инструменты — фундамент языка до backend-обвязки.
- Синтаксис и типы Go: первое знакомство
- Структуры и методы в Go: данные, поведение и композиция
- Интерфейсы Go: маленькие, неявные, по делу
- Срезы и map в Go: как устроены и где грабли
- Ошибки в Go: error как значение
- Горутины и каналы в Go: основы конкурентности
- Указатели в Go: & и *, значения и ссылки
- Инструменты Go: модули, сборка, форматирование
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 2. Алгоритмы и структуры данных · 12 вопросов
Массивы и O-нотация, сортировки, стеки и очереди, списки, рекурсия, деревья, хеш-таблицы, кучи и графы — фундамент, на котором стоят коллекции, индексы и хранилища.
- Зачем нужны структуры данных и алгоритмы
- Массивы, двоичный поиск и O-нотация
- Простая сортировка: пузырёк, выбор, вставка
- Стеки и очереди
- Связанные списки
- Рекурсия
- Нетривиальная сортировка: Шелла, быстрая, поразрядная
- Двоичные деревья
- Красно-чёрные деревья
- Хеш-таблицы
- Пирамиды (кучи)
- Графы
- Взвешенные графы: минимальный остов и кратчайший путь
- Как выбрать структуру данных
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 3. Git и модели ветвления · 8 вопросов
Снимки и коммиты, ветки и слияние, push/pull, pull request и код-ревью, rebase и reflog, модели ветвления от Git Flow до trunk-based.
- Что такое Git и зачем он каждому обязательно
- Коммиты и история: add, commit, log и .gitignore обязательно
- Ветки и слияние: merge и конфликты обязательно
- Удалённые репозитории: push, pull и fetch обязательно
- Pull request и код-ревью обязательно
- Rebase и cherry-pick: переписывание истории
- Отмена и спасение: reset, revert, reflog
- Модели ветвления: Git Flow, GitHub Flow, trunk-based
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 4. Go как фундамент · 8 вопросов
Ядро Go-стека: структура и проводка, chi и net/http, JSON, валидация, middleware, context, ошибки, sqlc+pgx, конкурентность.
- Структура проекта и проводка зависимостей в Go
- Роутинг в Go: net/http и chi
- Обработчики и JSON в Go
- Валидация в Go
- Middleware
- Context и отмена в Go
- Ошибки в Go и перевод в HTTP
- Персистентность в Go: sqlc и pgx
- Конкурентность и graceful shutdown в Go
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 5. Данные: PostgreSQL · 2 вопросов
Реляционные основы: ACID и уровни изоляции, партиционирование и шардинг.
- ACID и уровни изоляции транзакций в PostgreSQL обязательно
- Партиционирование и шардирование в PostgreSQL
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 6. Другие хранилища: документы, поиск, файлы, аналитика · 8 вопросов
MongoDB, Elasticsearch, object storage (S3) и ClickHouse для специализированных нагрузок.
- ACID, read и write concerns, транзакции в MongoDB на Go
- Репликация и шардинг в MongoDB
- Моделирование документов в MongoDB: embed vs reference, индексы обязательно
- Elasticsearch: как устроен поисковый движок обязательно
- Как работают запросы в Elasticsearch и почему документы сортируются именно так обязательно
- Как работает Elasticsearch в production: ILM, snapshots, sizing, мониторинг
- Что такое object storage: bucket, объект, ключ, классы хранения и presigned URL обязательно
- S3 в production: резервные копии, репликация, стоимость и мониторинг
- Как устроен ClickHouse: колоночное хранение, MergeTree и OLAP обязательно
- ClickHouse: моделирование схемы, запросы, materialized views обязательно
- ClickHouse в проде: репликация, TTL, бэкапы и мониторинг
- Архитектура Cassandra: кольцо без главного узла
- Модель данных Cassandra: partition key и clustering columns
- Согласованность и репликация в Cassandra
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 7. Принципы и паттерны проектирования · 4 вопросов
SOLID, GoF, GRASP и принципы DRY/KISS/YAGNI на примерах.
- SOLID: пять принципов проектирования на Go
- Паттерны GoF: все 23 простыми словами на Go
- GRASP: назначение ответственностей на Go
- DRY, KISS, YAGNI и другие инженерные принципы на Go
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 8. Сетевой фундамент · 8 вопросов
Модели OSI и TCP/IP, IP и порты, TCP/UDP, DNS, HTTP и HTTPS, версии HTTP, соединения и надёжность.
- Как устроена сеть: модели OSI и TCP/IP обязательно
- IP-адреса, порты и NAT
- TCP и UDP: надёжность против скорости обязательно
- DNS: как доменное имя превращается в адрес обязательно
- HTTP: методы, статусы, заголовки обязательно
- HTTPS и TLS: шифрование и рукопожатие обязательно
- HTTP/1.1, HTTP/2 и HTTP/3: что поменялось
- Соединения: keep-alive, пулы и таймауты
- Балансировщики и обратные прокси обязательно
- Сеть и надёжность: таймауты, ретраи, идемпотентность
- WebSocket, SSE и long polling обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 9. API: REST и контракты · 8 вопросов
REST-контракты на Go: URL и ресурсы, параметры, ответы, ошибки, версионирование, OpenAPI.
- URL и ресурсы в Go REST API — kebab-case, вложенность, chi
- Query-параметры — фильтрация, пагинация, сортировка в Go
- JSON и формат ответов — структуры, omitempty, коллекции в Go
- Ошибки REST API в Go — RFC 9457, ProblemDetails, валидация
- Заголовки — Idempotency-Key, traceparent, кастомные в Go
- Версионирование REST API в Go: /api/v1 и breaking changes
- Alias и Action-эндпоинты в Go — me, latest и доменные команды
- OpenAPI-метаданные и сводка антипаттернов — Go
- Rate limiting, файлы, deprecation в Go
- Batch, async, локализация — partial success, 202 polling, Accept-Language (Go)
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 10. Безопасность и авторизация · 9 вопросов
Auth на Go и паттерны авторизации: где стоит проверка, JWT, RBAC/ABAC, секреты и аудит.
- Аутентификация и авторизация в Go
- Паттерны аутентификации и авторизации
- Где какая проверка — Gateway, BFF и Domain Service (Go)
- JWT validation в Go: golang-jwt и JWKS
- RBAC в Go: роли из JWT и проверка в chi-middleware
- ABAC и владение ресурсом в Go
- Хранение токенов на клиенте — HttpOnly cookie и refresh rotation (Go)
- Service-to-service аутентификация на Go — mTLS и Client Credentials
- PII и секреты в Go — что нельзя в slog, error и Kafka
- Журнал действий администратора в Go
- PCI DSS для разработчика
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 11. Брокеры и распределённые системы · 7 вопросов
AMQP/RabbitMQ, Kafka и распределённые паттерны: saga, outbox, идемпотентность.
- Протокол AMQP: exchange, queue, binding, ack обязательно
- RabbitMQ в production: кластеризация, типы очередей и мониторинг
- Паттерны обмена сообщениями через AMQP на Go
- AMQP vs Kafka: какой брокер выбрать обязательно
- Apache Kafka: топики, партиции, порядок и гарантии на Go
- Kafka в production на Go: kafka-go, DLQ, Schema Registry, тюнинг, безопасность
- Распределённые паттерны: согласованность данных между сервисами на Go
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 12. Kubernetes и graceful shutdown · 8 вопросов
Кластер, сеть, деплой и эксплуатация в Kubernetes плюс корректное завершение работы сервиса.
- Kubernetes: pod, deployment, service — с чего начать обязательно
- Сеть в Kubernetes: Service, DNS, Ingress, NetworkPolicy обязательно
- Деплой в Kubernetes: манифесты, Helm, rolling update, GitOps обязательно
- Kubernetes на практике: отладка подов и kubectl-команды
- Go: конфигурация сервера и readiness при graceful shutdown
- HTTP drain в Go — как правильно остановить HTTP-сервер
- БД и persistence при graceful shutdown Go-сервиса
- Фоновые горутины и outbox-relay при graceful shutdown в Go
- Kafka shutdown в Go: останавливаем потребитель и продюсер без потери сообщений
- Идемпотентность незавершённых операций в Go
- Kubernetes и graceful shutdown в Go: terminationGracePeriodSeconds, probes, rolling update
- Бюджеты shutdown и наблюдаемость в Go
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 13. Облака · 8 вопросов
Облачная модель на четырёх провайдерах — AWS, Yandex Cloud, Azure и GCP: сеть, IAM, compute, масштабирование, serverless, данные, хранилища и IaC. Модель одна, знания переносимы между облаками.
- Основы AWS: аккаунты, IAM, регионы и VPC обязательно
- Сеть в AWS: VPC, подсети, NAT и security groups обязательно
- IAM в AWS: пользователи, роли и политики обязательно
- Где запускать сервис в AWS: EC2, ECS, EKS или Lambda обязательно
- Масштабирование и доступность в AWS обязательно
- Serverless в AWS: Lambda, события, cold start, API Gateway обязательно
- Управляемые данные в AWS: RDS, ElastiCache, SQS, MSK обязательно
- DynamoDB: ключи, индексы и когда брать вместо SQL
- Безопасность и наблюдаемость в AWS: Secrets Manager, SSM, KMS, CloudWatch обязательно
- Оптимизация затрат в AWS: с чего начать
- Отказоустойчивость и аварийное восстановление в AWS
- AWS Well-Architected Framework: шесть столпов и как ими пользоваться обязательно
- Infrastructure as Code: основы
- Terraform: HCL, провайдеры, состояние и модули
- CloudFormation: шаблоны и стеки
- AWS CDK: инфраструктура как программа
- IaC на практике: state, секреты, доставка
- Основы Yandex Cloud: организация, каталоги, IAM, сети
- Сеть в Yandex Cloud: облачная сеть, подсети, NAT, группы безопасности
- Cloud IAM в Yandex Cloud: сервисные аккаунты, роли, привязки
- Где запускать сервис в Yandex Cloud: Compute Cloud, Kubernetes, Serverless Containers, Cloud Functions
- Масштабирование и доступность в Yandex Cloud
- Serverless в Yandex Cloud: Cloud Functions, триггеры, API Gateway
- Управляемые данные в Yandex Cloud: PostgreSQL, Redis, Message Queue, Kafka
- YDB: масштабируемая база данных Yandex Cloud
- Object Storage в Yandex Cloud: объектное хранилище и классы хранения
- Yandex Cloud из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в Yandex Cloud: Lockbox, KMS, Cloud Logging, Monitoring
- Оптимизация затрат в Yandex Cloud: с чего начать
- Отказоустойчивость и аварийное восстановление в Yandex Cloud
- Terraform в Yandex Cloud: инфраструктура как код
- Основы Azure: подписки, группы ресурсов, Entra ID, сеть
- Сеть в Azure: Virtual Network, подсети, NSG, NAT
- Entra ID и RBAC в Azure: удостоверения, роли, managed identity
- Где запускать сервис в Azure: Virtual Machines, AKS, Container Apps, Functions
- Масштабирование и доступность в Azure
- Serverless в Azure: Azure Functions, триггеры, API Management
- Управляемые данные в Azure: PostgreSQL, Redis, Service Bus, Event Hubs
- Cosmos DB: глобально распределённая база данных Azure
- Blob Storage в Azure: объектное хранилище и уровни доступа
- Azure из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в Azure: Key Vault, Azure Monitor, Application Insights
- Оптимизация затрат в Azure: с чего начать
- Отказоустойчивость и аварийное восстановление в Azure
- Инфраструктура как код в Azure: Bicep, ARM, Terraform
- Основы GCP: проекты, Cloud IAM, регионы, сеть
- Сеть в GCP: VPC, подсети, правила файрвола, Cloud NAT
- Cloud IAM в GCP: сервисные аккаунты, роли, привязки
- Где запускать сервис в GCP: Compute Engine, GKE, Cloud Run, Cloud Functions
- Масштабирование и доступность в GCP
- Serverless в GCP: Cloud Run, Cloud Functions, Eventarc
- Управляемые данные в GCP: Cloud SQL, Memorystore, Pub/Sub
- Firestore и другие NoSQL в GCP: Bigtable, Spanner
- Cloud Storage в GCP: объектное хранилище и классы хранения
- GCP из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в GCP: Secret Manager, Cloud Logging, Cloud Monitoring
- Оптимизация затрат в GCP: с чего начать
- Отказоустойчивость и аварийное восстановление в GCP
- Terraform в GCP: инфраструктура как код
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 14. CI/CD: конвейер доставки · 3 вопросов
Принципы конвейера, стратегии релиза, ветвление и выпуски.
- Принципы CI/CD: конвейер от коммита до прода обязательно
- Стратегии релиза: rolling, blue-green, canary, feature flags обязательно
- Ветки и релизный цикл: trunk-based, версии, GitOps
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 15. Качество: тесты и наблюдаемость · 9 вопросов
Тестирование и наблюдаемость на Go.
- Тестирование в Go
- Наблюдаемость Go-сервиса: логи, трейсы, метрики, health-checks
- Логирование в Go: slog, JSON и context.Context
- Метрики в Go: prometheus/client_golang, RED, USE и бизнес-счётчики
- Distributed tracing в Go: OpenTelemetry с нуля
- Context propagation в Go — context.Context, middleware и горутины
- Health checks в Go: liveness, readiness и /info
- SLO и алерты в Go: error budget и multi-window burn rate
- Конфигурация observability в Go: management-порт, логи и метрики
- Нагрузочное тестирование: k6, Gatling, JMeter обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 16. Работа с AI-агентами · 9 вопросов
Как работает языковая модель и как продуктивно писать код с AI-агентом: токены и галлюцинации, контекст, вызов инструментов, агенты, базовый цикл работы, ревью и приёмка AI-кода.
- Как работают модели ИИ: предсказание следующего токена
- Галлюцинации ИИ: почему модель уверенно выдумывает
- Токены и стоимость: за что вы платите в работе с ИИ
- Контекст: что модель держит в голове за один раз
- Вызов инструментов: как модель выходит за пределы текста
- Агенты: модель в цикле с инструментами и целью
- Работа с агентами: базовый цикл продуктивной сессии
- Ревью и тестирование кода с агентом
- Приёмка результата AI: критерии и тесты из спеки
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 17. Создание LLM-приложений · 6 вопросов
Как встраивать AI в backend-продукт: из чего состоит LLM-фича, оркестрация через LangChain, RAG и эмбеддинги, векторные базы и агентные приложения.
- Из чего состоит LLM-фича
- LangChain: оркестрация LLM-приложений
- RAG и эмбеддинги: как дать модели ваши данные
- Векторные базы данных
- Агентные приложения: инструменты и автономные циклы
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 18. Системный дизайн и архитектурный выбор · 20 вопросов
Метод дизайна, строительные блоки и развилки выбора хранилищ, синхронности и нотаций.
- Надёжность, масштабируемость, сопровождаемость — простыми словами обязательно
- Метод системного дизайна: от требований к архитектуре обязательно
- Строительные блоки системного дизайна обязательно
- B-деревья и LSM-деревья простыми словами: как база данных хранит данные обязательно
- OLTP и OLAP простыми словами: два разных мира работы с данными обязательно
- Эволюция схем простыми словами: менять формат данных, ничего не ломая
- Модели репликации простыми словами: почему реплика отстаёт, multi-leader и кворумы обязательно
- Секционирование (шардинг) простыми словами: как разрезать данные по узлам без горячей точки обязательно
- Проблемы распределённых систем простыми словами: частичные отказы, ненадёжные часы, истина по кворуму обязательно
- Согласованность и консенсус простыми словами: линеаризуемость, CAP и одна общая задача обязательно
- Система записи и производные данные простыми словами: почему кеш, индекс и read-модель — одно и то же
- Потоковая обработка простыми словами: перехват изменений (CDC) и время в потоках
- Корректность в распределённой системе простыми словами: сквозной аргумент, exactly-once, целостность против своевременности
- Как устроена система уведомлений: архитектура с нуля
- Как оформить и защитить дизайн системы: design doc, C4, ревью обязательно
- Выбор начальной архитектуры: монолит, модульный монолит, микросервисы обязательно
- PostgreSQL или MongoDB: как выбрать базу данных
- Cassandra, PostgreSQL или MongoDB: когда брать колоночную NoSQL
- Графовые данные простыми словами: рекурсивный SQL или графовая СУБД
- PostgreSQL или ClickHouse: когда добавлять вторую базу
- Поиск: PostgreSQL FTS или Elasticsearch
- Файлы: в базе данных или в object storage
- Между сервисами: синхронный вызов или события обязательно
- ADR: как фиксировать архитектурные решения обязательно
- Роль архитектора в команде разработки обязательно
- Модель C4
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 19. Domain-Driven Design · 7 вопросов
Стратегические и тактические паттерны, интеграция и принципы проектирования домена.
- Что такое DDD и зачем он нужен обязательно
- Стратегические паттерны DDD на Go
- Тактические паттерны DDD на Go
- Интеграционные паттерны DDD на Go
- Принципы проектирования в DDD на Go
- Онтология и доменная модель: система понятий до агрегатов
- Event Storming: добываем модель домена у бизнеса
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 20. Архитектурные паттерны сервиса · 8 вопросов
Структура сервиса, Onion и Hexagonal, CQRS, отказоустойчивость и пакетная обработка (на Go).
- Луковая архитектура (Onion Architecture) обязательно
- CQRS
- Когда применять CQRS в Go-сервисе
- Command side в CQRS на Go
- Query side в CQRS на Go: как читать данные правильно
- Read-model в CQRS (Go): где хранить и как обновлять проекцию
- Синхронизация read-model через события в Go
- Уровень и эволюция CQRS в Go
- Гексагональная архитектура
- Когда применять Hexagonal Architecture в Go-сервисе
- Core слой в Go: Hexagonal Architecture
- Ports в Hexagonal Architecture — как ядро общается с внешним миром (Go)
- Входные адаптеры в гексагональной архитектуре на Go
- Out-адаптеры в Hexagonal Architecture на Go
- Структура пакетов Hexagonal Architecture на Go
- Bootstrap и Composition Root в гексагональной архитектуре (Go)
- Архитектурные тесты Hexagonal в Go
- Структурные паттерны микросервисов на Go
- Паттерны отказоустойчивости: Retry, Circuit Breaker, Bulkhead, DLQ на Go
- Пакетная обработка данных: как не сломать фоновый обработчик на Go
- Event Sourcing: хранить события, а не состояние
Пройти опрос фазы → самопроверка после чтения фазы
Программа обучения v4.3.1
Backend · Go
Программа подготовки по бэкенду на Go: шестнадцать фаз от Go-стека (net/http, chi, sqlc+pgx) через данные, принципы и паттерны, поиск, инфраструктуру и качество к системному дизайну и DDD и к кульминации в Use Case Pattern, а затем к сквозному кейсу маркетплейса. Концептуальные фазы общие для всех языков, инструментальные — на Go.
Всего в программе 160 вопросов для самопроверки.