Уверены ли вы, что ваш код по работе с ошибками не стыдно показать людям? Практически год ежедневной работы потребовался для создания курса на такую, казалось бы, очевидную тему.
Что такого особенного можно рассказать про ошибки?
Мы считаем, что грамотная обработка ошибок – это залог отказоустойчивости вашего приложения и здесь не всё так очевидно, как кажется на первый взгляд:
- Сколько способов обернуть ошибку вы знаете? Один? Два? А их больше пяти! Какие подводные камни скрывает каждый из них?
- Как обработать ошибку, не импортируя её пакет?
- Может быть, вы знаете как стандартная библиотека пишет стектрейс ошибки?
- А что такое константные ошибки?
- А стектрейс – это вообще дорогая штука?
- Чем опасен метод Error и какой тип ресивера ему выбрать?
- Какие ошибки можно игнорировать, а какие нет?
- Как обрабатывать ошибки, происходящие конкурентно?
- Что делать, если пакет не предоставляет нужной ошибки?
- Где и как логировать ошибки?
- Насколько сторонние модули по работе с ошибками совместимы со стандартной библиотекой?
- Как Go дошёл до текущих механизмов ошибок и что нас ждёт впереди?
- и т.д.
Основная цель курса – сделать ваш код по работе с ошибками production ready.
Если вы думаете, что работа с ошибками в Go заканчивается знанием о и , то вам точно к нам.
Курс – сплошная теория?
Нет, нет и нет!
Разумеется, нам придётся коснуться теоретических аспектов работы с ошибками в Go, но будьте готовы читать много исходного кода как стандартной библиотеки, так и сторонних модулей.
Доступ к каждому последующему модулю открывается только после решения задач и тестов в текущем. Примеры из курса и заготовки для задач лежат в отдельном GitHub-репозитории. Для каждой задачи представлены юнит-тесты, которые она должна проходить – вам не придётся мучиться с вводом-выводом, как это бывает в задачах на других курсах.
Чему я научусь?
Если вы новичок в Go, то точно укрепите свои знания и вдоволь насладитесь примерами боевого кода, которых вам скорее всего не хватает в данный момент. Но предупреждаем, что вероятно вы не сможете осилить все задачи курса.
Если вы сеньор-помидор и практикующий Go-разработчик, то лишний раз познакомитесь с лучшими практиками и узнаете, за что стоит бить по рукам своих коллег, а может даже и себя.
В любом случае, если у вас есть опыт программирования в целом, навыки гугления стандартных пакетов и желание дойти до конца – то курс должен хорошо зайти.
Курс только про ошибки?
Нет!
Часто уроки содержат авторские комментарии по смежным темам (таким как тестирование, concurrency, статический анализ кода и т.д.), а каждый модуль снабжён всеобъемлющим списком литературы. Модули "Работа с ошибками в тестах" и "Работа с ошибками при конкурентном коде" заставят вас особенно попотеть.