Чему вы научитесь
«Идиоматичный код» — это мост от «я выучил синтаксис Go» к «я пишу как гофер». Один и тот же код можно написать «как на Java/Python», а можно — идиоматично: через методы, неявные интерфейсы, ошибки-значения и дженерики. Этот курс учит именно второму — на сквозном домене интернет-магазина shopdb, без повторения основ.
Главный акцент — дженерики 1.18+: на Stepik это дыра рынка, и мы даём их полноценно отдельным модулем (параметры типов, constraints, ~-аппроксимация, Map/Filter/Reduce, дженерик-контейнеры, когда они НЕ нужны).
Ошибки и интерфейсы проверяются по поведению (errors.Is/As, удовлетворение интерфейсу), а не по тексту — как в реальном коде. Финал — капстоун: дженерик-репозиторий Store[T Entity] для сущностей shopdb (методы + интерфейс Entity + типизированные ошибки + дженерики) — законченный автопроверяемый артефакт для портфолио.
Особенности курса
- Опираемся на Курс 0, не повторяем его. Синтаксис, слайсы, мапы, структуры и функции считаем известными — сразу работаем с идиомами.
- Проверка по поведению. Ошибки ловятся через errors.Is/As, интерфейсы — через фактическое удовлетворение, дженерики — инстанцированием на нескольких типах.
- Дженерики как дифференциатор. Полноценный модуль о том, чего на Stepik почти нет: типобезопасные утилиты и контейнеры без any и копипасты.
- Капстоун-артефакт и мост дальше. Store[T] в портфолио + связь со следующей ступенью линейки — конкурентностью.
Из чего состоит курс
7 модулей: M1 «О курсе» → M2 методы (value/pointer receiver, method set) → M3 интерфейсы (неявность, any, assertion/switch, композиция, ловушка nil-интерфейса) → M4 ошибки (error-значения, %w, errors.Is/As, panic/recover) → M5 дженерики 1.18+ (constraints/~, Map/Filter/Reduce, контейнеры) → M6 капстоун Store[T] → M7 «Разбор» (опц.): собес-идиомы.
35 уроков, 378 коротких шагов, 190 задач с автопроверкой. Цифры выверены по фактически собранной программе курса.
О курсе
Для кого этот курс
Курс — для тех, кто уже знает основы Go и хочет писать идиоматично.
- Прошедшие «Go с нуля» (или знающие синтаксис, слайсы/мапы, структуры, функции): логичный следующий шаг.
- Переходящие с других языков, кто уже освоил базовый Go и спотыкается об интерфейсы, ошибки и дженерики.
- Junior-разработчики, готовящиеся к собесам: method set, nil-интерфейс, errors.Is/As, дженерики — частые вопросы.
- Те, кому нужен компактный курс по дженерикам 1.18+ (на Stepik их почти нет).
- Будущие backend-разработчики, которым важно писать код, проходящий ревью.
Начальные требования
Нужны основы Go — то, что даёт бесплатный «Go с нуля».
- Синтаксис, переменные и базовые типы, if/switch, циклы.
- Слайсы, мапы, структуры, функции (включая замыкания) и указатели.
- Методы и интерфейсы приветствуются, но не обязательны — вводим с нуля темы курса.
Ничего устанавливать не нужно — все задачи решаются и проверяются в браузере на движке Go 1.26.