Я не был уверен, могу ли я задать такой вопрос, но, увидев этот в Meta Stackoverflow, похоже, что этот вопрос в порядке. Что ж, на мой вопрос:
Несколько месяцев назад я написал структуру проверки в Javascript. Я знаю, что уже существуют рамки проверки, такие как jQuery Validation, но я хотел бы использовать другой подход к проверке. Современные подходы касаются написания кода Javascript для выполнения проверки элементов формы. Рассматривая исходный код формы, не сразу видно, какая проверка выполняется для каждого элемента. В какой-то мере это можно исправить, используя классы CSS, которые определяют разные виды проверки. Но я чувствовал, что даже это было ограничено, потому что вы не можете легко настроить поведение validaton (сообщения об ошибках и т.д.). Я хотел сделать что-то вроде проверки на основе аннотаций в 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 разрешает подобные вопросы, я решил опубликовать его здесь, чтобы получить конструктивную критику, комментарии и отзывы.
Поэтому без каких-либо задержек я хотел бы ввести Regula. Ссылка, которую я предоставил, относится к вики на GitHub, которая имеет всю документацию для фреймворка. Вы можете загрузить последнюю версию (v1.1.0) из здесь.
Ждем ваших комментариев.
Дополнительная информация, которая не имеет непосредственного значения
Я поиграл с идеей интегрировать свою фреймворк с помощью Spring, т.е. перевести аннотации проверки на beans на проверку на стороне клиента. Недавно мне удалось заставить это работать, даже с группами проверки (хотя в настоящее время нет поддержки отношений наследования между группами на стороне клиента). Таким образом, вы просто должны аннотировать свойства поля с ограничениями проверки, и код проверки на стороне клиента автоматически генерируется. Тем не менее, я новичок Spring, поэтому мой метод, вероятно, не так уж и чист. Я хотел бы получить некоторые отзывы об этом, так что, если кто-то заинтересован, пожалуйста, дайте мне знать. В идеале (и я надеюсь, что я не слишком претенциозен), я хотел бы связаться с людьми Spring и посмотреть, заинтересованы ли они в этом.