/real-go-practice

Задачи которые реально встречаются в работе Go-разработчика

Задачник по Golang для повседневной работы

Практический задачник с задачами, которые встречаются в реальной работе Go-разработчика. Никаких олимпиадных задач — только то, что нужно делать каждый день.

📚 Содержание

Трансформация данных, фильтрация, группировка, удаление дубликатов — базовые операции с коллекциями.

Темы:

  • Трансформация структур данных
  • Группировка по ключам
  • Удаление дубликатов
  • Фильтрация и сортировка
  • Слияние и объединение данных

Парсинг JSON от API, маппинг данных, работа с тегами, кастомные типы.

Темы:

  • Unmarshal/Marshal JSON
  • Кастомные теги и валидация
  • Работа с вложенными структурами
  • Обработка динамических JSON
  • Конвертация между форматами

Создание, оборачивание и обработка ошибок по-настоящему Go-way.

Темы:

  • Создание кастомных ошибок
  • Wrapping и unwrapping
  • Sentinel errors
  • Обработка множественных ошибок
  • Логирование ошибок

Параллельная обработка данных, координация горутин, таймауты, контексты.

Темы:

  • Worker pools
  • Fan-in/Fan-out паттерны
  • Использование context
  • Таймауты и отмена операций
  • Безопасная работа с общими данными

Чтение, запись, обработка больших файлов, работа с путями.

Темы:

  • Чтение и запись файлов
  • Потоковая обработка больших файлов
  • Работа с директориями
  • CSV и текстовые форматы
  • Временные файлы

Создание HTTP серверов и клиентов, middleware, обработка запросов.

Темы:

  • HTTP handlers и роутинг
  • Middleware
  • HTTP клиенты с таймаутами
  • Загрузка файлов
  • Работа с query parameters и headers

SQL запросы, транзакции, миграции, работа с пулом соединений.

Темы:

  • CRUD операции с database/sql
  • Транзакции
  • Prepared statements
  • Пагинация
  • Работа с NULL значениями

Unit тесты, моки, table-driven tests, бенчмарки.

Темы:

  • Table-driven tests
  • Моки и интерфейсы
  • Тестирование HTTP handlers
  • Тестирование с БД
  • Бенчмарки

Создание CLI приложений, работа с флагами, переменными окружения и конфигурационными файлами.

Темы:

  • Флаги командной строки (flag, cobra)
  • Environment variables
  • Конфигурационные файлы (viper)
  • Interactive prompts
  • Progress bars и цветной вывод

Создание и работа с gRPC сервисами, паттерны микросервисной архитектуры.

Темы:

  • Базовый gRPC (unary, streaming)
  • Interceptors и middleware
  • Service Discovery
  • Circuit Breaker
  • Health Checks и Distributed Tracing

🎯 Как пользоваться задачником

  1. Решайте последовательно — темы идут от простого к сложному
  2. Читайте контекст — каждая задача описывает реальную рабочую ситуацию
  3. Используйте подсказки — раскрывайте их по мере необходимости
  4. Пишите код сами — готовых решений нет специально
  5. Проверяйте работу — запускайте код, пишите тесты

📊 Легенда сложности

  • 🟢 Базовый уровень — ежедневные задачи
  • 🟡 Средний уровень — требует понимания деталей
  • 🔴 Продвинутый уровень — сложные сценарии

💡 Требования

  • Go 1.21+ (некоторые задачи используют современный синтаксис)
  • Базовое понимание синтаксиса Go
  • Желание писать настоящий production код