Продвинутый Go (Golang): backend-разработка и конкурентность

Продвинутый курс по Go (Golang) и backend-разработке для тех, кто уже знает основы языка. Разберите горутины, каналы, sync, context, generics, ошибки, HTTP, PostgreSQL, тестирование, профилирование и архитектуру Go-приложений. Закрепите знания на примерах кода, тестах и практических заданиях.
Средний уровень
4-5 часов в неделю
Сертификат Stepik

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

  • Проектировать гибкий 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-разработчики, уже знакомые с базовым синтаксисом языка Junior-разработчики, которые хотят систематизировать знания и перейти к более сложным задачам Backend-разработчики, изучающие конкурентность, HTTP, PostgreSQL и тестирование в Go Программисты на других языках, переходящие к профессиональной разработке на Golang Разработчики, которые хотят лучше понимать context, generics, ошибки и стандартную библиотеку Специалисты, готовящиеся к техническим собеседованиям по Go и backend-разработке Разработчики, которым нужно научиться профилировать и оптимизировать Go-приложения

Начальные требования

Знание базового синтаксиса Go: переменных, условий, циклов и функций
Умение работать со структурами, методами, слайсами и map
Базовое понимание указателей и обработки ошибок
Установленная актуальная версия Go и любой удобный редактор кода
Базовое знание SQL желательно для прохождения раздела по PostgreSQL
Опыт коммерческой разработки не требуется

Как проходит обучение

Курс состоит из последовательных текстовых уроков, примеров Go-кода, тестов и практических заданий.

Сначала Вы изучаете новую тему и разбираете примеры, затем проверяете понимание с помощью заданий. Темы расположены от интерфейсов и базовой конкурентности до HTTP, PostgreSQL, тестирования, профилирования и архитектуры приложений.

Обучение проходит в собственном темпе. Сложные разделы можно пересматривать, а вопросы по материалам задавать в комментариях к урокам.

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

В курс входят

  • 83 урока
  • 729 тестов
  • 55 интерактивных задач
загружаем...

Наши преподаватели

Certificate

Сертификат

Сертификат Stepik

Отзывы прошедших курс

5
из 5
из 1 отзыва
1 отзыв
загружаем...

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

  • Системное понимание продвинутых возможностей Go
  • Навыки безопасной работы с горутинами, каналами и синхронизацией
  • Умение использовать context и строить устойчивую обработку ошибок
  • Практические навыки разработки HTTP API на Go
  • Опыт работы с PostgreSQL через database/sql и pgx
  • Навыки тестирования, профилирования и оптимизации Go-приложений
  • Понимание архитектурных паттернов и организации крупных проектов
  • Базу для дальнейшего профессионального развития в Go backend-разработке
  • Сертификат Stepik после успешного завершения курса

Сколько стоит обучение

1 390 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям