[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Этапы оброботки формы
Страницы: 1, 2
chee
Создаю велосипед в своей цмске для работы с формами. Работа с формами у меня простая, есть моделька формы, эта моделька получает объект запроса, проверяет все ли ок и гидрирует данные в конечную модель.

Потенциально я выделяю три шага при работе с формами:
1. Валидация (Validation) - проверка корректности данных (обязательность, количество символов, соответствие маска
2. Верификаци (Verification) - проверка корректности данных с точки зрения, самих данных (проверку на существование базы данных, зарегистрированого логина или мыла)
3. Гидрация (Hydration) - вливание данных из формы в конечную модель по определенному маппингу (сюда же входит и преобразование данных в формат модели)

Вопросы:
1. Нет ли путаницы с Validation и Verification, как по мне она есть;
2. Может я забыл какой-то и слоёв и в реальной жизни нужно, что-то еще?


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Astin
Да вроде больше и ничего не нужно, но вот я, если нужно проверить есть в бд или нет
Сначала делаю 2 пункт, потом первый, а потом уже будет 3

Хотя.. Разницы особой по моему нет. Если нет ошибок в пунктах 1 и 3 то
выполняется пункт 3
sg.com
А как же 4-ый слой, - вливание корректно - гидрированных данных из модели в "манускрипт" незыблемо хранящий верные данные для возможного последующего извлечения и понимания "образа" да сути ранее заложенного в них (в данных, data)... biggrin.gif
chee
sg.com, это уже не входит в зону ответственности модели формы. Форма как по мне должна брать внешний источник данных, проверять его на корректность и уже настраивать модель по определенным правилам. А потому настроенную модель уже можно использовать и для сохранения, так и для бизнесс-логики.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sg.com
chee, твоя правда, но в обороты речи приходилось вчитываться, будто научная работа. Третий слой спорно к модели формы относится похоже. Ron где то писал про пять слоев, может что посоветует.
kaww
Цитата (chee @ 31.05.2016 - 22:03)
1. Нет ли путаницы с Validation и Verification, как по мне она есть;

Может вообще не разделять? Это все валидация.
Цитата (chee @ 31.05.2016 - 22:03)
2. Может я забыл какой-то и слоёв и в реальной жизни нужно, что-то еще?

Фильтры еще стоит добавить.
А так в общем-то все как у всех. Неясно только зачем пилить еще одну реализацию, которая ничем концептуально не отличается от уже массы таких же и не привносит ничего нового, когда можно просто взять готовое.
twin
Цитата (kaww @ 1.06.2016 - 01:18)
Может вообще не разделять? Это все валидация.

Нет, это разные понятия.

Валидация, это проверка внешних данных на соответствеие требований ресурса. Допустим есть требования использовать в логине только латинские символы. Тогда логин twin валиден для него, а Игорь_Vasinsky нет. Хотя последний вполне валиден для нашего форума.

Верификация, это проверка данных на соответстве стандартов самих данных. Допустим проверка e-mail по маске - это верификация. Ибо ни на каком ресурсе не может быть признанным верным такой e-mail twin@mail@ru.

Верификация, это первый этап. Проверка данных на общие стандарты. Валидация, это проверка данных на применимость их к конкретному ресурсу.

Так что у chee есть некоторая путаница в определениях.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
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.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
sg.com, советовать Ron'а в качестве каких-то идеологических и концептуальных идей, это отважный поступок.

Что на счет моего слога, то извиняй, я программист и по роду деятельности использую терминологию применяемую в программировании. То что ты быстро не вдупляешь в обычные текстовки может означать две вещи: я хреново построил предложения или то что тема создана не для таких как ты.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Guest
Сколько пафоса smile.gif

P.S. Я не Ron.

P.P.S. Предлагаю эту фразу сделать внутренним мемом.
kaww
Цитата (chee @ 1.06.2016 - 13:30)
Во-первых, я не изучал другие решения, так как это долго.

А вот это зря. Очень невелика вероятность того, что тебе удастся придумать что-то лучше, чем это сделала команда разработчиков того или иного популярного продукта. Банально потому, что "одна голова хорошо а две лучше". Да и вообще, перед изобретением своего велосипеда, неплохо бы оглядеться вокруг, и посмотреть на чем ездят другие, и чем конкретно тебя не устраивает это.
Цитата (chee @ 1.06.2016 - 13:30)
Во-вторых, лучше придумать своё, которое не будет конфликтовать с существующей архитектурой.

Например, компонентная архитектура того же ZF позволяет использовать его компоненты(хз как лучше написать) не накладывая никаких ограничений.
Цитата (chee @ 1.06.2016 - 13:30)
Что они будут делать в контексте обработки данных формы?

Вот что делают фильтры в ZF2/3 https://github.com/zendframework/zend-filter
twin
Цитата (chee @ 1.06.2016 - 06:30)
Может есть, что предложить?

Ну я могу только посоветовать, как различить верификацию и валидацию.

Верификация задает вопрос "Это оно?" (Это e-mail?)
Валидация задает вопрос "Оно подходит?" (Этот e-mail уже зарегистрирован в базе?)

Некоторые вещи нельзя верифицировать, некоторые не нуждаются в валидации.

Допустим логином может быть что угодно. Это просто набор символов. Значит его нельзя верифицировать. А вот валидации у логина хоть отбавляй. Уникальность, длина, разрешенные символы, фильтр по словарю и так далее.

А вот допустим фамилию нет смысла подвергать валидации. А верификации - да. Не бывает фамилий с цифрами.

Ну и так далее.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
twin, ты ничего не предложил, я хотел прдложения по названию этапов, а не размышления про термины.


kaww, я так и не понял что такое фильтры(при быстром просмотре док), почитал в интернете, пишут что это преобразование данных. Если так, то дя этого у меня 3 этап есть.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
kaww
Цитата (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.
twin
Цитата (chee @ 1.06.2016 - 10:21)
twin, ты ничего не предложил, я хотел прдложения по названию этапов, а не размышления про термины.

Всмысле не предложил...

Ладно, еще раз на пальцах.

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

Логичнее было бы первым поставить верификацию. Потому что валидаций обычно больше. Быстренько определились с общими требованиями к данным, и можно приступать к углубленной проверке - валидации.

И еще, я в очередной раз обращаю твое внимание на путаницу в терминологии. Вот это:
Цитата (chee @ 31.05.2016 - 15:03)
соответствие маска
не валидация. А это:
Цитата (chee @ 31.05.2016 - 15:03)
проверку на существование базы данных, зарегистрированого логина или мыла
не верификация.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.