Показать сообщение отдельно
Старый 19.11.2019, 17:44   #19  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от wojzeh Посмотреть сообщение
могу. бест практис как раз о том, что мы не должны париться, валидная она или нет: просто проверяйте.
Может я плохо искал, но в документации по Best Practices я такой рекомендации не нашел

Цитата:
Сообщение от wojzeh Посмотреть сообщение
простой пример:
программно пишем дату, которую получили через параметры. она из прошлого, а мы по логике допускаем только даты из будущего. ну и так далее.
Это принципиально другой пример. Параметр - это данные, пришедшие из-вне. Не созданные программистом. Такое, разумеется, надо проверять. Причем не факт, что в validateWrite. Возможно, непосредственно в коде создания записи

Но в примере, который послужил основанием для дискуссии, "внешних" данных нет вообще. Нечего проверять-то...

Цитата:
Сообщение от wojzeh Посмотреть сообщение
в моём конкретном случае, мне нужно написать extension для проверки дупликатов. было бы написано, как доктор прописал, щас бы уже всё работало, так - делаем выкрутасы.
Ну, если не рассматривать вопрос о том, что программный контроль уникальности - заведомо не надежен, то выбранный способ решения сам по себе не однозначен. Зависит от постановки задачи. Тут есть разные варианты и использование validateWrite - одно из многих. Не для обсуждения, а просто чтобы показать другие варианты

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

Это так, первое, что в голову пришло. Но могут быть и другие варианты. Причем я не удивлюсь, если позже Вам придется добавлять в ValidateWrite() параметры для того, чтобы исключить ту или иную проверку...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...