Чему вы научитесь
- Проектировать гибкий Go-код с помощью интерфейсов, композиции и стандартных абстракций
- Работать с горутинами, каналами, select и направленными каналами
- Синхронизировать конкурентный код с помощью Mutex, RWMutex, WaitGroup, Once и atomic
- Применять Worker Pool, Fan-out и Fan-in в практических задачах
- Находить гонки данных с помощью race detector
- Управлять отменой операций, дедлайнами и тайм-аутами через context
- Оборачивать ошибки и использовать errors.Is, errors.As и собственные типы ошибок
- Создавать обобщённые функции и структуры данных с помощью generics
- Работать с io.Reader, io.Writer, bufio и потоковой обработкой данных
- Использовать регулярные выражения для поиска, замены, валидации и парсинга
- Сериализовать данные в JSON и настраивать MarshalJSON и UnmarshalJSON
- Разрабатывать HTTP-серверы, клиенты, middleware и JSON API на Go
- Работать с PostgreSQL через database/sql и pgx
- Выполнять CRUD-операции, транзакции и prepared statements
- Писать table-driven тесты, бенчмарки и тесты HTTP-обработчиков
- Управлять Go Modules, зависимостями, vendoring и сборкой приложений
- Профилировать процессор и память с помощью pprof
- Анализировать работу GC и оптимизировать производительность Go-приложений
- Применять архитектурные и поведенческие паттерны в Go-проектах
- Организовывать код крупных backend-приложений
О курсе
Go часто воспринимают как простой язык с небольшим синтаксисом. Однако для разработки надёжных backend-приложений недостаточно знать переменные, циклы, функции и структуры. Необходимо понимать интерфейсы, конкурентность, управление контекстом, обработку ошибок, работу с HTTP, базами данных, тестирование и профилирование.
Этот курс предназначен для разработчиков, которые уже освоили основы Go и хотят перейти к более сложным задачам. Вы последовательно изучите продвинутые возможности языка и основные инструменты, используемые при создании серверных приложений на Go.
Большой блок курса посвящён конкурентному программированию. Вы разберёте горутины, каналы, select, Mutex, RWMutex, WaitGroup, Once и atomic, а также практические паттерны Worker Pool и Fan-out/Fan-in. Отдельное внимание уделяется гонкам данных, race detector и безопасному завершению конкурентных операций.
Вы научитесь использовать context для отмены операций, ограничения времени выполнения и передачи данных между компонентами приложения. Также рассматриваются современные подходы к обработке ошибок: sentinel errors, wrapping, errors.Is, errors.As и собственные типы ошибок.
В курс входят generics, потоковый ввод и вывод, регулярные выражения и расширенная работа с JSON. Вы разберёте io.Reader, io.Writer, bufio, io.Copy, io.Pipe, пользовательскую сериализацию и потоковый JSON Decoder.
В разделе по backend-разработке рассматриваются HTTP-серверы и клиенты, обработчики, маршрутизация, middleware и передача JSON через HTTP API. Затем Вы перейдёте к работе с PostgreSQL через database/sql и pgx, CRUD-операциям, транзакциям, prepared statements и настройке пула соединений.
Отдельные модули посвящены тестированию Go-приложений, управлению зависимостями, сборке, профилированию и оптимизации. Вы познакомитесь с table-driven тестами, httptest, бенчмарками, pprof, анализом памяти и работой сборщика мусора.
В заключительной части рассматриваются паттерны и организация крупных Go-приложений: Functional Options, Builder, Repository, Strategy, Observer и подходы к разделению ответственности между компонентами.
Курс сочетает теоретические объяснения, примеры кода, тесты и практические задания. Материалы можно проходить в собственном темпе, возвращаясь к сложным темам по мере необходимости.
Для кого этот курс
Начальные требования
Знание базового синтаксиса Go: переменных, условий, циклов и функций
Умение работать со структурами, методами, слайсами и map
Базовое понимание указателей и обработки ошибок
Установленная актуальная версия Go и любой удобный редактор кода
Базовое знание SQL желательно для прохождения раздела по PostgreSQL
Опыт коммерческой разработки не требуется
Как проходит обучение
Курс состоит из последовательных текстовых уроков, примеров Go-кода, тестов и практических заданий.
Сначала Вы изучаете новую тему и разбираете примеры, затем проверяете понимание с помощью заданий. Темы расположены от интерфейсов и базовой конкурентности до HTTP, PostgreSQL, тестирования, профилирования и архитектуры приложений.
Обучение проходит в собственном темпе. Сложные разделы можно пересматривать, а вопросы по материалам задавать в комментариях к урокам.
Программа курса
В курс входят
- 83 урока
- 729 тестов
- 55 интерактивных задач
Наши преподаватели
Сертификат
Отзывы прошедших курс
Что вы получаете
- Системное понимание продвинутых возможностей Go
- Навыки безопасной работы с горутинами, каналами и синхронизацией
- Умение использовать context и строить устойчивую обработку ошибок
- Практические навыки разработки HTTP API на Go
- Опыт работы с PostgreSQL через database/sql и pgx
- Навыки тестирования, профилирования и оптимизации Go-приложений
- Понимание архитектурных паттернов и организации крупных проектов
- Базу для дальнейшего профессионального развития в Go backend-разработке
- Сертификат Stepik после успешного завершения курса