Мы используем 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 ₽
Программа: Твой JavaScript
Программа: Твой JavaScript

Цель курса - дать вам исчерпывающее понимание JavaScript. Мы не обещаем сделать из вас сеньора за две недели, это сказки. Наша задача - предоставить самую подробную и глубокую баз…

Онлайн21 занятий
4 250 ₽
Основы C#
Основы C#

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

Онлайн10 занятий
3 999 ₽
Профессиональная переподготовка «Инженер-программист станков ЧПУ»
−8%256 часов
Профессиональная переподготовка «Инженер-программист станков ЧПУ»

▶️ Профессиональная переподготовка «Инженер-программист станков ЧПУ» с выдачей диплома. Дистанционное (онлайн) обучение в учебном центре «НЦПО». 🔥Обучение в рассрочку от 1320 руб.…

Онлайн3 занятий
Домашние заданияИнтерактивные тренажёры+3
17 250 ₽−8%
15 850 ₽от 1 320 ₽/мес на 12 мес.
Начать без затрат

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

Python для решения практических задач
Бесплатно
Python для решения практических задач

Научились решать простые задачи на питоне, но не можете понять, как сделать что-то полезное? Наш курс научит вас правильно гуглить! На примерах задач сбора данных (Data Scraping)…

Онлайн5 занятий
Бесплатно
Python для геймеров: базовый курс на игровых примерах
Бесплатно4 часа в неделю
Python для геймеров: базовый курс на игровых примерах

Здесь не будет сложных задач «про шахматы»! Здесь не будет абстрактных задач и сложных математических вычислений. Зато есть: теория простым и понятным языком игровые механики логи…

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

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

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