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

Как научить сервис сообщать об ошибке, чтобы это было понятно пользователям, машинам и программистам

Golang Conf: Best practices

Go: Best practices

API
Разработка библиотек, включая open source библиотеки
Микросервисы

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

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

Мы каждый день сталкиваемся с обработкой ошибок. А сделать сообщения об ошибках понятными одновременно и для пользователя, и для другой программы — целое искусство. Александр представит свой взгляд на решение этих проблем и поделится опытом.

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

Разработчики любого продукта, в котором информацию из сервисов (ошибки) необходимо доносить до пользователя, а не прятать. Если есть требования: * сделать возвращаемые ошибки более детальными и понятными, * интернационализация ошибок: переводим на русский, китайский и др., * поддержать запросы к сервисам через несколько API с разными форматами ответа, то доклад поможет понять, как их выполнить.

Тезисы

Никаких happy path! Рассказ о том, как нам перестало хватать баннера «Что-то пошло не так» и как мы учились сообщать пользователю об ошибках во время выполнения запроса в системе хранения данных. Мы рассмотрим средства для работы с ошибками в Go, чем они хороши и что делать, если на пути встает сериализация.

Внедрили свой формат ошибок для общения между сервисами, оформили ее в библиотеку и решили следующие проблемы:
* как определять ошибку, если HTTP-кодов уже не хватает;
* как добавить в ошибку параметры, чтобы показать детали проблемы, и как ее локализовать;
* как интерпретировать ошибки одного API для другого и не сойти с ума;
* как по ходу дела приручить панику, заложить стандарт для ошибок и отрефакторить кучу кода.

Пишет на Gо для системы хранения данных. Любит оставлять код лучше, чем он был. Не любит, когда после этого приходит три бага.

YADRO

YADRO известна как разработчик и производитель всего, что можно увидеть в серверной и ЦОД: систем хранения данных, серверов, коммутаторов. С недавних пор компания также создает телеком-оборудование операторского класса. Go-разработчики заняты как в развитии СХД, так и в телеком-направлении.

Видео