О чём курс

Продвинутый Golang — курс о создании HTTP API и многопоточности. В ходе курса вы создадите сервис по укорачиванию ссылок с авторизацией и статистикой.

Что вы изучите

Вы познакомитесь с внутренним устройством Golang, включая Go allocator, Stack, Heap, GC и выделение памяти. Затем изучите работу горутин, их синхронизацию и использование каналов для общения между ними.

При создании API на стандартном пакете http вы изучите роутинг, обработку запросов и ответов, проектирование архитектуры, работу с контекстом и middleware. Вы запустите PostgreSQL в Docker, подключитесь к базе через ORM Gorm и напишете все типы CRUD-запросов. Также вы создадите авторизацию, поработаете с JWT и напишете тесты для API.

Теорию изучают во время создания API. В курсе есть упражнения для закрепления знаний.

Требования

Для прохождения необходимо знать основы Golang.

Тариф

Самостоятельный. Курс обновлён 20 февраля 2026 года.

Программа обучения

  • Введение

  • Настройка окружения

  • Работа Go под капотом

  • Concurrency

  • Http server

  • Архитектура

  • Запрос и валидация

  • Подключение базы данных

  • CRUD

  • Middleware

  • Авторизация

  • Контекст

  • Продвинутая работа с БД

  • Тестирование API

  • Заключение

    1. Введение
  • 1.1 API на Golang

  • 1.2 Как устроен курс

  • 1.3 Обзор проекта

  • 1.4 Проекты домашних заданий

  • 1.5 Обзор курсов

  • 1.6 Работа на платформе

  • 1.7 AI и тренажёры

  • 1.8 Практика на проекте

  • 1.9 Рекомендуемый курс

    1. Настройка окружения
  • 2.1 Настройка окружения

  • 2.2 Установка Golang

  • 2.3 Настройки VSCode

  • 2.4 Рекомендуемый курс

  • 2.5 Домашнее задание AI

  • 2.6 Работа с gitflow

    1. Работа Go под капотом
  • 3.1 Что внутри программы Go

  • 3.2 Модель памяти

  • 3.3 Stack frames

  • 3.4 Heap

  • 3.5 Pointer на heap

  • 3.6 Go allocator

  • 3.7 Пример с Reader

  • 3.8 Работа GC

  • 3.9 Тест - Работа Go под капотом

    1. Concurrency
  • 4.1 Что такое Goroutine

  • 4.2 Запуск Goroutine

  • 4.3 Упражнение - Ускорение работы

  • 4.4 WaitGroup

  • 4.5 Планировщик

  • 4.6 Цикл планировщика

  • 4.7 Channels

  • 4.8 Создание канала

  • 4.9 Чтение данных

  • 4.10 Закрытие канала

  • 4.11 Упражнение - Сумма slice

  • 4.12 Обработка ошибок

  • 4.13 Select

  • 4.14 Тест - Concurrency

    1. Http server
  • 5.1 Выбор HTTP сервера

  • 5.2 Простейший сервер

  • 5.3 Как работают запросы

  • 5.4 Свой ServeMux

  • 5.5 Методы и коды ответа

  • 5.6 Handler

  • 5.7 Тест - Http server

    1. Архитектура
  • 6.1 Структура приложения

  • 6.2 Конфигурация

  • 6.3 Обзор приложения

  • 6.4 Декомпозиция модуля

  • 6.5 Упражнение - Модуль авторизации

  • 6.6 Передача зависимостей

  • 6.7 Ответ от API

  • 6.8 Упражнение - Пакет ответа

  • 6.9 Тест - Архитектура

    1. Запрос и валидация
  • 7.1 Чтение body

  • 7.2 Упражнение - Простая валидация

  • 7.3 Regexp

  • 7.4 Go validator

  • 7.5 Вынос обработчика

  • 7.6 Упражнение - Регистрация

  • 7.7 Тест - Запрос и валидация

    1. Подключение базы данных
  • 8.1 Установка Docker Desktop

  • 8.2 Развёртывание Postgres

  • 8.3 Подключение к базе

  • 8.4 Выбор ORM

  • 8.5 Подключение Gorm

  • 8.6 Описание модели

  • 8.7 Авто миграции

  • 8.8 Тест - Подключение базы данных

    1. CRUD
  • 9.1 Упражнение - Handler ссылок

  • 9.2 Параметр запроса

  • 9.3 Паттерн репозитория

  • 9.4 Создание ссылки

  • 9.5 Получение ссылки

  • 9.6 Упражнение - Проверка на hash

  • 9.7 Изменение ссылки

  • 9.8 Удаление ссылки

  • 9.9 Упражнение - Проверка наличия

  • 9.10 Тест - CRUD

    1. Middleware
  • 10.1 Что такое Middleware

  • 10.2 Первый обработчик

  • 10.3 WrapperWriter

  • 10.4 CORS

  • 10.5 Stack middleware

  • 10.6 Упражнение - Получение Bearer

  • 10.7 Middleware для роутов

  • 10.8 Тест - Middleware

    1. Авторизация
  • 11.1 Что такое JWT

  • 11.2 Упражнение - Модель пользователя

  • 11.3 Упражнение - Репозиторий пользователей

  • 11.4 Сервис авторизации

  • 11.5 Bcrypt

  • 11.6 Упражнение - Логин пользователя

  • 11.7 Создание JWT

  • 11.8 Упражнение - Финал авторизации

  • 11.9 Тест - Авторизация

    1. Контекст
  • 12.1 Что такое контекст

  • 12.2 WithTimeout

  • 12.3 WithValue

  • 12.4 WithCancel

  • 12.5 Получение email из JWT

  • 12.6 Запись в контекст

  • 12.7 Упражнение - Чтение из контекста

  • 12.8 Unauthed

  • 12.9 Тест - Контекст

    1. Продвинутая работа с БД
  • 13.1 Формирование запроса

  • 13.2 Limit и offset

  • 13.3 Count

  • 13.4 Query параметры

  • 13.5 Упражнение - Список ссылок

  • 13.6 Один ко многим

  • 13.7 Добавление клика

  • 13.8 Упражнение - Простое добавление

  • 13.9 Правильный DI

  • 13.10 Eventbus

  • 13.11 Отправка события

  • 13.12 Получение события

  • 13.13 Упражнение - Финал Eventbus

  • 13.14 Упражнение - Handler статистики

  • 13.15 Group By

  • 13.16 Group By в Gorm

  • 13.17 Gorm Session

  • 13.18 Тест - Продвинута работа с БД

    1. Тестирование API
  • 14.1 Виды тестирования

  • 14.2 Изменение приложения

  • 14.3 E2e тест

  • 14.4 Упражнение - Отрицательный тест

  • 14.5 Подготовка тестового окружения

  • 14.6 Предварительные данные

  • 14.7 Очистка данных

  • 14.8 Unit тесты

  • 14.9 Mock данных

  • 14.10 Mock базы

  • 14.11 Httptest

  • 14.12 Mock запросов

  • 14.13 Упражнение - Тест регистрации

  • 14.14 Отладка тестов

  • 14.15 Финал проекта

  • 14.16 Тест - Тестирование API

    1. Заключение
  • 15.1 Куда дальше

Складчина создана 4 ноября 2026 г.

Теги курса

Инструменты

Другие материалы автора 12

АЛ Антон Ларичев Все материалы
3 999 ₽