Описание
Описание:
Мы считаем, что грамотная обработка ошибок – это залог отказоустойчивости вашего приложения и здесь не всё так очевидно, как кажется на первый взгляд:
- Сколько способов обернуть ошибку вы знаете? Один? Два? А их больше пяти! Какие подводные камни скрывает каждый из них?
- Как обработать ошибку, не импортируя её пакет?
- Может быть, вы знаете как стандартная библиотека пишет стектрейс ошибки?
- А что такое константные ошибки?
- А стектрейс – это вообще дорогая штука?
- Чем опасен метод Error и какой тип ресивера ему выбрать?
- Какие ошибки можно игнорировать, а какие нет?
- Как обрабатывать ошибки, происходящие конкурентно?
- Что делать, если пакет не предоставляет нужной ошибки?
- Где и как логировать ошибки?
- Насколько сторонние модули по работе с ошибками совместимы со стандартной библиотекой?
- Как Go дошёл до текущих механизмов ошибок и что нас ждёт впереди?
- и т.д.
Основная цель курса – сделать ваш код по работе с ошибками production ready.
Если вы думаете, что работа с ошибками в Go заканчивается знанием о errors.Is и errors.As, то вам точно к нам.
Содержание:
Первый модуль. Вступительное слово
Узнаем, какие компиляторы понадобятся, в чём разрабатывать и где общаться.
- Вступительное слово
Второй модуль. Концепция ошибок в Си
Всё новое – это хорошо забытое старое.
- Вступление
- Знакомство с errno
- Знакомство с errno_t
- Организация “своих” ошибок
- Литература
Третий модуль. Концепция ошибок в Go
Пришло время познать дзен ошибок в Go.
- Вступление
- Введение в интерфейсы в Go
- Концепция ошибок в Go
- Базовые подходы к обработке ошибок в Go
- Стандартный пакет errors
- Врапинг ошибок до Go 1.13
- Врапинг ошибок после Go 1.13 (часть 1)
- Врапинг ошибок после Go 1.13 (часть 2)
- Литература
Четвёртый модуль. Нестандартные модули для работы с ошибками в Go
Разберём инструменты по работе с ошибками от сообщества 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)
- Прочие нестандартные модули
- Литература
Пятый модуль. Лучшие практики по работе с ошибками в Go
Как правильно “ошибаться” в Go?
- Вступление
- Объявление ошибок
- Ошибки и тип ресивера
- Константные ошибки
- Базовые идиомы по обработке ошибок (часть 1)
- Про метод Error()
- Базовые идиомы по обработке ошибок (часть 2)
- Исключения из правил
- Лучшие практики врапинга
- Оборачивание io.EOF и иже с ним
- Логирование ошибок
- Monadic-style работа с ошибками
- Линтеры и ошибки (часть 1)
- Линтеры и ошибки (часть 2)
- Литература
Шестой модуль. Работа с ошибками в тестах
Тесты – это тоже код. И требования к ним не должны отличаться от требований к коду.
- Вступление
- Работа с ошибками в тестах (часть 1)
- Работа с ошибками в тестах (часть 2)
- Работа с ошибками в тестах (часть 3)
- Литература
Седьмой модуль. Работа с ошибками при конкурентном коде
Немного поговорим об ошибках в контексте concurrency.
- Вступление
- Передача ошибок между горутинами
- Ошибки при выполнении групповых задач
- Литература
Восьмой модуль. Будущее ошибок в Go 2
Прекрасное далёко, не будь ко мне жестоко.
- Вступление
- Error Inspection & Printing
- Error Handling
- Литература
Вы получаете
- Доступ к продвинутой теории по теме курса и спискам литературы
- Доступ к GitHub-репозиторию с примерами и заготовками для задач
Отзывы
Отзывов пока нет.