Создаю велосипед в своей цмске для работы с формами. Работа с формами у меня простая, есть моделька формы, эта моделька получает объект запроса, проверяет все ли ок и гидрирует данные в конечную модель.
Потенциально я выделяю три шага при работе с формами:
1. Валидация (Validation) - проверка корректности данных (обязательность, количество символов, соответствие маска
2. Верификаци (Verification) - проверка корректности данных с точки зрения, самих данных (проверку на существование базы данных, зарегистрированого логина или мыла)
3. Гидрация (Hydration) - вливание данных из формы в конечную модель по определенному маппингу (сюда же входит и преобразование данных в формат модели)
Вопросы:
1. Нет ли путаницы с Validation и Verification, как по мне она есть;
2. Может я забыл какой-то и слоёв и в реальной жизни нужно, что-то еще?
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Да вроде больше и ничего не нужно, но вот я, если нужно проверить есть в бд или нет
Сначала делаю 2 пункт, потом первый, а потом уже будет 3
Хотя.. Разницы особой по моему нет. Если нет ошибок в пунктах 1 и 3 то
выполняется пункт 3
sg.com
31.05.2016 - 21:08
А как же 4-ый слой, - вливание корректно - гидрированных данных из модели в "манускрипт" незыблемо хранящий верные данные для возможного последующего извлечения и понимания "образа" да сути ранее заложенного в них (в данных, data)...
sg.com, это уже не входит в зону ответственности модели формы. Форма как по мне должна брать внешний источник данных, проверять его на корректность и уже настраивать модель по определенным правилам. А потому настроенную модель уже можно использовать и для сохранения, так и для бизнесс-логики.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sg.com
31.05.2016 - 22:05
chee, твоя правда, но в обороты речи приходилось вчитываться, будто научная работа. Третий слой спорно к модели формы относится похоже. Ron где то писал про пять слоев, может что посоветует.
Цитата (chee @ 31.05.2016 - 22:03) |
1. Нет ли путаницы с Validation и Verification, как по мне она есть; |
Может вообще не разделять? Это все валидация.
Цитата (chee @ 31.05.2016 - 22:03) |
2. Может я забыл какой-то и слоёв и в реальной жизни нужно, что-то еще? |
Фильтры еще стоит добавить.
А так в общем-то все как у всех. Неясно только зачем пилить еще одну реализацию, которая ничем концептуально не отличается от уже массы таких же и не привносит ничего нового, когда можно просто взять готовое.
Цитата (kaww @ 1.06.2016 - 01:18) |
Может вообще не разделять? Это все валидация. |
Нет, это разные понятия.
Валидация, это проверка внешних данных на соответствеие требований
ресурса. Допустим есть требования использовать в логине только латинские символы. Тогда логин
twin валиден для него, а
Игорь_Vasinsky нет. Хотя последний вполне валиден для нашего форума.
Верификация, это проверка данных на соответстве стандартов самих данных. Допустим проверка e-mail по маске - это верификация. Ибо ни на каком ресурсе не может быть признанным верным такой e-mail
twin@mail@ru.
Верификация, это первый этап. Проверка данных на общие стандарты. Валидация, это проверка данных на применимость их к конкретному ресурсу.
Так что у
chee есть некоторая путаница в определениях.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (kaww @ 1.06.2016 - 05:18) |
Может вообще не разделять? Это все валидация. |
Дак вот в том то и дело, что в моём понимании нет.
Как проверяется логин.
1. Проверяется наличие запрещенных символов, соответствие всяким форматам и стандартам.
2. Проверка на соответствие внутренним процессам системы и бизнес логики, например существует ли такой логин в системе или нет.
Я хочу разделить эти два этапа, для их разделения нужны определения.
Цитата (twin @ 1.06.2016 - 06:31) |
Так что у chee есть некоторая путаница в определениях. |
Может есть, что предложить?
Цитата (kaww @ 1.06.2016 - 05:18) |
Фильтры еще стоит добавить. |
Что они будут делать в контексте обработки данных формы?
Цитата (kaww @ 1.06.2016 - 05:18) |
А так в общем-то все как у всех. Неясно только зачем пилить еще одну реализацию |
Во-первых, я не изучал другие решения, так как это долго. Во-вторых, лучше придумать своё, которое не будет конфликтовать с существующей архитектурой. В-третьих, я занимаюсь R&D, то есть изучаю новые подходы, какой прок будет в том, если я буду брать компоненты флагманских решений типа zend или symfony.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sg.com, советовать Ron'а в качестве каких-то идеологических и концептуальных идей, это отважный поступок.
Что на счет моего слога, то извиняй, я программист и по роду деятельности использую терминологию применяемую в программировании. То что ты быстро не вдупляешь в обычные текстовки может означать две вещи: я хреново построил предложения или то что тема создана не для таких как ты.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Сколько пафоса
P.S. Я не Ron.
P.P.S. Предлагаю эту фразу сделать внутренним мемом.
Цитата (chee @ 1.06.2016 - 13:30) |
Во-первых, я не изучал другие решения, так как это долго. |
А вот это зря. Очень невелика вероятность того, что тебе удастся придумать что-то лучше, чем это сделала команда разработчиков того или иного популярного продукта. Банально потому, что "одна голова хорошо а две лучше". Да и вообще, перед изобретением своего велосипеда, неплохо бы оглядеться вокруг, и посмотреть на чем ездят другие, и чем конкретно тебя не устраивает это.
Цитата (chee @ 1.06.2016 - 13:30) |
Во-вторых, лучше придумать своё, которое не будет конфликтовать с существующей архитектурой. |
Например, компонентная архитектура того же ZF позволяет использовать его компоненты(хз как лучше написать) не накладывая никаких ограничений.
Цитата (chee @ 1.06.2016 - 13:30) |
Что они будут делать в контексте обработки данных формы? |
Цитата (chee @ 1.06.2016 - 06:30) |
Может есть, что предложить? |
Ну я могу только посоветовать, как различить верификацию и валидацию.
Верификация задает вопрос "
Это оно?" (Это e-mail?)
Валидация задает вопрос "
Оно подходит?" (Этот e-mail уже зарегистрирован в базе?)
Некоторые вещи нельзя верифицировать, некоторые не нуждаются в валидации.
Допустим логином может быть что угодно. Это просто набор символов. Значит его нельзя верифицировать. А вот валидации у логина хоть отбавляй. Уникальность, длина, разрешенные символы, фильтр по словарю и так далее.
А вот допустим фамилию нет смысла подвергать валидации. А верификации - да. Не бывает фамилий с цифрами.
Ну и так далее.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, ты ничего не предложил, я хотел прдложения по названию этапов, а не размышления про термины.
kaww, я так и не понял что такое фильтры(при быстром просмотре док), почитал в интернете, пишут что это преобразование данных. Если так, то дя этого у меня 3 этап есть.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (chee @ 1.06.2016 - 17:21) |
я так и не понял что такое фильтры(при быстром просмотре док), почитал в интернете, пишут что это преобразование данных. Если так, то дя этого у меня 3 этап есть. |
Гидратор - это механизм заполнения объекта данными. Фильтры же обеспечивают "очистку" ввода от каких-то нежелательных данных, например, пробелы, символы табуляции, html теги. Т.о. данные после фильтрации поступают на валидацию. Вот что написано по этому поводу в документации ZF2
Цитата |
In the physical world, a filter is typically used for removing unwanted portions of input, and the desired portion of the input passes through as filter output (e.g., coffee). In such scenarios, a filter is an operator that produces a subset of the input. This type of filtering is useful for web applications - removing illegal input, trimming unnecessary white space, etc. |
Цитата (chee @ 1.06.2016 - 10:21) |
twin, ты ничего не предложил, я хотел прдложения по названию этапов, а не размышления про термины. |
Всмысле не предложил...
Ладно, еще раз на пальцах.
Нет этапов. Если ты хочешь разделить проверку на валидацию и верификацию, то у них нет приоритетов одного перед другим. Так что просто можно разделить ответственности, а очередность - это как тебе больше нравится. Потому что одни данные валидируются, но не верифицируются, другие - наоборот.
Логичнее было бы первым поставить верификацию. Потому что валидаций обычно больше. Быстренько определились с общими требованиями к данным, и можно приступать к углубленной проверке - валидации.
И еще, я в очередной раз обращаю твое внимание на путаницу в терминологии. Вот это:
Цитата (chee @ 31.05.2016 - 15:03) |
соответствие маска |
не валидация. А это:
Цитата (chee @ 31.05.2016 - 15:03) |
проверку на существование базы данных, зарегистрированого логина или мыла |
не верификация.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.