Операция выполнена!
Закрыть
Хабы: Go


Каждый Go-разработчик знаком с этим паттерном — создание обёрток для ошибок с дублированием метаданных:


func (*SomeObject).SomeMethod(val any) error {
  if err := otherMethod(val); err != nil {
    return fmt.Errorf("otherMethod %w with val %v", err, val)
  }
  return nil
}

Проблемы такого подхода:


  • Дублирование названий методов в сообщениях об ошибках
  • Ручное добавление метаданных (аргументы, переменные) в каждое место
  • Сложность отслеживания места возникновения ошибки при нескольких точках выхода
  • Засорение кода — повторяющийся boilerplate
  • Отсутствие структуры — все метаданные упакованы в одной строке

Что если объединить мощь структурированного логирования (slog) с автоматическим сбором локального стека вызовов. Результат — чистый код и информативные логи.

Читать дальше →
Читайте также
СТАТЬ АВТОРОМ
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro