Size: a a a

2021 January 14

HH

Human Human in pro.jvm
мне нравится пропасть между теми, кто готов удушить за попирание DRY, но 100500+ валидаций это гуд 🙂
источник

HH

Human Human in pro.jvm
Evgeniy ♎️
да хотя бы
зачем делать всю логику, + например, вызов проверки сервиса на валидность имейла..или да чего угодно, попытаться сохранить это всё в бд, отвалиться! (а обработка ошибок - это всегда плохо по перфу),  - и вернуть клиенту откатывая всё(половина инфы записалась, половина нет)

мне кажется если открыть любую умную книжку  - там будет написано что-то типо "валидируйте входы вашей системы"
потому что это даже ещё выполняется ДО вашей логики

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


пример из позавчера!!
- упала ночная таска, как раз на бд не влезло поле, потму что ВНЕЗАПНО стали присылать не 100, а 123 символа
это большая таска на бд завалилась, и она реально занимает много времени, кароче не круто что она завалилась
сделали быстрофикс - просто отрезаем лишние
ОПЯТЬ валиться!  -теперь потому что поле null!...т..е пока с ним ничего не делали  -оно как null спокойно писалось в бд, а когда стали substring делать, то NPE) (а потому что написано что оно обязательное!, а в другой системе выяснилось, что необязательное)

в итоге - очередное место где мы анально огородились от всего, невзирая на то что написано в спеке - обязательное поле
Такие штуки конечно имеет смысл валидировать. Но этого меньшинство
источник

A

Artjom Kalita in pro.jvm
Я посмотрю как легко будет тестировать валидацию в коде по сравнению с валидацией в базе
источник

HH

Human Human in pro.jvm
Artjom Kalita
Я посмотрю как легко будет тестировать валидацию в коде по сравнению с валидацией в базе
А что вы хотите тестировать? Ограничение на 255?
источник

A

Artjom Kalita in pro.jvm
Да что мейл определенного размера\или его нету - если мы это валидируем значит это нужно по каким-то бизнес требованиям
источник

A

Artjom Kalita in pro.jvm
значит это было-бы весьма неплохо покрыть тестами и чтоб регрессия была
источник

HH

Human Human in pro.jvm
Artjom Kalita
Да что мейл определенного размера\или его нету - если мы это валидируем значит это нужно по каким-то бизнес требованиям
это просто crud-ы. Зачем на такие простые штуки писать тесты?
источник

A

Artjom Kalita in pro.jvm
источник

HH

Human Human in pro.jvm
Если тестируешь HTTP API не вижу никакой проблемы с тестами. У тебя ошибка констрейнта базы это часть внутренней реализации
источник

A

Artjom Kalita in pro.jvm
и тут приходит бизнес говорит - а давай еще проверим на валидность имейл --ну такой чтобы собачка была и в конце точка и 2-3 буковки
источник

A

Artjom Kalita in pro.jvm
а потом еще - а нам нужно этот имейл отправить в другие систему ну там проверить не спамераст ли потенциальный пользователь
источник

DC

Denis Chikanov in pro.jvm
Human Human
это просто crud-ы. Зачем на такие простые штуки писать тесты?
Ээээ, што?
источник

HH

Human Human in pro.jvm
Artjom Kalita
а потом еще - а нам нужно этот имейл отправить в другие систему ну там проверить не спамераст ли потенциальный пользователь
Не понимаю как эти примеры относятся к моему вопросу про валидацию длины
источник

HH

Human Human in pro.jvm
Denis Chikanov
Ээээ, што?
Вопрос просто был изначально про валидацию каких-то простых штук, с которыми справляется база. Как пример я привел валидацию по длине. Нам просто нужно обновить что-то и положить в эту ячейку текст
источник

DC

Denis Chikanov in pro.jvm
Human Human
Вопрос просто был изначально про валидацию каких-то простых штук, с которыми справляется база. Как пример я привел валидацию по длине. Нам просто нужно обновить что-то и положить в эту ячейку текст
Если валидация только в базе, надо на бэке очень старательно разбирать ответы базы на запросы, потому что нужно вернуть адеквтаный ответ.
источник

HH

Human Human in pro.jvm
Denis Chikanov
Если валидация только в базе, надо на бэке очень старательно разбирать ответы базы на запросы, потому что нужно вернуть адеквтаный ответ.
Это да.
источник

DC

Denis Chikanov in pro.jvm
Human Human
Это да.
Ну и зачем?
источник

HH

Human Human in pro.jvm
Denis Chikanov
Ну и зачем?
Все равно быстрее, чем если нужно 100500 раз описывать эти констрейнты
источник

b

borsch in pro.jvm
типа обратобать констреинт бистрее чем добавить 2-3 анотации?
источник

HH

Human Human in pro.jvm
borsch
типа обратобать констреинт бистрее чем добавить 2-3 анотации?
ну обработку пишешь один раз. А 2-3 анотации ставишь 100500 раз
источник