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

Фрагмент результата валидации example.com

Фрагмент результата валидации example.com
JavaScript → Валидация в JavaScript с помощью Valid8 из песочницы
Часто приходится «насыщать» интерфейсы с помощью JavaScript. В основном работаю через jQuery, всё нравится, но одна беда – валидация. Постоянно приходится изобретать «велосипед», искать в сети обрывки кода; а ведь хочется написать пару строчек без углубления в детали. Радость не заставила себя ждать: нашёл библиотеку Valid8 (произносится как validate), и, наконец, решил проблему написания кода валидации.
Пользоваться библиотекой оказалось очень просто, чего не скажешь о склеивании jQuery «обрезков» из интернета. Чтобы подключить библиотеку, нужно зайти сюда и нажать заветный Download. Скачается архив, в котором особый интерес представляет файл jquery.valid8.js, его копируем в папку с js файлам нашего проекта и подключаем библиотеку в html:
Допустим у нас есть форма:
Добавляем валидацию (по умолчанию только проверка обязательности заполения), передавая в качестве параметра строку с сообщением об ошибке. Работаем в стиле jQuery:
После того как поле получит фокус и вы из него выйдете не заполнив, объемлющий тег (в нашем случае li) получит класс стиля error.
Для визуализации ошибок добавим CSS в head нашего документа:
Валидация готова. Все.
Как пользоваться
Пользоваться библиотекой оказалось очень просто, чего не скажешь о склеивании jQuery «обрезков» из интернета. Чтобы подключить библиотеку, нужно зайти сюда и нажать заветный Download. Скачается архив, в котором особый интерес представляет файл jquery.valid8.js, его копируем в папку с js файлам нашего проекта и подключаем библиотеку в html:
<script src="/js/jquery-1.6.3.js" type="text/javascript" charset="utf-8"></script>
<script src="/js/jquery.valid8.js" type="text/javascript" charset="utf-8"></script>
Допустим у нас есть форма:
<form><ul>
<li><input type="text" id="inputSome" /></li>
</ul></form>
Добавляем валидацию (по умолчанию только проверка обязательности заполения), передавая в качестве параметра строку с сообщением об ошибке. Работаем в стиле jQuery:
$('#inputSome').valid8("Заполни это поле!");
После того как поле получит фокус и вы из него выйдете не заполнив, объемлющий тег (в нашем случае li) получит класс стиля error.
Для визуализации ошибок добавим CSS в head нашего документа:
<style>
.error input { background:pink; }
</style>
Валидация готова. Все.
Веб-разработка → Регулярные выражения для валидации распространенных видов данных
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Веб-разработка → Strain It! — Валидация и приведение данных на PHP из песочницы
Введение
Пожалуй любой программист рано или поздно сталкивается с проблемой валидации данных. Потратив уйму сил на написание однотипных алгоритмов валидации и я решил поискать более удобные способы. Было это довольно давно, и с тех пор мне довелось попользоваться большим количеством готовых решений и разработать несколько своих, которыми благополучно пользовался до недавнего времени.
Но после того как я перешел на PHP 5.3 меня потянуло написать новый валидатор на основе анонимных функций. А заодно еще раз потренироваться в их использовании. Мною ставились следующие требования к будущему классу:
- Декларативность (информация о валидации должна задаваться объектами/массивами)
- Гибкость (высокая эффективность кода, написанного с помощью этого класса)
- Скорость (ничего лишнего)
Уже после начала работ, мне пришла в голову мысль о том, что анонимные функции в этом классе можно использовать не только для валидации, но и для приведения данных к нужному виду (например к определенному типу). Добавив к списку требований еще одно («Универсальность») я смело переименовал класс в Strain.
Что же в итоге получилось… читаем ниже. Здесь я не буду претендовать на оригинальность решения и прочую ерунду. Если вам понравится такой подход, используйте его в своих проектах, а если нет — то нет. Для отчаянных любителей извращений исходники я опубликую в конце статьи.
Алгоритмы → XSD: частичная валидация
XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML-парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных. Многие так или иначе сталкивались с процедурой полной валидации, обеспечивающей соответствие документа заданной схеме или сообщающей о возможных ошибках. В данной статье речь пойдет о частичной валидации, кроме вышеописанного, позволяющей конструировать валидные документы «на лету». Мы разберемся, какие возможности может предоставить такой подход и способы его реализации.
PHP → Фильтры: смерть регуляркам и правильная валидация
Фильтры данных впервые появились в PHP 5.0, и по какому-то стечению обстоятельств остались незамечеными большй частью кодеров. Наверное, это можно объяснить отсутствием чего-нибудь подобного в PHP4, а может просто мануал плохо читали. Я тоже узнал про них случайно… А ведь эта замечательная функция позволяет избавиться от запутаных, и подчас некорректных, регулярных выражений, при выполнении типичных задач.
Мануал по фильтрам находится здесь. Приведу только основную информацию и пару практичных примеров.
Мануал по фильтрам находится здесь. Приведу только основную информацию и пару практичных примеров.
Блог компании MyTaskHelper → Создаём Ajax форму с базой данных, валидацией полей, E-mail-уведомлениями и капчей за 5 минут
Мы предлагаем ни много ни мало — создавать с нашей помощью Ajax-формы любой сложности с валидацией полей, капчей и прочими опциями, такими как, например, возможность модерации добавленной записи, установка e-mail'а, на который будут отправляться уведомления о заполнении формы и многими другими.
Для создания формы пользователю необходимо выполнить следующие действия:
Для создания формы пользователю необходимо выполнить следующие действия:
Ruby on Rails → Новые подходы к валидации в Rails 3
Введение
Как вы уже знаете из поста тов. Yehuda Katz об ActiveModel абстракции, в Rails 3.0, ActiveRecord отныне содержит в себе некоторые аспекты ActiveModel, среди которых модули валидации.
И прежде чем мы начнем, давайте вспомним, какие методы валидации у нас уже есть:
- validates_acceptance_of
- validates_associated
- validates_confirmation_of
- validates_each
- validates_exclusion_of
- validates_format_of
- validates_inclusion_of
- validates_length_of
- validates_numericality_of
- validates_presence_of
- validates_size_of
- validates_uniqueness_of
Все они по прежнему в строю, но Rails 3 предлагает несколько новых отличных альтернатив..NET → Изменения в валидации финальной версии ASP.NET MVC 2
и несколько вопросов безопасности, на которые стоит обратить внимание
Брэд Уилсон (Brad Wilson), один из разработчиков в группе ASP.NET MVC, сообщил в своем блоге о грядущих концептуальных изменениях, которые будут произведены в финальной версии ASP.NET MVC 2.
Речь идет о смене одной концепции валидации, отталкивающейся от полей формы, на другую – концепцию, в основе которой лежит модель данных. В этой статье я хотел бы рассказать, почему были внесены эти изменения и что они означают для разработчика.
Брэд Уилсон (Brad Wilson), один из разработчиков в группе ASP.NET MVC, сообщил в своем блоге о грядущих концептуальных изменениях, которые будут произведены в финальной версии ASP.NET MVC 2.Речь идет о смене одной концепции валидации, отталкивающейся от полей формы, на другую – концепцию, в основе которой лежит модель данных. В этой статье я хотел бы рассказать, почему были внесены эти изменения и что они означают для разработчика.
Интерфейсы → Отличная идея: цветовая индикация ввода пароля
Разработчик Mattt Thompson предложил, на мой взгляд, очень оригинальную и интересную идею цветовой индикации ввода пароля в поля формы. Для введенного пароля считается хэш который представляется в виде трех цветных полосок рядом с полем ввода пароля. Таким образом, во-первых, производится валидация повторного ввода пароля. А во-вторых и это самое главное, зная свой цветовой код вы сможете сразу узнать ошиблись вы или нет при первом вводе пароля.

Более подробно о идее в блоге автора. Попробовать идею на живом примере можно здесь.
Плагин для jQuery с реализацией идеи github.com/mattt/Chroma-Hash/ доступен по лицензии MIT.
PS: НЛО! Введи такую фичу на Хабре, поддержи оригинальную идею!

Более подробно о идее в блоге автора. Попробовать идею на живом примере можно здесь.
Плагин для jQuery с реализацией идеи github.com/mattt/Chroma-Hash/ доступен по лицензии MIT.
PS: НЛО! Введи такую фичу на Хабре, поддержи оригинальную идею!