Практика по Go

Проекты от консоли до платформы

Выберите один проект на уровне, попробуйте несколько или выполните все три. У каждого проекта есть полное техническое задание и критерии ожидаемого результата.

15 уровней45 проектов3 проекта на уровень

Каталог

Выберите уровень

На уровнях 1–5 доступны примеры. Начиная с уровня 6, задания рассчитаны на самостоятельное решение.

Уровень 1

Простые консольные программы

Читаем данные из аргументов и ввода, выполняем расчёты и печатаем понятный результат.

С примерами
  1. ПРОЕКТ AУровень 1

    Стоимость поездки

    Посчитайте бюджет автомобильного путешествия и честно распределите его между участниками.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 1

    Зарплата по сменам

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

    Открыть ТЗ
  3. ПРОЕКТ CУровень 1

    Калькулятор рецепта

    Пересчитайте список ингредиентов на другое число порций, не теряя исходные единицы.

    Открыть ТЗ

Уровень 2

Работа с текстом и файлами

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

С примерами
  1. ПРОЕКТ AУровень 2

    Анализатор логов

    Отфильтруйте текстовый журнал по датам и уровню, сохранив точный подсчёт ошибок.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 2

    Статистика субтитров

    Разберите SRT, подсчитайте Unicode-слова и длительность показа с явным правилом пересечений.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 2

    Проверка Markdown

    Проверьте локальные inline-ссылки и якоря в Markdown-дереве без изменения файлов.

    Открыть ТЗ

Уровень 3

Личные каталоги

Создаём программы для хранения, поиска и изменения записей в небольшом каталоге.

С примерами
  1. ПРОЕКТ AУровень 3

    Домашняя библиотека

    Ведите каталог книг с поиском, состоянием чтения и надёжным локальным JSON-файлом.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 3

    Дневник тренировок

    Сохраняйте тренировки, упражнения и подходы, чтобы сравнивать нагрузку без потери истории.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 3

    Учёт вещей

    Учитывайте домашние вещи по месту хранения и находите нужный предмет по названию или категории.

    Открыть ТЗ

Уровень 4

Отчёты из CSV

Импортируем строки CSV, проверяем поля, считаем показатели и формируем отчёты.

С примерами
  1. ПРОЕКТ AУровень 4

    Отчёт по расходам

    Преобразуйте CSV-реестр затрат в проверяемые итоги по категориям и месяцам.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 4

    Отчёт по продажам

    Сведите строки продаж по товарам и каналам, отдельно учитывая возвраты и валовую выручку.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 4

    Проверка табеля

    Проверьте рабочие интервалы сотрудников на ошибки, дубли и превышение смены.

    Открыть ТЗ

Уровень 5

Обработка большого числа файлов

Обходим каталоги, обрабатываем множество файлов и собираем сводный результат.

С примерами
  1. ПРОЕКТ AУровень 5

    Поиск дубликатов

    Найдите одинаковое содержимое в дереве файлов, безопасно ограничивая память и параллелизм.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 5

    Объединение отчётов

    Соберите однородные CSV-файлы в один детерминированный отчёт с дедупликацией по ключу.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 5

    Каталог документов

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

    Открыть ТЗ

Уровень 6

Первые веб-сервисы

Создаём HTTP API с маршрутами, проверкой запросов и предсказуемыми ответами.

Самостоятельный проект
  1. ПРОЕКТ AУровень 6

    API событий

    CRUD-каталог событий с валидированием времени и стабильной пагинацией расписания.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 6

    Список чтения

    Личный каталог закладок с поиском по названию и явным состоянием прочтения каждой записи.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 6

    Каталог рецептов

    Редактируемый каталог рецептов с измеримым количеством порций, ингредиентами и упорядоченными шагами.

    Открыть ТЗ

Уровень 7

Сервисы с базой данных

Храним данные в PostgreSQL, выполняем запросы и миграции, обрабатываем ошибки хранения.

Самостоятельный проект
  1. ПРОЕКТ AУровень 7

    Бронирование переговорных

    Сервис бронирования комнат с атомарной защитой от пересечений и прозрачной отменой брони.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 7

    Учёт склада

    Остатки строятся из журнала движений, а повторные команды не создают повторного списания или поступления.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 7

    Личные финансы

    Учёт операций между счетами в одной валюте с точной арифметикой в минимальных денежных единицах.

    Открыть ТЗ

Уровень 8

Пользователи и доступ

Добавляем регистрацию, вход и проверку прав для защищённых операций сервиса.

Самостоятельный проект
  1. ПРОЕКТ AУровень 8

    Командные задачи

    Командный REST-сервис с отдельными правами участника и менеджера на каждом защищённом маршруте.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 8

    Закрытые заметки

    Заметки с отдельными разрешениями на чтение и редактирование, которыми владелец управляет явно.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 8

    График волонтёров

    Расписание смен с ролями организатора и волонтёра, вместимостью и проверкой пересекающегося времени.

    Открыть ТЗ

Уровень 9

Фоновые задания

Принимаем задания в очередь, выполняем их в фоне и показываем их состояние.

Самостоятельный проект
  1. ПРОЕКТ AУровень 9

    Генератор отчётов

    Фоновое формирование отчётов с сохраняемым состоянием задания, отменой и восстановлением после перезапуска.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 9

    Импорт данных

    Долгий CSV-импорт с построчными ошибками, ограниченным файлом и документированной политикой частичного результата.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 9

    Обновление цен

    Пакетный пересчёт каталога с десятичной точностью, фиксированной областью действия и защитой от устаревшей ревизии.

    Открыть ТЗ

Уровень 10

Связь с другими сервисами

Вызываем внешние HTTP API с таймаутами, проверяем ответы и учитываем временные сбои.

Самостоятельный проект
  1. ПРОЕКТ AУровень 10

    Отслеживание доставок

    Единая история доставки из двух провайдеров с опросом, проверенными webhook-событиями и защитой от устаревшего статуса.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 10

    Синхронизация задач

    Согласование задач между двумя системами с устойчивыми внешними идентификаторами и явным разрешением конфликтов.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 10

    Симулятор платежей

    Безопасный локальный платёжный сценарий с фальшивым провайдером, точной суммой заказа и дедупликацией событий.

    Открыть ТЗ

Уровень 11

Поисковые сервисы

Индексируем записи и предоставляем поиск с фильтрами, сортировкой и пагинацией.

Самостоятельный проект
  1. ПРОЕКТ AУровень 11

    Поиск товаров

    Сервис каталога с полнотекстовым поиском, фасетами, фильтрами наличия и стабильной пагинацией.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 11

    Поиск вакансий

    Поисковый API вакансий с однозначными фильтрами зарплаты, навыков, города и удалённой работы.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 11

    Поиск по документации

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

    Открыть ТЗ

Уровень 12

Поток данных

Принимаем непрерывный поток событий, обрабатываем его пакетами и отслеживаем ошибки.

Самостоятельный проект
  1. ПРОЕКТ AУровень 12

    Датчики

    Приём телеметрии с устойчивыми ID событий, оконными агрегатами и пороговыми оповещениями.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 12

    Посещения сайта

    Сбор обезличенных событий посещения и пересчитываемая аналитика скользящих периодов.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 12

    Изменения цен

    Нормализованный поток цен с историей, правилами изменения и дедупликацией уведомлений.

    Открыть ТЗ

Уровень 13

Сервис для нескольких организаций

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

Самостоятельный проект
  1. ПРОЕКТ AУровень 13

    CRM

    Многопользовательская CRM с организациями, ролями, клиентами, сделками, аудитом и квотами.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 13

    Helpdesk

    Тикеты нескольких компаний с клиентской видимостью сообщений, SLA и рабочими календарями.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 13

    Запись в студии

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

    Открыть ТЗ

Уровень 14

Длинные бизнес-процессы

Организуем процессы из нескольких этапов с сохранением состояния, повторами и отменой.

Самостоятельный проект
  1. ПРОЕКТ AУровень 14

    Обработка заказа

    Долгий процесс заказа с резервом, оплатой и доставкой через имитации внешних сервисов и явными компенсациями.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 14

    Согласование документов

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

    Открыть ТЗ
  3. ПРОЕКТ CУровень 14

    Страховая заявка

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

    Открыть ТЗ

Уровень 15

Платформа выполнения задач

Объединяем API, хранение, очереди и исполнителей в сервис для запуска и наблюдения за задачами.

Самостоятельный проект
  1. ПРОЕКТ AУровень 15

    Свой CI-сервис

    Локальная CI-платформа с DAG задач, архивами репозиториев, отдельными рабочими каталогами и восстановлением исполнителей.

    Открыть ТЗ
  2. ПРОЕКТ BУровень 15

    Планировщик обработки данных

    DAG-планировщик с локальными источниками и приёмниками, сохранением прогресса и безопасным повтором этапов.

    Открыть ТЗ
  3. ПРОЕКТ CУровень 15

    Платформа вычислений

    Распределённые вычисления с объединением результатов, отменой и восстановлением исполнителей.

    Открыть ТЗ