Приветствую. Встал вопрос. Есть ли вообще смысл валидировать обьекты, например

DTO, используя подход:
заполнить данными -> validate(object) ?
По сути, что это значит - мы создаем обьект, который, потенциально, может быть создан в невалидном состоянии и если он не будет провалидирован, то дальнейшее поведение основанное на это обьекте может строиться с использованием невалидного состояния обьекта, чего мы желаем ибежать

17 ответов

5 просмотров

Есть такой подход. Но тут скорее первичная валидация, дальше должна быть валидация внутри бизнес объектов

Chiki-Briki ️️ Автор вопроса
Павел Г.
Есть такой подход. Но тут скорее первичная валидац...

Ну это не дает ответа на вопрос. Так ли это, что с таким подходом мы создаем невалидный обьект? И что мы должны избегать это

Банально создают валидирующий мидлвар (вроде даже в самой симфе сразу есть), который валидирует команду мессенджера. Т.е. не сам хадлер валидирует а бас

Chiki Briki ️️
Ну это не дает ответа на вопрос. Так ли это, что с...

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

Chiki-Briki ️️ Автор вопроса
Павел Г.
Банально создают валидирующий мидлвар (вроде даже ...

кстати на счет места валидации, как по мне - оно должно быть одно например у нас есть служба с методом do метод do принимает doDTO и для корректной работы метода она должна быть валидной т.к. метод do могут вызвать из любого места приложения - валидация входящих в метод параметров должна ложиться на плечи самого метода соответственно валидация на верхних слоях приложения становится ненужной / нежелательной нежелательной потому что разносить валидацию по сути одного и того же по слоям - плохо шо скажемс?

Chiki Briki ️️
кстати на счет места валидации, как по мне - оно д...

у тебя в любом месте приложения могут ВНЕЗАПНО возникнуть невалидные дто? или же только в тех местах, где юзеры тебе засылают свои запросики?

Chiki Briki ️️
кстати на счет места валидации, как по мне - оно д...

Звучит логично, тоже задавался этим вопросом. Тут правда момент, что это первичная валидация, скорее чтобы фронту отдать данные и мессаджи. Внутри все логика "валидирует" в своих процессах

Chiki-Briki ️️ Автор вопроса
Шурик
у тебя в любом месте приложения могут ВНЕЗАПНО воз...

ничто не мешает какому-то Васяну добавить модуль, который будет собирать даные с АПИ, создавтаь из них ДТО и без валидации отправлять мне в метод

Chiki Briki ️️
ничто не мешает какому-то Васяну добавить модуль, ...

то есть невалидные данные появляются только там, где твоя система взаимодействует с внешним миром, да?

Chiki-Briki ️️ Автор вопроса
Шурик
то есть невалидные данные появляются только там, г...

это один из кейсов, ничто не мешает какому-то Васяну в крон команде создать невалидный ДТО и отправить мне в метод

Chiki Briki ️️
ничто не мешает какому-то Васяну добавить модуль, ...

Ваш метод должен внутри себя такое предотвращать. Это БЛ, а если не БЛ - то это просто данные, которые впринципе и должны быть любые.

Chiki Briki ️️
ничто не мешает какому-то Васяну добавить модуль, ...

по такой логике - никто не мешает тому же васяну просто убрать всю валидацию на проекте

Chiki Briki ️️
это один из кейсов, ничто не мешает какому-то Вася...

Давайте лучше пример невалидного ДТО и метода

Chiki-Briki ️️ Автор вопроса
Шурик
по такой логике - никто не мешает тому же васяну п...

перед тем, как что-то менять или удалять - 10 раз подумает (если уж совсем не Василий), а забыть добавить / пропустить требования - запросто

Chiki Briki ️️
это один из кейсов, ничто не мешает какому-то Вася...

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

Chiki Briki ️️
перед тем, как что-то менять или удалять - 10 раз ...

Тут просто такой момент, ваша логика должна быть жесткая и без этой валидации. Просто с ней ваш метод не упадет по 500, а отдаст красивый результат.

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
кто-нибудь уже пробовал это?
Lencore
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
❓ Подскажите как сделать в группе телеги функцию (кнопку) пересылки сообщения где есть нарушение правил? Бот к каждому сообщению (по определенным ключам) добавляет снизу кнопк...
Alexander
4
Карта сайта