Size: a a a

2020 May 07

DP

Daniel Podolsky in Go-go!
а у меня еще и линтер есть, если что
источник

А

Ан in Go-go!
Дмитрий Синявский
В каких-то специфичных случаях думаю это канает. Но это должно быть очень жесткая конструкция.
Да в любых случаях. Ошибки для разрабов, юзер их не видит
источник

ДС

Дмитрий Синявский... in Go-go!
Daniel Podolsky
эээээ

анотируем мы ошибки с помощью fmt.Errorf() и его %w

проверяем мы ошибки с помощью errors.As() и errors.Is()

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

DP

Daniel Podolsky in Go-go!
Ан
Да в любых случаях. Ошибки для разрабов, юзер их не видит
примерно 99% проценотов моего кода используют разрабы
источник

DP

Daniel Podolsky in Go-go!
Дмитрий Синявский
Я имел ввиду что внутри некоторые пакеты используют этот подход, а другие жестко проверяют тип ошибки
это пережитки.

года не прошло еще с 1.13, где этот функционал добавили
источник

А

Ан in Go-go!
Daniel Podolsky
примерно 99% проценотов моего кода используют разрабы
Я к тому, что ошибки внутри обрабатываются. К чему он - я хз.
источник

ДС

Дмитрий Синявский... in Go-go!
Ан
Да в любых случаях. Ошибки для разрабов, юзер их не видит
Получается, если бекэнд не смог сохранить данные в бд из-за сбоя бд или из-за кривизны данных - то пользователь это не отличит
источник

А

Ан in Go-go!
Дмитрий Синявский
Получается, если бекэнд не смог сохранить данные в бд из-за сбоя бд или из-за кривизны данных - то пользователь это не отличит
Пишешь логи, а юзеру во фронт эрор
источник

А

Ан in Go-go!
Если у тебя с бд эрор, это твои проблемы как разраба.
источник

IM

Ivan Motovilov in Go-go!
Доброго дня, я правильно понимаю, что единственный способ добраться до конкретного значения в json с глубокой вложенностью - это использовать синтаксис утверждения типа, через payload["foo"].([]map[string]interface{})[0]["bar"].(map[string]interface{})["baz"].(float64)? Мне бы не хотелось парсить весь пэйлоад в структуру, когда нужно одно конкретное поле.
источник

DP

Daniel Podolsky in Go-go!
Ан
Если у тебя с бд эрор, это твои проблемы как разраба.
прикинь, если бы sql либа твой подход использовала? результат nil, ошибку читай в логе
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
эээээ

анотируем мы ошибки с помощью fmt.Errorf() и его %w

проверяем мы ошибки с помощью errors.As() и errors.Is()

и все это в стандартной либе
а для мульти ошибок как?
источник

АП

Александр Попов... in Go-go!
например ошибка валидации запроса
источник

АП

Александр Попов... in Go-go!
поле имя не заполнено, поля фамилия не заполнено...
источник

АП

Александр Попов... in Go-go!
и все отдать юзверу плтом в json
источник

DP

Daniel Podolsky in Go-go!
Ivan Motovilov
Доброго дня, я правильно понимаю, что единственный способ добраться до конкретного значения в json с глубокой вложенностью - это использовать синтаксис утверждения типа, через payload["foo"].([]map[string]interface{})[0]["bar"].(map[string]interface{})["baz"].(float64)? Мне бы не хотелось парсить весь пэйлоад в структуру, когда нужно одно конкретное поле.
есть либы, которые не парсят весь json
источник

DP

Daniel Podolsky in Go-go!
Александр Попов
и все отдать юзверу плтом в json
то, что ты отдаешь пользователю - это не ошибка.

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

А

Ан in Go-go!
Daniel Podolsky
прикинь, если бы sql либа твой подход использовала? результат nil, ошибку читай в логе
Перечисли минусы
источник

А

Ан in Go-go!
Для девелопера
источник

АП

Александр Попов... in Go-go!
Daniel Podolsky
то, что ты отдаешь пользователю - это не ошибка.

ты можешь сформировать ответ на основе полученных ошибок, но для пользователя сформируйт ответ валидный
ну строки возвращать из функции validate ну такое не?
источник