Go: идиоматичный код — интерфейсы, методы, ошибки, дженерики

Мост от «я знаю синтаксис Go» к «я пишу как гофер»: методы и receiver, неявные интерфейсы, ошибки через errors.Is/As и дженерики 1.18+. 190 задач с автопроверкой в браузере на Go 1.26 и капстоун — дженерик-репозиторий Store[T] для интернет-магазина shopdb. Для тех, кто уже освоил базовый Go и хочет проходить код-ревью…
Средний уровень
6–8 часов в неделю, 4–5 недель на курс (общий объём ~30 часов)
Сертификат Stepik

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

  • Писать методы и осознанно выбирать receiver — value или pointer — под конкретную задачу
  • Разбираться в наборах методов и адресуемости и точно отвечать, удовлетворяет ли тип интерфейсу
  • Проектировать интерфейсы по-гошному: неявная реализация, маленькие интерфейсы, «принимай интерфейсы, возвращай структуры»
  • Безопасно работать с any, type assertion и type switch через идиому v, ok
  • Реализовывать интерфейсы стандартной библиотеки — Stringer, sort.Interface — и встраиваться в экосистему языка
  • Обрабатывать ошибки идиоматично: обёртка через %w, errors.Is и errors.As, sentinel- и типизированные ошибки, errors.Join, panic/recover
  • Не попадаться в ловушку nil-интерфейса против nil-значения — классический вопрос собеседования
  • Писать дженерики 1.18+: параметры типов, constraints, comparable и ~, Map/Filter/Reduce, дженерик-контейнеры
  • Собрать капстоун — дженерик-репозиторий Store[T] с типизированными ошибками — артефакт в портфолио

О курсе

Один и тот же код на Go можно написать «как на Java» — и получить на ревью десяток замечаний, — а можно идиоматично: через методы, неявные интерфейсы, ошибки-значения и дженерики. Этот курс учит второму способу.

Чем этот курс отличается

Мы не повторяем Курс 0: синтаксис, слайсы, мапы, структуры и функции считаются известными. Вместо этого — четыре темы, которые отделяют джуна от «пишет как гофер»: методы, интерфейсы, ошибки, дженерики. Дженерикам отведён отдельный модуль: на практике это то, чем сегодня пишут типобезопасные утилиты и контейнеры вместо копипасты и any. Задачи проверяются по поведению — ошибка ловится через errors.Is/errors.As, интерфейс через фактическое удовлетворение, дженерик через инстанцирование на нескольких типах, — а не сравнением строк вывода.

Ваш путь по курсу

Сначала вы пишете методы и разбираетесь с receiver: почему value-метод не меняет структуру и когда это ловушка. Затем интерфейсы: неявная реализация, композиция, type switch, Stringer и sort.Interface, nil-интерфейс. Дальше ошибки: error как значение, обёртка %w, errors.Is/As, sentinel- и типизированные ошибки, errors.Join и границы слоёв, panic/recover и где он уместен. Потом дженерики: параметры типов, constraints и ~-аппроксимация, Map/Filter/Reduce, Stack/Set/Queue, вывод типов — и отдельный урок про то, когда дженерики НЕ нужны. В финале вы собираете капстоун — репозиторий Store[T Entity] для сущностей shopdb: одно типобезопасное хранилище на товары, пользователей и заказы, с ErrNotFound и ErrDuplicate. Завершает курс модуль итогового разбора по всем четырём темам.

Сколько здесь практики

378 шагов, из них 73 % — активные: 190 задач на Go с автопроверкой и 84 интерактивных теста. Формат задач — «допиши тело по готовой сигнатуре»: лестница подсказок из 1–3 ступеней, эталонное решение открывается после сдачи, число попыток не ограничено. Каждый модуль заканчивается практикумом, капстоун — автопроверяемый артефакт.

С чего начать

Первый практический урок открыт бесплатно — напишите первый метод и получите зелёную галочку до покупки. Если базового Go ещё нет, начните с бесплатного курса «Go с нуля: основы и первые шаги».

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

Курс — для тех, кто уже пишет на Go и хочет писать идиоматично.

  • Джунам на Go, которые получают на код-ревью замечания «это не по-гошному» и хотят перестать их получать.
  • Тем, кто перешёл в Go с Java, C#, Python или JavaScript и пишет на Go в стиле прежнего языка: наследование вместо композиции, исключения вместо ошибок-значений.
  • Готовящимся к собеседованию: интерфейсы, method set, nil-интерфейс, errors.Is/As и дженерики — стандартная секция вопросов.
  • Выпускникам курса «Go с нуля» и всем, кто знает синтаксис Go, но ни разу не писал дженерик и не заворачивал ошибку через %w.

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

Что нужно:

  • Базовый Go: переменные и типы, if/switch, слайсы и мапы, структуры, указатели, функции. Всё это даёт бесплатный курс линейки «Go с нуля: основы и первые шаги».
  • Компьютер с браузером и интернетом. Заниматься можно с телефона.

Что НЕ нужно:

  • Не нужен опыт коммерческой разработки: достаточно уметь писать и запускать небольшие программы.
  • Не нужно ничего устанавливать: код пишется и проверяется на платформе, движок — Go 1.26.
  • Не нужны знания других языков и теории типов: constraints и параметры типов вводятся с нуля, на примерах shopdb.
  • Не нужно бояться дженериков: модуль про них начинается с задач в одну строку.

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

  • Формат: 7 модулей, 35 уроков, 378 коротких шагов. Текстовые лекции с примерами на сквозном домене shopdb и разбором типичных ошибок, без видео — читается с телефона.
  • Практика: 73 % шагов — активные. 190 задач на Go с автопроверкой и 84 интерактивных теста (выбор ответа, сопоставление, свободный ответ, число, порядок шагов).
  • Проверка: скрытые тесты на движке Go 1.26.1, вердикт мгновенно, попыток неограниченно. Ошибки проверяются через errors.Is/As, интерфейсы — по фактическому удовлетворению, дженерики — инстанцированием на нескольких типах.
  • Темп: свой, без дедлайнов. Доступ к курсу бессрочный.
  • Поддержка: комментарии под каждым шагом, разбор ошибок и вопросы к автору.

Ориентир нагрузки: при 6–8 часах в неделю курс проходится примерно за 4–5 недель; общий объём — около 30 часов.

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

В курс входят

  • 35 уроков
  • 84 теста
  • 190 интерактивных задач
загружаем...

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

Certificate

Сертификат

Сертификат Stepik

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

  • Навык писать код, который проходит ревью: правильный receiver, маленькие интерфейсы, ошибки-значения с контекстом, дженерики вместо копипасты.
  • 190 решённых задач с автопроверкой и 84 теста на сквозном домене интернет-магазина.
  • Капстоун-артефакт: дженерик-репозиторий Store[T] с типизированными ошибками — готовый кусок кода для портфолио и для разговора на собеседовании.
  • Модуль итогового разбора по методам, интерфейсам, ошибкам и дженерикам — материал для повторения перед интервью.
  • Бессрочный доступ к материалам и обновлениям курса, сертификат Stepik по итогам прохождения.
  • Мост дальше: «Go: конкурентность от и до — горутины, каналы, sync, context» — https://stepik.org/course/296264.

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

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

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

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

1 490 ₽