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

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

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

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

Некоторые базовые конструкции языка кажутся настолько привычными, что кажется, будто мы все о них знаем. Но практика показывает, что именно база может быть самым неясным местом. Доклад даст четкое понимание концепции ошибок в Go, включая обзор предложений по модификации обработки ошибок в языке.

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

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

Тезисы

if err != nil { return err }

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

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

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

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

Видео