Двойная валидация
От: merge  
Дата: 27.09.21 12:16
Оценка:
Есть б2б приложение (сайт)
на странице есть сложная таблица, которую юзер может на фронте менять.
для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.
В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

ваши мысли?
Re: Двойная валидация
От: Gurney Великобритания www.kharlamov.biz
Дата: 27.09.21 12:23
Оценка: +4
Здравствуйте, merge, Вы писали:

M>для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.

M>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

M>ваши мысли?

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

Поэтому иметь ее в двух места — дорога к рассинхоронизации и проблемам.
Re: Двойная валидация
От: yenik  
Дата: 27.09.21 12:46
Оценка: +5
Там и там нужно валидировать. Если конечно важна надёжность.
Re: Двойная валидация
От: Qulac Россия  
Дата: 27.09.21 14:06
Оценка: +3
Здравствуйте, merge, Вы писали:

M>Есть б2б приложение (сайт)

M>на странице есть сложная таблица, которую юзер может на фронте менять.
M>для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.
M>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

M>ваши мысли?


Если следовать принципу контрактного программирования, то БЛ должна бросать исключение при получении не правильных данных. Так что на бэке у вас в любом случае должна быть какая-то проверка входных данных и возврат ошибок если что не так. Валидацию на фронт переносят, если нужно что бы работало быстрее и не загружало сервер запросами, если это не нужно, то можно все сделать на бэке. Так что в вашем случае проверки должны быть в двух местах: на фронте и бэке.
Программа – это мысли спрессованные в код
Re: Двойная валидация
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 27.09.21 14:56
Оценка: +5
Здравствуйте, merge, Вы писали:

M>Есть б2б приложение (сайт)

M>на странице есть сложная таблица, которую юзер может на фронте менять.
M>для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.
M>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

M>ваши мысли?

длеать и там, и там.
на фронте для удобства пользователя, на бэке для сохранения инвариантов системы.
В идеале должен быть набор правил, который и на беке проверяет данные и на фронт транслируется (без участия человека) для таких проверок.
Re: Двойная валидация
От: vsb Казахстан  
Дата: 27.09.21 17:18
Оценка:
Проще всего сделать отдельный вызов, который валидирует форму и постоянно вызывать его (когда пользователь что-то меняет). Если сервер не совсем тугой, то будет за долю секунды отрабатывать, в принципе на юзабилити не скажется. Ну и на сабмит, конечно, проверять всё обязательно.
Re[2]: Двойная валидация
От: merge  
Дата: 28.09.21 05:10
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, merge, Вы писали:


M>>Есть б2б приложение (сайт)

M>>на странице есть сложная таблица, которую юзер может на фронте менять.
M>>для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.
M>>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

M>>ваши мысли?

G>длеать и там, и там.
G>на фронте для удобства пользователя, на бэке для сохранения инвариантов системы.
G>В идеале должен быть набор правил, который и на беке проверяет данные и на фронт транслируется (без участия человека) для таких проверок.

да, было бы хорошо иметь такие правила чтобы без участия человека.
только слабо себе представляю как это должно выглядеть.
Если что бэк дотнет коре, а фронт на реакте
Re: Двойная валидация
От: BVA Интернет  
Дата: 29.09.21 11:32
Оценка:
Здравствуйте, merge, Вы писали:

M>ваши мысли?

Двойная валидация это стандарт.
Валидация на фронте ускоряет обратную связь для пользователя, но если это не критично, то ее можно и опустить.
Валидация на бэке делается обязательно и защищает от ввода не валидных данных в случае если на фронте что-то развалилось или кто-то послал некорректный запрос.
--
http://www.slideshare.net/vyacheslavbenedichuk
https://www.linkedin.com/in/vbenedichuk
Re: Двойная валидация
От: gyraboo  
Дата: 29.09.21 11:36
Оценка:
Здравствуйте, merge, Вы писали:

M>Есть б2б приложение (сайт)

M>на странице есть сложная таблица, которую юзер может на фронте менять.
M>для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.
M>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

M>ваши мысли?


Если говорить про Джаву, то есть библиотеки, которые позволяют генерить на UI правила валидации на основе правил, заданных в аннотациях Java Bean Validation на бэке. Это позволяет единожды декларативно описать правила валидации, которые будут использоваться и на бэке и на фронте. Еще проще, если используется генерилка типа JHipster, но это только для простых проектов, там тоже декларативно описываешь правила валидации в одном месте — в описании модели.
Re: Двойная валидация
От: vaa  
Дата: 29.09.21 12:55
Оценка:
Здравствуйте, merge, Вы писали:

M>ваши мысли?

Если соединение позволяет можно сделать валидацию на сервере и делать ajax вызовы с клиента.
Вообще клиенту удобнее с валидацией?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Двойная валидация
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.09.21 16:16
Оценка:
Здравствуйте, merge, Вы писали:

M>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, merge, Вы писали:


M>>>Есть б2б приложение (сайт)

M>>>на странице есть сложная таблица, которую юзер может на фронте менять.
M>>>для удобства валидацию делать решили на фронте, но вот думаю а надо ли делать на бэке.
M>>>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать

M>>>ваши мысли?

G>>длеать и там, и там.
G>>на фронте для удобства пользователя, на бэке для сохранения инвариантов системы.
G>>В идеале должен быть набор правил, который и на беке проверяет данные и на фронт транслируется (без участия человека) для таких проверок.

M>да, было бы хорошо иметь такие правила чтобы без участия человека.

M>только слабо себе представляю как это должно выглядеть.
M>Если что бэк дотнет коре, а фронт на реакте
Такое работает на asp.net mvc\pages. В разметке генерируются атрибуты валидации из атрибутов на классах модели. Думаю можно найти готовый пакет, который генерирует "модель валидации" для клиента.
Re: Двойная валидация
От: scf  
Дата: 12.11.21 07:24
Оценка:
Здравствуйте, merge, Вы писали:

M>В голове сидит парадигма, что бэк должен в себе бизнес логику содержать


Всё верно, валидация входных данных — это часть бизнес-логики и должна быть на бэке. Фронтовая валидация относится к UX, пользователь получает вменяемое сообщение и сразу, а не 400 и после отправки формы на сервер.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.