if err != nil: почему мы (не)любим обработку ошибок в Go и обзор пропозалов ее изменению

Вопросы языкознания

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

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

Все разработчики на Go и других языках, которые любят холиварить на тему ошибок в Go

Тезисы

if err != nil {
return err
}

Каждый писал такую конструкцию 100500 раз в каждом проекте. Но это же удобно! Или нет?

Теме обработки ошибок в Go столько же лет, сколько самому языку, но мы попробуем рассмотрать плюсы и минусы ее реализации в Go в сравнении с другими языками, сделаем обзор пропозалов по ее улучшениям (все они были отклонены) и рассмотрим свежий и обсудим новый, очень активно обсуждаемый пропозал от Ian Lance Taylor, который, пожалуй, имеет шансы на имплементацию в языке.

Ведущий инженер в платформе Авито. Делает инструменты для других разработчиков, включая общую шину данных, протокол межсервисного обмена и многое другое.

В IT более 15 лет, успел побывать и разработчиком, и тимлидом, и системным архитектором.

Видео