Продвинутый Golang — Повтор
О чём курс
Продвинутый 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 API на Golang
1.2 Как устроен курс
1.3 Обзор проекта
1.4 Проекты домашних заданий
1.5 Обзор курсов
1.6 Работа на платформе
1.7 AI и тренажёры
1.8 Практика на проекте
1.9 Рекомендуемый курс
- Настройка окружения
2.1 Настройка окружения
2.2 Установка Golang
2.3 Настройки VSCode
2.4 Рекомендуемый курс
2.5 Домашнее задание AI
2.6 Работа с gitflow
- Работа 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 под капотом
- 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
- Http server
5.1 Выбор HTTP сервера
5.2 Простейший сервер
5.3 Как работают запросы
5.4 Свой ServeMux
5.5 Методы и коды ответа
5.6 Handler
5.7 Тест - Http server
- Архитектура
6.1 Структура приложения
6.2 Конфигурация
6.3 Обзор приложения
6.4 Декомпозиция модуля
6.5 Упражнение - Модуль авторизации
6.6 Передача зависимостей
6.7 Ответ от API
6.8 Упражнение - Пакет ответа
6.9 Тест - Архитектура
- Запрос и валидация
7.1 Чтение body
7.2 Упражнение - Простая валидация
7.3 Regexp
7.4 Go validator
7.5 Вынос обработчика
7.6 Упражнение - Регистрация
7.7 Тест - Запрос и валидация
- Подключение базы данных
8.1 Установка Docker Desktop
8.2 Развёртывание Postgres
8.3 Подключение к базе
8.4 Выбор ORM
8.5 Подключение Gorm
8.6 Описание модели
8.7 Авто миграции
8.8 Тест - Подключение базы данных
- CRUD
9.1 Упражнение - Handler ссылок
9.2 Параметр запроса
9.3 Паттерн репозитория
9.4 Создание ссылки
9.5 Получение ссылки
9.6 Упражнение - Проверка на hash
9.7 Изменение ссылки
9.8 Удаление ссылки
9.9 Упражнение - Проверка наличия
9.10 Тест - CRUD
- 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
- Авторизация
11.1 Что такое JWT
11.2 Упражнение - Модель пользователя
11.3 Упражнение - Репозиторий пользователей
11.4 Сервис авторизации
11.5 Bcrypt
11.6 Упражнение - Логин пользователя
11.7 Создание JWT
11.8 Упражнение - Финал авторизации
11.9 Тест - Авторизация
- Контекст
12.1 Что такое контекст
12.2 WithTimeout
12.3 WithValue
12.4 WithCancel
12.5 Получение email из JWT
12.6 Запись в контекст
12.7 Упражнение - Чтение из контекста
12.8 Unauthed
12.9 Тест - Контекст
- Продвинутая работа с БД
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 Тест - Продвинута работа с БД
- Тестирование 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
- Заключение
15.1 Куда дальше
Теги курса
Другие материалы автора 12
АЛ Антон Ларичев Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.