Что такого особенного можно рассказать про ошибки?
Мы считаем, что грамотная обработка ошибок – это залог отказоустойчивости вашего приложения и здесь не всё так очевидно, как кажется на первый взгляд:
- Сколько способов обернуть ошибку вы знаете? Один? Два? А их больше пяти! Какие подводные камни скрывает каждый из них?
- Как обработать ошибку, не импортируя её пакет?
- Может быть, вы знаете как стандартная библиотека пишет стектрейс ошибки?
- А что такое константные ошибки?
- А стектрейс – это вообще дорогая штука?
- Чем опасен метод Error и какой тип ресивера ему выбрать?
- Какие ошибки можно игнорировать, а какие нет?
- Как обрабатывать ошибки, происходящие конкурентно?
- Что делать, если пакет не предоставляет нужной ошибки?
- Где и как логировать ошибки?
- Насколько сторонние модули по работе с ошибками совместимы со стандартной библиотекой?
- Как Go дошёл до текущих механизмов ошибок и что нас ждёт впереди?
- и т.д.
Основная цель курса – сделать ваш код по работе с ошибками production ready.
Если вы думаете, что работа с ошибками в Go заканчивается знанием о errors.Is и errors.As, то вам точно к нам.
Курс – сплошная теория?
Нет, нет и нет!
Разумеется, нам придётся коснуться теоретических аспектов работы с ошибками в Go, но будьте готовы читать много исходного кода как стандартной библиотеки, так и сторонних модулей.
Доступ к каждому последующему модулю открывается только после решения задач и тестов в текущем. Примеры из курса и заготовки для задач лежат в отдельном GitHub-репозитории. Для каждой задачи представлены юнит-тесты, которые она должна проходить – вам не придётся мучиться с вводом-выводом, как это бывает в задачах на других курсах.
Чему я научусь?
Если вы новичок в Go, то точно укрепите свои знания и вдоволь насладитесь примерами боевого кода, которых вам скорее всего не хватает в данный момент. Но предупреждаем, что вероятно вы не сможете осилить все задачи курса.
Если вы сеньор-помидор и практикующий Go-разработчик, то лишний раз познакомитесь с лучшими практиками и узнаете, за что стоит бить по рукам своих коллег, а может даже и себя.
В любом случае, если у вас есть опыт программирования в целом, навыки гугления стандартных пакетов и желание дойти до конца – то курс должен хорошо зайти.
Курс только про ошибки?
Нет!
Часто уроки содержат авторские комментарии по смежным темам (таким как тестирование, concurrency, статический анализ кода и т.д.), а каждый модуль снабжён всеобъемлющим списком литературы. Модули "Работа с ошибками в тестах" и "Работа с ошибками при конкурентном коде" заставят вас особенно попотеть.
Смежное по отношению к ошибкам понятие паники разбирается отдельно, во второй части специализации.
Сколько времени займёт курс?
Среднее время прохождения курса – шесть недель ежедневной работы.
Где поспрашивать о курсе?
Добро пожаловать в https://t.me/golangninja
Начальные требования
Вам понадобятся:
- Знание Go на уровне решения небольших, но порою сложных задачек.
- Знание Си на уровне решения небольших задачек на основе готового кода.
- Установленный gcc (или Docker).
- Установленный компилятор Go >= 1.18.
- Минимальное владение git.
- Крайне желательно Unix-подобная ОС (не Windows).