Мы используем cookie для стабильной работы сервиса. Подробнее

GOLANG NINJA. Искусство работы с ошибками

4.7
ФорматОнлайн
ДлительностьКурс не имеет дедлайнов, можно проходить в удобном для вас темпе
Объём9 занятий
УровеньПродвинутый
По окончанииСертификат выдаётся при завершении курса на 90%. Сертификат "с отличием" выдаётся только за 100% прохождение курса.
О курсе

Подробнее

Данный курс является первой частью специализации "Искусство работы с ошибками и безмолвной паники в Go".   Что такого особенного можно рассказать про ошибки? Мы считаем, что грамотная обработка ошибок  – это залог отказоустойчивости вашего приложения и здесь не всё так очевидно, как кажется на первый взгляд:  Сколько способов обернуть ошибку вы знаете? Один? Два? А их больше пяти! Какие подводные камни скрывает каждый из них? Как обработать ошибку, не импортируя её пакет? Может быть, вы знаете как стандартная библиотека пишет стектрейс ошибки? А что такое константные ошибки? А стектрейс – это вообще дорогая штука? Чем опасен метод Error и какой тип ресивера ему выбрать? Какие ошибки можно игнорировать, а какие нет? Как обрабатывать ошибки, происходящие конкурентно? Что делать, если пакет не предоставляет нужной ошибки? Где и как логировать ошибки? Насколько сторонние модули по работе с ошибками совместимы со стандартной библиотекой? Как Go дошёл до текущих механизмов ошибок и что нас ждёт впереди? и т.д. Основная цель курса – сделать ваш код по работе с ошибками production ready. Если вы думаете, что работа с ошибками в Go заканчивается знанием о errors.Is и errors.As, то вам точно к нам.   Для чего мы в своих курсах даём исторический контекст и обсуждаем устаревшие подходы? Любая инженерная система – это ответ на предыдущие ограничения. Если сразу перескочить к современной картине мира, то всё будет выглядеть как набор правил, которые "просто так придумали". Но в реальности это результат эволюции – проб и ошибок, экспериментов сообщества, тупиковых ветвей и болезненных компромиссов. Мы разбираем базу, чтобы вы лучше понимали причинно-следственную связь и знали, почему здесь сделали так, а не иначе. Плюс подобные упражнения помогают сблизить вас с вселенной Golang, важными фамилиями в ней и источниками информации, что в том числе обеспечивает ваш рост как инженера 🥷   Курс – сплошная теория? Нет, нет и нет! Разумеется, нам придётся коснуться теоретических аспектов работы с ошибками в Go, но будьте готовы читать много исходного кода как стандартной библиотеки, так и сторонних модулей. Доступ к каждому последующему модулю открывается только после решения задач и тестов в текущем. Примеры из курса и заготовки для задач лежат в отдельном GitHub-репозитории. Для каждой задачи представлены юнит-тесты, которые она должна проходить – вам не придётся мучиться с вводом-выводом, как это бывает в задачах на других курсах.   Чему я научусь? Если вы новичок в Go, то точно укрепите свои знания и вдоволь насладитесь примерами боевого кода, которых вам скорее всего не хватает в данный момент. Но предупреждаем, что вероятно вы не сможете осилить все задачи курса.  Если вы сеньор-помидор и практикующий Go-разработчик, то лишний раз познакомитесь с лучшими практиками и узнаете, за что стоит бить по рукам своих коллег, а может даже и себя. В любом случае, если у вас есть опыт программирования в целом, навыки гугления стандартных пакетов и желание дойти до конца – то курс должен хорошо зайти.   Курс только про ошибки? Нет! Часто уроки содержат авторские комментарии по смежным темам (таким как тестирование, concurrency, статический анализ кода и т.д.), а каждый модуль снабжён всеобъемлющим списком литературы. Модули "Работа с ошибками в тестах" и "Работа с ошибками при конкурентном коде" заставят вас особенно попотеть. Смежное по отношению к ошибкам понятие паники разбирается во второй части специализации.   Примеры задач        Сколько времени займёт курс? Среднее время прохождения курса – шесть недель ежедневной работы.   Где поспрашивать о курсе? Добро пожаловать в https://t.me/golangninja Больше курсов на https://golang-ninja.ru
Требования

Что нужно для старта

  • Вам понадобятся:
  • Знание Go на уровне решения небольших, но порою сложных задачек.
  • Знание Си на уровне решения небольших задачек на основе готового кода.
  • Установленный gcc (или Docker).
  • Установленный компилятор Go >= 1.18.
  • Минимальное владение git.
  • Крайне желательна Unix-подобная ОС (не Windows).
Аудитория

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

  • Разработчики, ежедневно практикующие Golang, среднего уровня экспертизы и выше.
Содержание

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

9 занятий
ТемаЧто внутри
01Вступительное слово

- Вступительное слово

02Концепция ошибок в Си

- Вступление
- Знакомство с errno
- Знакомство с errno_t
- Организация "своих" ошибок
- Литература

03Концепция ошибок в Go

- Вступление
- Введение в интерфейсы в Go
- Концепция ошибок в Go
- Базовые подходы к обработке ошибок в Go
- Стандартный пакет errors
- Врапинг ошибок до Go 1.13
- Врапинг ошибок после Go 1.13 (часть 1)
- Врапинг ошибок после Go 1.13 (часть 2)
- Изменения после Go 1.20
- Литература

04Нестандартные модули для работы с ошибками в Go

- Вступление
- github.com/pkg/errors (часть 1)
- github.com/pkg/errors (часть 2)
- github.com/pkg/errors (часть 3)
- github.com/cockroachdb/errors (часть 1)
- github.com/cockroachdb/errors (часть 2)
- Прочие нестандартные модули
- Литература

05Лучшие практики по работе с ошибками в Go

- Вступление
- Объявление ошибок
- Ошибки и тип ресивера
- Константные ошибки
- Базовые идиомы по обработке ошибок (часть 1)
- Про метод Error
- Базовые идиомы по обработке ошибок (часть 2)
- Исключения из правил
- Лучшие практики врапинга
- Оборачивание io.EOF и иже с ним
- Логирование ошибок
- Monadic-style работа с ошибками
- Линтеры и ошибки (часть 1)
- Линтеры и ошибки (часть 2)
- Литература

06Работа с ошибками в тестах

- Вступление
- Работа с ошибками в тестах (часть 1)
- Работа с ошибками в тестах (часть 2)
- Работа с ошибками в тестах (часть 3)
- Литература

07Работа с ошибками при конкурентном коде

- Вступление
- Передача ошибок между горутинами
- Ошибки при выполнении групповых задач
- Литература

08Будущее ошибок в Go 2

- Вступление
- Error Inspection & Printing
- Error Handling
- Литература

09Заключительное слово

- Заключительное слово

01Вступительное слово

- Вступительное слово

02Концепция ошибок в Си

- Вступление
- Знакомство с errno
- Знакомство с errno_t
- Организация "своих" ошибок
- Литература

03Концепция ошибок в Go

- Вступление
- Введение в интерфейсы в Go
- Концепция ошибок в Go
- Базовые подходы к обработке ошибок в Go
- Стандартный пакет errors
- Врапинг ошибок до Go 1.13
- Врапинг ошибок после Go 1.13 (часть 1)
- Врапинг ошибок после Go 1.13 (часть 2)
- Изменения после Go 1.20
- Литература

04Нестандартные модули для работы с ошибками в Go

- Вступление
- github.com/pkg/errors (часть 1)
- github.com/pkg/errors (часть 2)
- github.com/pkg/errors (часть 3)
- github.com/cockroachdb/errors (часть 1)
- github.com/cockroachdb/errors (часть 2)
- Прочие нестандартные модули
- Литература

05Лучшие практики по работе с ошибками в Go

- Вступление
- Объявление ошибок
- Ошибки и тип ресивера
- Константные ошибки
- Базовые идиомы по обработке ошибок (часть 1)
- Про метод Error
- Базовые идиомы по обработке ошибок (часть 2)
- Исключения из правил
- Лучшие практики врапинга
- Оборачивание io.EOF и иже с ним
- Логирование ошибок
- Monadic-style работа с ошибками
- Линтеры и ошибки (часть 1)
- Линтеры и ошибки (часть 2)
- Литература

06Работа с ошибками в тестах

- Вступление
- Работа с ошибками в тестах (часть 1)
- Работа с ошибками в тестах (часть 2)
- Работа с ошибками в тестах (часть 3)
- Литература

07Работа с ошибками при конкурентном коде

- Вступление
- Передача ошибок между горутинами
- Ошибки при выполнении групповых задач
- Литература

08Будущее ошибок в Go 2

- Вступление
- Error Inspection & Printing
- Error Handling
- Литература

09Заключительное слово

- Заключительное слово

Документ после выпуска

Сертификат выдаётся при завершении курса на 90%. Сертификат "с отличием" выдаётся только за 100% прохождение курса.

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «GOLANG NINJA. Искусство работы с ошибками» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Направления:Go - разработка

Информация обновлена 28 июля 2026 г.

Продолжить выбор

Похожие курсы

Начать без затрат

Бесплатные курсы