Чему вы научитесь
- Писать юнит-тесты пакетом testing: подтесты, table-driven, t.Helper, аккуратные сообщения об ошибке
- Подменять зависимости фейками и стабами через интерфейсы и внедрение зависимостей — без внешних библиотек
- Тестировать HTTP-код через httptest: сервер-дублёр, ResponseRecorder, инъекция Clock вместо time.Now
- Измерять и читать покрытие, писать Example-функции для документации, запускать фаззинг и бенчмарки
- Работать с потоковым вводом-выводом: io.Reader и io.Writer, bufio, io.Copy — и тестировать их на буферах
- Сериализовать данные: encoding/json с тегами и своими маршалерами, CSV и XML
- Уверенно пользоваться рабочими пакетами stdlib: time, os и io/fs (включая fstest.MapFS), regexp, sort, slices, maps
- Покрыть тестами готовый сервис заказов shopdb с тремя внешними зависимостями — капстоун курса
О курсе
Научитесь покрывать код тестами так, как это делают в командах на Go: table-driven, subtests, фейки и внедрение зависимостей, httptest, покрытие, фаззинг и бенчмарки — плюс рабочие пакеты stdlib: io, encoding/json, time, io/fs, regexp, slices. 207 задач с автопроверкой в браузере на Go 1.26 и капстоун — покрытие тестами сервиса заказов. Для тех, кто уже пишет на Go, но тесты пишет «когда останется время».
Для кого этот курс
Курс — для тех, кто пишет на Go и хочет покрывать код тестами уверенно.
- Разработчикам на Go, которым на ревью пишут «нет тестов», а времени разбираться, как их писать правильно, не было.
- Джунам, которые пишут тесты «по одному на функцию» и не знают, как тестировать код с базой, HTTP-вызовами и time.Now.
- Тем, кто идёт на собеседование уровня middle: table-driven, моки через интерфейсы, покрытие и бенчмарки — стандартные вопросы.
- Выпускникам курсов «Go с нуля» и «Go: идиоматичный код», которым нужен рабочий минимум стандартной библиотеки: io, json, time, fs, regexp, slices.
Начальные требования
Что нужно:
- Базовый и идиоматичный Go: функции, структуры, слайсы и мапы, интерфейсы, ошибки. Это курсы «Go с нуля» и «Go: идиоматичный код».
- Компьютер с браузером и интернетом.
Что НЕ нужно:
- Не нужен опыт написания тестов: курс начинается с первого теста на пять строк.
- Не нужны сторонние библиотеки: ни testify, ни моки-генераторы — всё делается стандартной библиотекой, как и принято в Go.
- Не нужно ничего устанавливать: задачи решаются и проверяются в браузере на движке Go 1.26.
- Не нужно проходить курс по конкурентности: он этому курсу не пререквизит.
Преподаватели курса
Как проходит обучение
- Формат: 8 модулей, 34 урока, 416 коротких шагов. Текстовые лекции с примерами на домене shopdb, без видео — читается с телефона.
- Практика: 62 % шагов — активные. 207 задач на Go с автопроверкой и 50 интерактивных тестов; в каждом модуле практикум.
- Проверка: скрытые тесты на движке Go 1.26.1, вердикт мгновенно. Задачи «напиши тест» проверяются мета-тестом: ваш тест прогоняется против правильной и сломанной реализаций — он должен пропустить первую и поймать вторую.
- Темп: свой, без дедлайнов. Доступ бессрочный, попыток неограниченно.
- Поддержка: комментарии под каждым шагом.
Ориентир нагрузки: при 6–8 часах в неделю курс проходится примерно за 4–6 недель; общий объём — около 34 часов.
Что вы получите
- Навык покрывать тестами реальный код: изолировать зависимости, подменять время и файловую систему, тестировать HTTP-обработчики.
- Рабочее знание стандартной библиотеки: io и bufio, encoding/json, csv/xml, time, io/fs, regexp, sort/slices/maps.
- 207 решённых задач с автопроверкой и 50 тестов на сквозном домене интернет-магазина.
- Капстоун: покрытый тестами сервис заказов shopdb — артефакт в портфолио и готовый пример на собеседовании.
- Бессрочный доступ к материалам и обновлениям, сертификат Stepik.
- Мост дальше: «Go: веб-сервисы и базы данных — REST API + PostgreSQL» — https://stepik.org/course/297083.
Нагрузка
6–8 часов в неделю, 4–6 недель (общий объём ~34 часа)