Цитата:
Сообщение от
wojzeh
могу. бест практис как раз о том, что мы не должны париться, валидная она или нет: просто проверяйте.
Может я плохо искал, но в документации по Best Practices я такой рекомендации не нашел
Цитата:
Сообщение от
wojzeh
простой пример:
программно пишем дату, которую получили через параметры. она из прошлого, а мы по логике допускаем только даты из будущего. ну и так далее.
Это принципиально другой пример. Параметр - это данные, пришедшие из-вне. Не созданные программистом. Такое, разумеется, надо проверять. Причем не факт, что в validateWrite. Возможно, непосредственно в коде создания записи
Но в примере, который послужил основанием для дискуссии, "внешних" данных нет вообще. Нечего проверять-то...
Цитата:
Сообщение от
wojzeh
в моём конкретном случае, мне нужно написать extension для проверки дупликатов. было бы написано, как доктор прописал, щас бы уже всё работало, так - делаем выкрутасы.
Ну, если не рассматривать вопрос о том, что программный контроль уникальности - заведомо не надежен, то выбранный способ решения сам по себе не однозначен. Зависит от постановки задачи. Тут есть разные варианты и использование validateWrite - одно из многих. Не для обсуждения, а просто чтобы показать другие варианты
- Делать проверку на возможный дубликат до вызова метода создания
- Если есть дубль, то менять данные с тем, чтобы дубля не было при создании новой записи
Это так, первое, что в голову пришло. Но могут быть и другие варианты. Причем я не удивлюсь, если позже Вам придется добавлять в ValidateWrite() параметры для того, чтобы исключить ту или иную проверку...