Профессиональная конференция для Go-разработчиков

Регламент для работы с ошибками в Go

Лучшие практики, Go-way

GO

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Обработка ошибок есть в любом приложении, но эта задача только кажется простой. Ошибка может быть строкой, структурой, интерфейсом, содержать стек, другую ошибку… Илья предложит регламент, позволяющий легко определить нужный подход в зависимости от типа приложения и требований к обработке ошибок.

Целевая аудитория

Программисты, тимлиды и те, кому интересно, как упростить себе дебаг, собрав подходящие ошибки для проекта.

Тезисы

Ошибки в приложениях неизбежны, но мы можем их смягчить и упростить отладку. В Go ошибка — это значения, это великая сила, но мы должны знать, как ее использовать.

Я хочу кратко перечислить типы ошибок (sentinel, выделенный тип для ошибок и opaque). Затем я покажу, какие и когда их следует использовать.

После этого я хочу поговорить о wrapping (оборачивание), который позволяет получить stack trace и место, где произошла ошибка. Так же wrapping дает возможность получить данные для повторения ошибки, разделить общедоступные и частные сообщения об ошибках для логирования и ответа клиента, а также поговорю о других возможностях wrapping.

Наконец, ошибки + wrapping, чтобы построить централизованную обработку ошибок на примере клиент-серверного приложения и воркеров, и сравню это с обработкой ошибок по месту их возникновения.

Backend-сочинитель продуктовых решений для передачи вашего смартфона в хорошие руки.

Авито

На Авито каждый может найти что-то свое среди миллионов частных объявлений и предложений компаний. У них десятки тысяч RPS к бэкенду, терабайты картинок в хранилище и мощная система автоматизированной модерации на базе машинного обучения. Каждый месяц сервисом пользуется треть населения России.

Видео