170 похожих чатов

Хорошо ли писать структуру структуры и так раз пять в

глубину?

20 ответов

21 просмотр

Я считаю, что нет, ибо валидировать неудобно. А потом неясно, в каком виде ошибки выдавать с учетом вложенности

Dmitriy Sviridov
Я считаю, что нет, ибо валидировать неудобно. А по...

А в чём проблема валидации? Валидация на этапе создания же

Dmitriy Sviridov
Я считаю, что нет, ибо валидировать неудобно. А по...

func (u User) Validate() error { if err := ValidateEmail(u.Email); err != nil { return fmt.Errorf("invalid email: %w", err) } if err := u.Address.Validate(); err != nil { return fmt.Errorf("invalid address: %w", err) } return nil }

Dmitriy Sviridov
Я считаю, что нет, ибо валидировать неудобно. А по...

Т.е. если надо что-то валидировать уже после того как там лежит мусор - это и проблема.

Roman Sharkov
func (u User) Validate() error { if err := Valid...

Очень "удобно". Особенно когда в JSON десятки полей (такое бывает)

Dmitriy Sviridov
Очень "удобно". Особенно когда в JSON десятки поле...

А тебе в любом случае это надо разбирать и валидировать.

Roman Timofeev
А тебе в любом случае это надо разбирать и валидир...

Если структура плоская, то без проблем можно её отвалидировать и выдать на фронт ответ в виде {errors:{name:required,email:not valid}} (ну, примерно). А как с вложенными данными быть - хз. Потому что по логике ошибки тоже надо вложенными делать

𝖁𝖎𝖙𝖆𝖑𝖎𝖞-𝕾 Автор вопроса
Roman Sharkov
а в чём проблема?)

Наверное вложенности, и как формировать текст ошибки с бэка. Возможно, что нетривиально собирать путь по ключам структуры из пятого уровня вложенности. В той же a-la “dot-notation”

Roman Sharkov
а в чём проблема?)

В том, что каждое поле руками так описывать - полный геморрой

𝖁𝖎𝖙𝖆𝖑𝖎𝖞-𝕾 Автор вопроса
Roman Sharkov
это ответственность обработчика endpoint'а

Но писать-то ручками всё. =) И обработчики, и логику сборки “пути”, где валидация отвалилась. То есть, скорее плоское лучше вложенного и в go.

𝖁𝖎𝖙𝖆𝖑𝖎𝖞 𝕾
Но писать-то ручками всё. =) И обработчики, и логи...

зачем пути? в обработчикe у нас плоская структура

Roman Sharkov
я так не считаю, их же не тысячи?

Их не тысячи, но штук 30 вполне может быть. Какой смысл описывать каждое поле руками, когда тот же GoValidator умеет валидировать плоские структуры по структурным тегам вообще без проблем

Dmitriy Sviridov
И что?)

ничего, прост

ddpvfpd
он на рефлекте

Там рефлексия только на этапе извлечения меты, насколько я помню

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта