О чём курс

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

Требования и содержание

Для прохождения нужно знать основы Golang. Курс рассчитан на тех, кто хочет проектировать и писать API на Golang с базой данных Postgres и ORM Gorm, изучить внутреннее устройство языка и использовать горутины.

Вы изучите Go allocator, Stack, Heap и GC, работу и синхронизацию горутин и обмен данными между ними через каналы. Затем напишете API на чистом пакете http, включая роутинг и обработку запросов и ответов. Для подключения к Postgres через Gorm базу предварительно запустят в Docker; вы напишете все типы CRUD-запросов.

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

Чему вы научитесь

  • Использовать горутины.
  • Понимать внутреннее устройство Golang.
  • Разбираться в работе GC и выделении памяти.
  • Работать с контекстом.
  • Создавать API на Golang.
  • Проектировать архитектуру API.
  • Работать с Gorm.
  • Создавать авторизацию и работать с JWT.
  • Работать с middleware.
  • Писать CRUD-запросы.
  • Писать тесты для API.

Материал построен от простого к сложному. Тариф — «Самостоятельный». Курс обновлён 20 февраля 2026 года.

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

    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 ₽