Мы используем cookie для стабильной работы сервиса. Подробнее

Продвинутый Golang

ФорматОнлайн
Объём15 занятий
О курсе

Подробнее

Этот курс подойдёт тем, кто уже знает основы Golang и хочет начать проектировать и писать полноценные API на Golang с базой данных Postgres и популярной ORM - Gorm. Кроме того курс позволит детально разобраться в том, как устроен Golang под капотом и начать использовать горутины. В рамках курса мы поговорим о Go allocator, Stack, Heap, GC и затем перейдём к горутинам. Посмотрим как они работают, как их можно синхронизировать и использовать каналы для общения между ними. Затем начнём писать большое API на чистом http пакете, разбираясь с роутингом, обработкой запрос и ответа. Подключимся к PostreSQL с помощью ORM Gorm, предварительно запустив её в Docker и напишем все типы CRUD запросов. Курс будет максимально практическим, ведь всю теорию мы разбираем прямо во время создания API. Проект является сложным сервисом по укорачиванию ссылок с авторизацией и статистикой. Так же для курса было сделано большое число упражнений, которые позволят вас закрепить полученные знания.
Требования

Что нужно для старта

  • Знание основ Golang
Результат

Что вы получите

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

Для кого этот курс

  • Начинающие разработчики на Golang
Содержание

Программа курса

15 занятий
ТемаЧто внутри
01Введение

- API на Golang
- Как устроен курс
- Обзор проекта
- Обзор курсов
- Перенос курса

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

- Настройка окружения
- Установка Golang
- Настройки VSCode

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

- Что внутри программы Go
- Модель памяти
- Stack frames
- Heap
- Pointer на heap
- Go allocator
- Пример с Reader
- Работа GC
- Тест - Работа Go под капотом

04Concurrency

- Что такое Goroutine
- Запуск Goruntine
- Упражнение - Ускорение работы
- WaitGroup
- Планировщик
- Цикл планировщика
- Channels
- Создание канала
- Чтение данных
- Закрытие канала
- Упражнение - Сумма slice
- Обработка ошибок
- Select
- Тест - Concurrency

05Http server

- Выбор HTTP сервера
- Простейший сервер
- Как работают запросы
- Свой ServeMux
- Методы и коды ответа
- Handler
- Тест - Http server

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

- Структура приложения
- Конфигурация
- Обзор приложения
- Декомпозиция модуля
- Упражнение - Модуль авторизации
- Передача зависимостей
- Ответ от API
- Упражнение - Пакет ответа
- Тест - Архитектура

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

- Чтение body
- Упражнение - Простая валидация
- Regexp
- Go validator
- Вынос обработчика
- Упражнение - Регистрация
- Тест - Запрос и валидация

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

- Установка Docker Desktop
- Развёртывание Postgres
- Подключение к базе
- Выбор ORM
- Подключение Gorm
- Описание модели
- Авто миграции
- Тест - Подключение базы данных

09CRUD

- Упражнение - Handler ссылок
- Параметр запроса
- Паттерн репозитория
- Создание ссылки
- Получение ссылки
- Упражнение - Проверка на hash
- Изменение ссылки
- Удаление ссылки
- Упражнение - Проверка наличия
- Тест - CRUD

10Middleware

- Что такое Middleware
- Первый обработчик
- WrapperWriter
- CORS
- Stack middleware
- Упражнение - Получение Bearer
- Middleware для роутов
- Тест - Middleware

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

- Что такое JWT
- Упражнение - Модель пользователя
- Упражнение - Репозиторий пользователей
- Сервис авторизации
- Bcrypt
- Упражнение - Логин пользователя
- Создание JWT
- Упражнение - Финал авторизации
- Тест - Авторизация

12Контекст

- Что такое контекст
- WithTimeout
- WithValue
- WithCancel
- Получение email из JWT
- Запись в контекст
- Упражнение - Чтение из контекста
- Unauthed
- Тест - Контекст

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

- Формирование запроса
- Limit и offset
- Count
- Query параметры
- Упражнение - Список ссылок
- Один ко многим
- Добавление клика
- Упражнение - Простое добавление
- Правильный DI
- Eventbus
- Отправка события
- Получение события
- Упражнение - Финал Eventbus
- Упражнение - Handler статистики
- Group By
- Group By в Gorm
- Gorm Session
- Тест - Продвинута работа с БД

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

- Виды тестирования
- Изменение приложения
- E2e тест
- Упражнение - Отрицательный тест
- Подготовка тестового окружения
- Предварительные данные
- Очистка данных
- Unit тесты
- Mock данных
- Mock базы
- Httptest
- Mock запросов
- Упражнение - Тест регистрации
- Отладка тестов
- Финал проекта
- Тест - Тестирование API

15Заключение

- Куда дальше
- Финальное тестирование

01Введение

- API на Golang
- Как устроен курс
- Обзор проекта
- Обзор курсов
- Перенос курса

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

- Настройка окружения
- Установка Golang
- Настройки VSCode

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

- Что внутри программы Go
- Модель памяти
- Stack frames
- Heap
- Pointer на heap
- Go allocator
- Пример с Reader
- Работа GC
- Тест - Работа Go под капотом

04Concurrency

- Что такое Goroutine
- Запуск Goruntine
- Упражнение - Ускорение работы
- WaitGroup
- Планировщик
- Цикл планировщика
- Channels
- Создание канала
- Чтение данных
- Закрытие канала
- Упражнение - Сумма slice
- Обработка ошибок
- Select
- Тест - Concurrency

05Http server

- Выбор HTTP сервера
- Простейший сервер
- Как работают запросы
- Свой ServeMux
- Методы и коды ответа
- Handler
- Тест - Http server

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

- Структура приложения
- Конфигурация
- Обзор приложения
- Декомпозиция модуля
- Упражнение - Модуль авторизации
- Передача зависимостей
- Ответ от API
- Упражнение - Пакет ответа
- Тест - Архитектура

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

- Чтение body
- Упражнение - Простая валидация
- Regexp
- Go validator
- Вынос обработчика
- Упражнение - Регистрация
- Тест - Запрос и валидация

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

- Установка Docker Desktop
- Развёртывание Postgres
- Подключение к базе
- Выбор ORM
- Подключение Gorm
- Описание модели
- Авто миграции
- Тест - Подключение базы данных

09CRUD

- Упражнение - Handler ссылок
- Параметр запроса
- Паттерн репозитория
- Создание ссылки
- Получение ссылки
- Упражнение - Проверка на hash
- Изменение ссылки
- Удаление ссылки
- Упражнение - Проверка наличия
- Тест - CRUD

10Middleware

- Что такое Middleware
- Первый обработчик
- WrapperWriter
- CORS
- Stack middleware
- Упражнение - Получение Bearer
- Middleware для роутов
- Тест - Middleware

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

- Что такое JWT
- Упражнение - Модель пользователя
- Упражнение - Репозиторий пользователей
- Сервис авторизации
- Bcrypt
- Упражнение - Логин пользователя
- Создание JWT
- Упражнение - Финал авторизации
- Тест - Авторизация

12Контекст

- Что такое контекст
- WithTimeout
- WithValue
- WithCancel
- Получение email из JWT
- Запись в контекст
- Упражнение - Чтение из контекста
- Unauthed
- Тест - Контекст

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

- Формирование запроса
- Limit и offset
- Count
- Query параметры
- Упражнение - Список ссылок
- Один ко многим
- Добавление клика
- Упражнение - Простое добавление
- Правильный DI
- Eventbus
- Отправка события
- Получение события
- Упражнение - Финал Eventbus
- Упражнение - Handler статистики
- Group By
- Group By в Gorm
- Gorm Session
- Тест - Продвинута работа с БД

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

- Виды тестирования
- Изменение приложения
- E2e тест
- Упражнение - Отрицательный тест
- Подготовка тестового окружения
- Предварительные данные
- Очистка данных
- Unit тесты
- Mock данных
- Mock базы
- Httptest
- Mock запросов
- Упражнение - Тест регистрации
- Отладка тестов
- Финал проекта
- Тест - Тестирование API

15Заключение

- Куда дальше
- Финальное тестирование

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

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

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Продвинутый Golang» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 3 сентября 2026 г.

Продолжить выбор

Похожие курсы

GOLANG NINJA. Искусство работы с ошибками
Курс не имеет дедлайнов, можно проходить в удобном для вас темпе
GOLANG NINJA. Искусство работы с ошибками

Данный курс является первой частью специализации "Искусство работы с ошибками и безмолвной паники в Go". Что такого особенного можно рассказать про ошибки? Мы считаем, что грамотн…

Онлайн9 занятийПродвинутый
22 529 ₽
C++ для разработки игр
3 сентября
C++ для разработки игр

Освой С++ на базовом уровне, создай свою первую игру уже через 2 месяца обучения, в дальнейшем сможешь применить эти знания для работы в Unreal Engine.

Онлайн4 занятий
Домашние заданияВидеоуроки+2
90 300 ₽Рассрочка на 12 мес.
Основы разработки на C++: белый пояс
Основы разработки на C++: белый пояс

Этот курс посвящён знакомству с языком программирования С++. Вы научитесь использовать его основные конструкции, создавать свои типы данных, разбивать программу на классы и функци…

Онлайн5 занятий
20 000 ₽
Основы C#
Основы C#

Курс несомненно подойдёт начинающим разработчикам, который хотят освоить современный и востребованный язык программирования. Курс мы начнём с изучения основ - встроенных в язык ти…

Онлайн10 занятий
3 999 ₽
Технология разработки программного обеспечения - переподготовка
−40%2 месяца
Технология разработки программного обеспечения - переподготовка

Курс профессиональной переподготовки «Технология разработки программного обеспечения» по всей России. ✓ Дистанционное обучение ✓ Получение диплома с бесплатной доставкой ✓ Цена 32…

Онлайн5 занятий
Текстовые уроки
54 980 ₽−40%
32 980 ₽
Python разработчик
6,5 месяца
Python разработчик

Веб-разработка на Python: Django, Django REST Framework, Flask. Работа с базами данных, ORM, создание API. Асинхронное программирование, FastAPI. Основы DevOps, контейнеризация, р…

ОнлайнНачальный
110 000 ₽от 6 111 ₽/мес на 18 мес.
Начать без затрат

Бесплатные курсы

Claude Code с нуля до реальных задач
Бесплатно1 месяц
Claude Code с нуля до реальных задач

Вы разовьёте аналитическое мышление, научитесь искать уязвимости и обеспечивать безопасность IT-систем. Освоите востребованную профессию даже с нулевым опытом в IT. Программа курс…

Онлайн
Бесплатноот 11 647 ₽/мес