Чему вы научитесь
- Писать методы и осознанно выбирать receiver (value или pointer) под задачу
- Понимать наборы методов (method set) и адресуемость — и почему это решает, удовлетворяет ли тип интерфейсу
- Объявлять методы на любых именованных типах (Money, Status, slice-типы) для доменной типизации
- Проектировать и использовать интерфейсы по-гошному: неявная реализация, «принимай интерфейсы, возвращай структуры», композиция маленьких интерфейсов
- Работать с any, type assertion и type switch — безопасно, через v, ok
- Реализовывать stdlib-интерфейсы (Stringer, sort.Interface) и встраиваться в экосистему языка
- Не попадаться в ловушку nil-интерфейса против nil-значения (классический вопрос собеса)
- Обрабатывать ошибки идиоматично: error-значения, обёртка %w, errors.Is/As, sentinel и типизированные ошибки, errors.Join, panic/recover
- Писать дженерики 1.18+: параметры типов, constraints/comparable/~, Map/Filter/Reduce, дженерик-контейнеры (Stack, Set, Queue)
- Собрать капстоун — дженерик-репозиторий Store[T] с типизированными ошибками — артефакт в портфолио
О курсе
«Идиоматичный код» — это мост от «я выучил синтаксис Go» к «я пишу как гофер». Один и тот же код можно написать «как на Java/Python», а можно — идиоматично: через методы, неявные интерфейсы, ошибки-значения и дженерики. Этот курс учит именно второму — на сквозном домене интернет-магазина shopdb, без воды и без повторения основ.
Для кого и зачем. Это платный трипвайр линейки: дешёвый вход в темы, которые идеально автопроверяются, поэтому «вау» от зелёных галочек приходит быстро. Главный акцент — дженерики 1.18+: на Stepik это дыра, и мы даём их полноценно отдельным модулем (параметры типов, constraints, ~-аппроксимация, Map/Filter/Reduce, дженерик-контейнеры, когда они НЕ нужны).
Как устроено. Практики больше, чем теории (интерактивных шагов 184 из 287, ~64 %, против 103 лекционных): 111 задач с автопроверкой прямо в браузере на движке Go 1.26 плюс интерактивные тесты. Преобладают completion-задачи — дана сигнатура метода/функции, нужно написать тело; лестница подсказок ведёт к решению, а готовый код открывается только после сдачи. Ошибки и интерфейсы проверяются по поведению (errors.Is/As, удовлетворение интерфейсу), а не по тексту — как в реальном коде.
Что вы соберёте. Финал — капстоун: дженерик-репозиторий Store[T Entity] для сущностей shopdb (методы + интерфейс Entity + типизированные ошибки ErrNotFound/ErrDuplicate + дженерики). Это законченный автопроверяемый артефакт, который не стыдно положить в портфолио.
Особенности курса:
— Опираемся на Курс 0, не повторяем его. Синтаксис, слайсы, мапы, структуры и функции считаем известными — сразу работаем с идиомами. Первая победа — уже в модуле про методы (метод Total() у товара).
— Проверка по поведению. Ошибки ловятся через errors.Is/errors.As, интерфейсы — через фактическое удовлетворение, дженерики — инстанцированием на нескольких типах. Это учит писать код, который проходит ревью, а не просто «совпадает по строке».
— Дженерики как дифференциатор. Полноценный модуль о том, чего на Stepik почти нет: типобезопасные утилиты и контейнеры без any и копипасты.
— Капстоун-артефакт и мост дальше. Store[T] в портфолио + CTA на Курс 2 «Конкурентность»: «твой Store[T] пока однопоточный — а что при 1000 заказов разом?».
Что нужно делать: читать короткие лекции с примерами на shopdb, проходить тесты на понимание, решать Go-задачи с автопроверкой, разбирать ошибки и собрать капстоун.
Для кого этот курс
Начальные требования
Нужны основы Go — то, что даёт бесплатный Курс 0 «Go с нуля».
— Синтаксис, переменные и базовые типы, if/switch, циклы.
— Слайсы, мапы, структуры, функции (включая замыкания) и указатели.
— Базовое понимание, что такое метод и интерфейс, — приветствуется, но не обязательно: вводим с нуля темы курса.
Ничего устанавливать не нужно — все задачи решаются и проверяются в браузере на движке Go 1.26. Если вы не проходили Курс 0, рекомендуем начать с него (он бесплатный).
Наши преподаватели
Как проходит обучение
Курс текстово-интерактивный и полностью проходится в браузере, в своём темпе и без дедлайнов.
— Короткие лекции с примерами на сквозном домене shopdb и разбором идиом и граблей (например, nil-интерфейс) — живым языком.
— Задачи на Go с автопроверкой (111) в браузере на движке Go 1.26: completion-формат (напиши тело метода/функции) с лестницей подсказок; решение открывается после сдачи. Ошибки и интерфейсы проверяются по поведению (errors.Is/As, удовлетворение интерфейсу).
— Интерактивные тесты к разделам: выбор ответа, сопоставление, заполнение пропусков, ввод числа.
— Практикумы в конце модулей и капстоун Store[T] с автопроверкой и эталонным разбором.
— Поддержка автора в комментариях под шагами.
Логика — от методов к интерфейсам, ошибкам и дженерикам, с ранней победой уже в первом модуле; в финале всё собирается в дженерик-репозиторий.
Программа курса
Что вы получаете
- — Навык идиоматичного Go: методы, интерфейсы, ошибки-значения и дженерики 1.18+ — то, что отличает гофера от «пишущего на Go».
- — Объём практики: 111 задач с автопроверкой и интерактивные тесты на одном понятном домене shopdb.
- — Капстоун-артефакт: дженерик-репозиторий Store[T] с типизированными ошибками — в портфолио.
- — Готовность к собесу: method set, nil-интерфейс, errors.Is/As, дженерики vs интерфейсы — разобраны на практике.
- — Поддержку автора и обсуждения под шагами.
- — Доступ в своём темпе: пересдавайте задания сколько нужно.
- — Сертификат Stepik по итогам прохождения.