Я не был уверен, смогу ли я задать такой вопрос, но после просмотра этого на Meta Stackoverflow, похоже, что этот вопрос в порядке.Ну, на мой вопрос:
Несколько месяцев назад я написал платформу валидации в Javascript.Я знаю, что уже существуют рамки валидации, такие как jQuery Validation , но я хотел использовать другой подход к валидации.Современные подходы имеют дело с написанием кода Javascript для выполнения проверки элементов формы.Глядя на исходный код формы, не сразу видно, какая проверка происходит для каждого элемента.В некоторой степени это можно исправить с помощью CSS-классов, которые определяют различные виды проверки.Но я чувствовал, что даже это было ограничено, потому что вы не можете легко настроить поведение проверки (сообщения об ошибках и т. Д.).Я хотел сделать что-то вроде проверки на основе аннотаций в Java с использованием JSR-303 Bean Validation или Hibernate Validator .
Поскольку HTML5 позволяет добавлять пользовательские атрибуты вэлементы, я решил, что я мог бы использовать это, чтобы «аннотировать» элементы формы для проверки.Итак, по сути, я придумал следующее:
<input id = "myInput"
name = "myInput"
type = "text"
class = "regula-validation"
data-constraints = '@NotEmpty @IsNumeric @Between(min=1, max=5)' />
Имея в виду эту основную идею, я создал инфраструктуру Javascript, которая:
- Исследует DOM для элементов, имеющих ограниченияОпределяет и связывает эти ограничения с элементами
- Позволяет создавать пользовательские ограничения
- Позволяет программно связывать ограничения
- Проверяет связанные ограничения
ВКроме того, платформа имеет следующие функции:
- Группы проверки, аналогичные указанным в JSR-303
- Интерполяция для сообщений об ошибках
Однажды ясоздал мою структуру, я пытался получить отзыв и отзыв для него, но я не был уверен, куда идти, чтобы получить отзыв и обзор.Я написал об этом несколько постов в блоге и без особой удачи разместил их в Digg и Reddit (раздел программирования).Некоторым людям это показалось интересным, но я не получил ничего большего.
Недавно на моем рабочем месте мы модернизировали устаревшую кодовую базу (JSP и сервлеты) и перенесли ее в Spring MVC.Когда начался разговор о валидации, я передал свои рамки своему старшему архитектору.Я сделал небольшую интеграцию и проверку концепции, и они, казалось, заинтересовались и дали мне добро, чтобы добавить его в проект.До сих пор у меня было только мое собственное скромное мнение, что это был бы полезный способ проверки, так что это дало мне некоторую уверенность в том, что моя идея и структура могут иметь некоторые достоинства.Однако мне все еще нужно было больше участия и рамок.После того, как я выяснил, что Stackoverflow разрешает подобные вопросы, я решил опубликовать его здесь, чтобы получить конструктивную критику, комментарии и отзывы.
Так что без дальнейших задержек я хотел бы представить Регул .Ссылка, которую я предоставил, ведет на вики на GitHub, где есть вся документация для фреймворка.Вы можете скачать последнюю версию (v1.1.0) с здесь .
Ждем ваших комментариев.
Некоторая дополнительная информация, которая не имеет непосредственного отношения
Мне пришла в голову идея интеграции моей платформы с Spring, то есть перевод аннотаций проверки на bean-компоненты в проверку на стороне клиента.Недавно мне удалось заставить это работать, даже с группами проверки (хотя в настоящее время нет поддержки отношений наследования между группами на стороне клиента).Таким образом, вам просто нужно аннотировать свойства поля с помощью ограничений проверки, и код проверки на стороне клиента генерируется автоматически.Тем не менее, я новичок в Spring, и поэтому мой метод, вероятно, не так уж и чист.Я хотел бы также получить некоторую обратную связь по этому вопросу, поэтому, если кто-то заинтересован, пожалуйста, дайте мне знать.В идеале (и я надеюсь, что я не слишком претенциозен), я хотел бы связаться с людьми из Spring и посмотреть, заинтересованы ли они в этом.