Программирование [Антон Телышев, Дмитрий Назарков] Продвинутая работа с ошибками в Go (Golang) (2022)

Бывалый
Команда форума
20 Фев 2019
28,266
1,190,856
Автор: Антон Телышев, Дмитрий Назарков
Название: Продвинутая работа с ошибками в Go (Golang) (2022)

1663928328639.png


Описание:

Мы считаем, что грамотная обработка ошибок – это залог отказоустойчивости вашего приложения и здесь не всё так очевидно, как кажется на первый взгляд:
  • Сколько способов обернуть ошибку вы знаете? Один? Два? А их больше пяти! Какие подводные камни скрывает каждый из них?
  • Как обработать ошибку, не импортируя её пакет?
  • Может быть, вы знаете как стандартная библиотека пишет стектрейс ошибки?
  • А что такое константные ошибки?
  • А стектрейс – это вообще дорогая штука?
  • Чем опасен метод 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-репозиторию с примерами и заготовками для задач

Подробнее:


Для просмотра содержимого вам необходимо авторизоваться

Скачать:


Для просмотра содержимого вам необходимо авторизоваться
 
Последнее редактирование: