Jump to content
  • 0

валидация документов


Vlad
 Share

Question

Чтобы не задавали вопросов, что такое валидация и чего она дает, написал данный текст. Если у кого возникнут дополнительные доводы, не упомянутые ниже, добавляйте.

Валидацией будем называть проверку документа на соответствие веб-стандартам и выявление существующих ошибок. Соответственно, валидным является такой веб-документ, который прошел подобную процедуру и не имеет замечаний по коду. Код веб-страницы должен подчиняться определенным правилам, которые называются спецификацией, ее разрабатывает W3 Консорциум (www.w3c.org) при поддержке разработчиков браузеров.

На первый взгляд, кажется, что валидация необходима, ведь речь идет о сокращении количества ляпов разработчиков и написании "правильного" кода. На деле все обстоит гораздо сложнее и вокруг валидации до сих пор ведутся горячие споры об ее актуальности. Чтобы объективно раскрыть этот вопрос далее рассмотрим плюсы и минусы такой проверки.

Плюсы валидации

Хотя HTML-код имеет достаточно простую иерархическую структуру, при разрастании объема документа в коде легко запутаться, следовательно, просто и совершить ошибку. Браузеры, несмотря на явно неверный код, в любом случае постараются отобразить веб-страницу. Но поскольку единого регламента не существует о том, как же должен быть показан "кривой" документ, каждый браузер пытается сделать это по-своему. А это в свою очередь приводит к тому, что один и тот же документ может выглядеть по-разному в популярных браузерах. Исправление явных промахов и систематизация кода приводит, как правило, к стабильному результату.

Тенденции

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

Не стоит забывать и об XML (eXtensible Markup Language, расширяемый язык разметки). Этот язык становится стандартом де-факто для хранения данных и обмена информацией между разными приложениями. Синтаксис XML более жесткий, чем HTML и не прощает малейших ошибок. В каком-то смысле XML похож на языки программирования, в которых программа не будет скомпилирована, пока код не отлажен. HTML является первой ступенькой к изучению XML, поэтому приучая себя писать код по всем правилам, будет легче перейти к следующему этапу развития HTML.

Мода на валидацию

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

Косвенные преимущества

Следование стандартам во многом дает множество выгод, которые проявляются в мелочах и становятся заметными при достижении определенной критической массы. В частности, объем кода становится меньше, компактнее и читабельнее. Соответственно, для пользователей повышается скорость загрузки сайта в целом.

Минусы валидации

Сайты, конечно же, делают для того, чтобы их посещали люди. Именно посетители выступают мерилом работы сайта, а их интересует информация и способ ее получения. Пользователь желает, чтобы сайт корректно отображался в его любимом браузере, быстро загружался и содержал те материалы, которые ему нужны. Заметьте, в этом списке нет ничего про код документа и его валидность, посетителей это просто не интересует. Поэтому совершенно невалидный сайт, но выполненный с душой, наполненный интересными материалами привлечет к себе больше посетителей, чем пустой ресурс, но сделанный по всем "правилам".

Браузеры

Разработчики браузеров не всегда следуют спецификации и в некоторых случаях трактуют код не по заданным правилам, а по-своему. В конечном итоге это приводит к тому, что веб-страница, которая правильно (т.е. так, как и задумывали разработчики) отображается в одном браузере, выводится с ошибками в другом. Следование спецификации в подобных случаях, скорее всего, отпугнет пользователей некоторых браузеров. К примеру, Internet Explorer (IE) в настоящее время занимает лидирующее положение среди браузеров, но при этом поддерживает спецификацию HTML и CSS хуже, чем Firefox и Opera. Ясен перец, что пользователи IE при посещении сайта выполненного по всем стандартам, но не учитывающего специфику этого браузера, увидят неприглядную картину.

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

Получается неутешительная картина ? тратить время на отладку кода для соответствия спецификации нет особой нужды. Это время лучше посвятить тому, чтобы документ без проблем работал в разных браузерах ? так в основном размышляют веб-разработчики.

Резюме

Так стоит ли проводить валидацию документов и заниматься этим этапом при написании веб-страниц? Доводы существуют как за, так и против, и здесь уже каждый решает, что для него важнее. Однако при обучении HTML и создании сайтов валидация необходима, поскольку она помогает избавиться от лишних ошибок и впоследствии избегать их.

Link to comment
Share on other sites

  • Answers 84
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

Спасибо, Влад, за хороший обзор. От себя добавлю:

Как показала практика:

1. При разработке веб-сайтов на заказ могут возникнуть проблемы с валидацией страниц при последующей поддержке сайтов. Заказчики для наполнения сайта обычно выделяют человека, мало знакомого с веб-стандартами. Как следствие - детище разработчика нещадно захламляется кодом.

2. Для действительно серь?зных сайтов с достаточно сложной версткой обычно можно пренебречь парой ошибок валидации с целью экономии времени (и средств заказчика).

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

К минусам валидации добавлю незначительное дополнительное время, затраченное на собственно валидацию и устранение ошибок кода (неочевидными при визуальном тестировании). Однако этот минус окупается меньшими затратами на дальнейшую поддержку и расширение сайта.

Мое резюме: валидация необходима. Однако в ряде случаев нет острой необходимости доводить е? до полного совершенства

Link to comment
Share on other sites

  • 0
1. При разработке веб-сайтов на заказ могут возникнуть проблемы с валидацией страниц при последующей поддержке сайтов. Заказчики для наполнения сайта обычно выделяют человека...

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

и код не портится... и юзерам проще...

Link to comment
Share on other sites

  • 0

По поводу минуса, заключающегося в том, что человек тратит больше времени, соблюдая валидность - неправда... Знающий человек сразу на автомате пишет валидный код (после верстки остается обычно поправить какую-нибудь опечатку, либо просто любоваться зеленой полоской с надписью "This page is Valid...").

Link to comment
Share on other sites

  • 0
По поводу минуса, заключающегося в том, что человек тратит больше времени, соблюдая валидность - неправда... Знающий человек сразу на автомате пишет валидный код (после верстки остается обычно поправить какую-нибудь опечатку, либо просто любоваться зеленой полоской с надписью "This page is Valid...").

Антон, поосторожней, плз, со словами - неправда... :/

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

Согласитесь, чтоб сделать качественно нужно больше времени, чем на скорую руку (если речь идет об одном и том же человеке, а не людях различной квалификации).

Link to comment
Share on other sites

  • 0

По личному опыту могу сразу сказать - постоянно, когда верстаю PSD'шники, в конце работы, проверяя валидность, вижу либо зеленую полоску, либо ошибку, которая допущена исключительно как опечатка (например, забыл у закрывающего тега слеш поставить - при ручной верстке случается такое изредка)...

А по поводу кроссбраузерности - я ничего не говорил... На нее в любом случае придется время тратить - валидный документ или нет. Только в первом случае обычно времени требуется меньше. В качестве примера:

Если не указать DOCTYPE (а это явно не даст пройти валидность), то в Opera 8.5 и IE6 (в этих версиях точно, в других - не проверял) вот такой код:

<div style="width: 100px; height: 100px; padding: 25px; background: #000;"> </div>

выдаст прямоугольник черного цвета размером 100x100; в FF и Mozilla в это время получится прямоугольник размером 150x150. По стандартам должен быть прямоугольник именно размером 150x150 - и если правильно указать DOCTYPE, то все будет именно так во всех браузерах. Это демонстрация того, что правильно оформленный документ гораздо проще привести к кроссбраузерному виду.

Link to comment
Share on other sites

  • 0
По поводу минуса, заключающегося в том, что человек тратит больше времени, соблюдая валидность - неправда... Знающий человек сразу на автомате пишет валидный код (после верстки остается обычно поправить какую-нибудь опечатку, либо просто любоваться зеленой полоской с надписью "This page is Valid...").

Согласен за редкими исключениями. А некоторые неприятные баги ие(к примеру) правятся на лету в процессе написания кода. Если сразу пишешь аккуратно отладка занимает меньше времени.

Link to comment
Share on other sites

  • 0
По поводу минуса, заключающегося в том, что человек тратит больше времени, соблюдая валидность - неправда... Знающий человек сразу на автомате пишет валидный код (после верстки остается обычно поправить какую-нибудь опечатку, либо просто любоваться зеленой полоской с надписью "This page is Valid...").

Согласен за редкими исключениями. А некоторые неприятные баги ие(к примеру) правятся на лету в процессе написания кода. Если сразу пишешь аккуратно отладка занимает меньше времени.

Народ, я ведь не против валидности! Если я делаю страницу с самого начала, то стараюсь, чтоб документ был стандартным, и соответственно валидным :)

Мой самый первый пост в этой теме, думаю, говорит об этом.

Но - когда надо переверстать чужой код, сделанный изначально по-другому... Да, лучше сделать заново! Я тоже так считаю, но не всегда это возможно в рамках задания. И тогда приходится искать решения кроссбраузерности и "сносного" соблюдения стандартов!

Или же макет сложный, а времени очень мало... Тогда пара небольших ошибок уже никого не волнует.

Кстати, 1 ошибка есть даже у Лебедева (на сегодняшнее число), зайдя например в Инвентарь - вы найдете уже большее количество ошибок, а у http://yandex.ru/ - 72! И т.д.

И что же?...

P.S. Просьба не начинать "религиозные войны" по поводу Лебедева.

Просто во многих коммерческих проектах валидность не есть панацея.

Link to comment
Share on other sites

  • 0

По поводу ошибок у Яндекса - практически невозможно без ошибок валидности создать такое количество скриптов. Ведь страница формируется там динамически => на поиск ошибок надо тратить мнго времени... и денег. Потому там уже пренебрегают валидностью. Но вот на стадии верстки сайта из изображения-макета уже как раз обязательным считается валидность документа.

Link to comment
Share on other sites

  • 0
ты сравниваеш яндекс, со сверстаным PSD?

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

Ты кстати сейчас повторяешь то, что было сказано выше!

Где? Кем? Когда? :)

Link to comment
Share on other sites

  • 0
Где? Кем? Когда? :)

Антон читай внимательней :P

Я вот столкнулся с ситуацией, переверстывал сайт + дизай, у меня на компе валидные страницы сайта (и писать стараюсь все грамотно и думать о будущем)!

Отдал программистам, и не задумался о том, на скока они хорошо владеют версткой! В итоге позже заметил (через месяц где-то), что в сгенерированном коде, ошибок не мерено! Я их в этом не виню, ... не подумал об этом!

Результат: добавление очередных разделов, модулей вызывает какие-либо, мелкие и большие, глюки которые я сижу и исправляю! И это не так-то просто ...

Программистам я сказал, что готовтесь испровлять ошибки, но при этом понимаю, объем работы большой, если я "переключу" их, то работа компании встанет, так как там работают аналитики, и другие люди подерживающие сайт, которым надо платить, и заробатывать деньги! И сейчас приходиться вертеться!

Два мнения!

1-е. Я хочу нормальный, код, и безглючность!

2-е. Директор все хочет быстро, и много, есть план развития!

Вот Антон как бы ты поступил!? Думаю ты понимаешь всю сложность ситуации :P

Link to comment
Share on other sites

  • 0

Если я работаю для себя, то делаю "нормальный, код, и безглючность". Если на кого-то, то в первую очередь выполняю требования / пожелания заказчика, даже ценой валидности - раз он хочет быстро и ему плевать на "нормальный, код, и безглючность" - его право... Я как исполнитель должен сделать то, что желает заказчик... Естественно, что я никогда не стану делать все очень плохо, даже если заказчик не станет требовать высокого качества - тут уж дело принципа.

Link to comment
Share on other sites

  • 0

При проверке на валидность кода http://validator.w3.org (проверяется шаблон Joomla на локальном сервере) выдаются ошибки на лишние или отсутствующие скобки и кавыки. Но в коде шаблона этих ошибок нет. Подскажите, в ч?м может быть дело?

Link to comment
Share on other sites

  • 0
Чтобы поскольку она помогает избавиться от лишних ошибок и впоследствии избегать их.

Спасибо Вам за статью!

Я свой сайт пишу, как мне удобно, я код понимаю прекрасно^_^, браузеры отображают его

на ура, всегда ,ни разу каких-то не увязок, учитывая, что ваша так называемая ''валидность'' полностью проигнорировна.

Вот тогда вопрос: на фиг она вообще нужна , зачем забивать и без того наполненную другими правилами написания кода голову?

Link to comment
Share on other sites

  • 0
Точно без ошибок? Хотя бы орфографических? И не пишите, пожалуйста, жирным. А то слово "Спосибо" в глаза сильнее бросается.

Не нравится, отредактируйте тему по-своему вкусу и усмотрению:mad:!!!

Link to comment
Share on other sites

  • 0
Вот тогда вопрос: на фиг она вообще нужна , зачем забивать и без того наполненную другими правилами написания кода голову?

Ну и не забивай, дело твое, убеждать в обратном никто никого не будет.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy