О, Боже, где же валидность?

    Разгорелась тут дискуссия на тему валидности. Вернее, суть там была в том, что развитие ИТ на (и не надо вот тут возмущенных вздохов!), на Украине, говорю я, позади планеты всей. Но про это как-то быстро забыли, и вопрос повернулся в другую плоскость.

    Валидность или не валидность? Вот в чем вопрос.

    К чему это фанатическое стремление к валидному коду? Каковы его практические плюсы, кроме того, что это в принципе стандарт?

    Вот «Хабра» не валидна, например. И что, давайте дружно перестанем тут тусоваться. Она ж не валидна!

    Короче, о пользователях надо думать, а не об имидже. Будет пользователь доволен — будет имидж.

    Update
    Спасибо всем, кто отметился в комментариях. Вразумительные объяснения только на пользу. Мне :)

    Правда, я не имел ввиду, что невалидная «Хабра» — это плохо. Но это уже другая история.

    Update2
    Своего рода продолжение дискуссии novikov.habrahabr.ru/blog/5404.html.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 36

      0
        +1
        Вот пусть теперь ликуют сторонники валидности :)

        Мне лично всё равно, будет "Хабра" валидна или нет. У меня в браузере она работает корректно и еже с ними. Я счастлив :)
          +3
          У меня тоже корректно работает, Опера 9 :)
          Но я за валидность, особенно за strict - не знаю чем это объяснить и как аргументировать в случае с Харом, но мне валидная вёрстка почему-то оооооооочень нравится :)
            +2
            Да, от валидной верстки на душе становится тепло и приятно :)
              +1
              .. и не только разработчику ;)
        0
        Лично я никогда не ставил валидность кода во главу угла!
        Низнаю почему, я сначала определяюсь со своим мнением (одно из двух: "пойдет", "не пойдет")!
        А потом валидность сама собой проверяется в процессе настройки под разные браузеры!
          +6
          Валидность — это не главный показатель качественно сделанного сайта. [читать]

          Но один из показателей, говорящий, что сайт не слеплен на быструю руку, а проектировался и вдумчиво собирался верстальщиком, а не визивигом или самоучкой php-программером. Это со стороны.

          А если говорить о процессе разработки, то валидный код — это правильно работающий код. Т.е. нет сомнений, что внутри alt'ов нет тегов, что все параграфы закрыты и ничего никуда не едет. Что уж говорить про JS, который зачастую странно отрабатывает на незакрытых тегах.
            +8
            К чему это фанатическое стремление к валидному коду? Каковы его практические плюсы, кроме того, что это в принципе стандарт?


            Вы совершенно неверно понимаете суть происходящего. «Валидный-невалидный» — пусть на форумах спорят.

            Правильнее говорить о коде, написанном с соблюдением синтаксиса и семантики. Второе (семантика) подразумевает, что для описания информации в коде использованы именно те элементы (часто их ошибочно зовут «тегами»), которые наиболее подходят (т.е. заголовки через H1, H2 и т.д., параграфы через P, и т.п.).

            Соблюдение синтаксиса предполагает, что ваш код соблюдает правила, указанные в спецификации HTML (или XHTML).


            Главнейший практический плюс: валидный код обладает заранее известной структурой и упорядоченностью. Если в коде царит порядок, то такой код проще обрабатывать, обслуживать, видоизменять. Ошибки в коде — это всегда слуги хаоса. Их поведение непредсказуемо, неизвестно, как будет работать код с ошибками завтра.

            Маленькое лирическое отступление: инженеры уже давно поняли, что унификация и стандартизация значительно снижают стоимость изготовления и, главное, обслуживания изделий. Это всё в сравнении с единичными или кустарными изделиями. Мои слова подтвердит любой мало-мальски грамотный инженер-конструктор. Попробуйте изготовить автомобиль,в котором все болтовые соединения выполнены разными болтами (с метрической резьбой, имперской и какой угодно другой, с разными размерами под ключ, формами головок и марками сталей). Если и соберёте, то потом замучаетесь обслуживать. Аналогия понятна?

            Код с ошибками — чаще всего именно кустарщина. В то время как код, не имеющий ошибок, упорядочен (т.е. стандартизирован и унифицирован).

            Все эти азы, которые до сих пор приходится разжёвывать во всяческих людных местах русскоязыной части сети, давно уже приняты и поняты ведущими западными веб-разработчиками. И нет в том никакого фанатизма.
              0
              Призадумался. Да, пожалуй, теперь мне куда понятнее что и как. Однако в большинстве случаев, стремление всё же остается если не фанатичным, то точно не здоровым. По крайней мере я могу об этом судить из того, что вы единственный, кто доходчиво объяснил свою позицию (или видиние предмета). Все остальные объяснения ограничивались чем-то вроде "это стандарт и хоть ты тресни". То есть получается, что люди либо понимают, но не могут объяснить. Либо не понимают, но "это стандарт и хоть ты тресни".

              Спасибо. Пошел думать.
                0
                Люди бывают разные. Кому-то действительно проще не задумываясь делать. Кто-то — педант от рождения. Есть и такие, кто на своих собственных ошибках пришёл к пониманию необходимости соблюдать порядок.

                Думайте.

                P.S. Комментарием ниже отметился тестировщик. Ему проще делать свою работу. Проще делать — меньше багов в конечном продукте. У продукта будут свои пользователи. Которым не придётся столкнуться с теми ошибками, которые сумел победить тестировщик. Всё взаимосвязано.
                  0
                  Обычное дело, когда код в процессе написания прогоняется через онлайн-валидатор Консорциума. Это не трудно, но зато экономит время и нервы.
                  +3
                  подпишусь, и замечу в скобках, что следование стандарту гарантирует то, что код будет корректно отображаться и отрабатывать и в дальнейшем (т.к. стандарты подразумевают определенную обратную совместимость). Чего нельзя сказать о не-валидном коде.

                  А рассуждение "валидность ради валидности" - оно по большей части безосновательное.

                  p.s. Мне, как тестировщику, проще работать с валидным (читай - правильно структурированным, корректным) кодом, а нашим разработчикам, соответственно, его поддерживать.
                    0
                    Я солидарен с вами.
                  +1
                  думаю пользователю абсолютно всё равно, валиден сайт или нет.
                  остальное объяснено
                  • UFO just landed and posted this here
                    • UFO just landed and posted this here
                      +1
                      вот я статейку писал как-то, правда пора ее более толково переписать, но руки не доходят http://www.i2r.ru/static/476/out_23437.s…
                        0
                        Валидность - это химера. Под валидностью многие понимают прицепленный в нижнем углу странички желтый прямоугольник с надписью "W3C XHTML 1.0" - как символ того, что при засовывании адреса странички в поле валидатора на сайте W3C вы получаете поощрительную зеленую надпись. Большинство людей при этом не задумывается, что же, собственно, произошло, чего добились? Означает ли похвала W3C'шного валидатора (который, к слову сказать, сам не безгрешен по части понимания HTML) что ваш сайт удобен? Функционален? Корректно отображается в разных браузерах? Доступен для людей с нарушениями органов зрения и т.д.? Перечислять можно до бесконечности. Ответ один - нет. Зеленая надпись о валидности не сообщает вам ни о чем, кроме того, что встроенный в сайт W3C робот сравнил ваш код со своим списком правил и не заметил разногласий.

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

                        Подобных "заборов", за которыми пытаются прятать свое нежелание / неумение делать хорошо - пруд пруди. Доверчивому человеку расскажут и о непоправимом вреде использования таблиц при верстке, и о неземной благости зеленой надписи Valid, и о необходимости писать чуть ли ни к каждому слову на сайте цельный роман в тэгах, описавая языки, аббревиатуры и пр. Будто бы язык XHTML - величайшее и непогрешимое творение, а W3C - суть Олимп и Божья Канцелярия вместе.

                        Ахтунг:

                        Дабы прояснить мою позицию по вопросу: валидация по версии W3C позарез нужна тем, у кого еще не слишком много опыта в работе. Могу от всей души посоветовать сперва сделать пять - семь - десять сложных "валидных" проектов - это хорошая тренировка, для тех, кому небезразлично уметь. А затем - идите дальше, вылезайте из тесных рамок W3C-валидатора и творите свои, умные и хорошие проекты, валидатор - не потолок, а только ступенька в опыте...

                        P.S. В школе у вас не должно быть сомнений, какие знаки препинания ставятся в предложении "Пойду, покурю." Валидатор школьных правил - учебник - даст вам однозначный ответ на этот вопрос. В университете вы узнаете, что никакого правила, определяющего пунктуацию в данном примере - нет, и единственным вашим валидатором при встрече с подобной конструкцией остается здравый смысл, кругозор и достаточно опыта, чтобы отстаивать свои взгляды перед поклоняющимся валидатору...
                          –1
                          Ваш комментарий — болтология чистейшей воды.
                            –2
                            Вовсе нет. Болтология — это неаргументированное навешивание ярлыка «болтология».

                            Цель коммерческого сайта — это не валидность! И даже не дизайн. Цель коммерческого сайта — прибыль для компании. Вот такие сайты делать мало кто умеет, к сожалению. Валидный сайт куда проще забабахать, чем эффективный, прибыльный.

                            Не слишком люблю Лебедева (смотрите код в их проектах, да баги, которые я нахожу все чаще), но вот тут правильно написано: http://validator.w3.org/check?uri=http:/…
                              +4
                              Цель коммерческого сайта — это не валидность! И даже не дизайн. Цель коммерческого сайта — прибыль для компании.

                              К чему вы всё это написали? Каким образом вышеуказанное опровергает необходимость поддержания порядка в коде? Вы не согласны с тем, что порядок — это хорошо? Может быть вы считаете, что привычный для кода большинства рунетовских сайтов бардак — ресурсосберегающая практика, и на ней и должно быть основано дальнейшее развитие Сети? Или может всё-таки стоит задуматься о том, что удачная бизнес-модель, продуманные интерфейс и движок только выиграют, если к ним присовокупить синтаксически (и семантически!) верный код?

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

                              Не пойму я вас, ей-богу. Мы сейчас о валидности говорим или о прибыльности? Зачем вы два совершенно различных качества сравниваете?

                              …но вот тут правильно написано: http://validator.w3.org/check?uri=http:/…


                              А я с уважением отношусь к тому, что делают в СЛ. Однако с заявленной сентенцией никогда не соглашусь. Она была бы справедлива только в том случае, когда на рынке присутствовал бы только один браузер. Единственный. С движком, не меняющим с течением времени алгоритмы работы с кодом. Эдакий идеальный браузер для Сети, пребывающей в состоянии абсолютного технологического покоя.
                                –1
                                К чему написал? К тому, что разработчики сайтов гонятся за валидностью, когда надо бы гнаться за эффекивностью.

                                Как Вы пришли к столь ошибочному мнению, будто бы я «не согласен с тем, что порядок в коде это хорошо». Более того, я Вам скажу, что и невалидный код и табличную верстку можно сделать весьма упорядоченными. В то же время, валидный код можно сделать кашей. Валидность != порядок.

                                По поводу «сентенции от САЛ». Вот мы верстаем по стандартам, а затраты ресурсов на создание кроссбраузерного сайта при более-менее сложном дизайне только выше оказываются. Времени больше, нервов. Так что Ваш пассаж про «только один браузер» не засчитываю.

                                Смысл сентенции в том, что корректное отображение в популярных на данный момент браузерах куда важнее валидности. И если валидная верстка требует больших затрат чем просто кроссбраузерная, то с точки зрения бизнеса выгоднее при таком раскладе сделать невалидно, но адекватно.
                                  –1
                                  Вот лучше бы мне вместо валидного кода возможность исправить мою опечатку в комментарии дали.
                                    0
                                    К чему написал? К тому, что разработчики сайтов гонятся за валидностью, когда надо бы гнаться за эффекивностью.

                                    О какой гонке за валидностью идёт речь? Посмотрите вокруг: сплошной невалидный tag-soup.

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

                                    Табличную — да. А невалидную считать упорядоченной уж увольте.

                                    В то же время, валидный код можно сделать кашей.

                                    Совершенно верно. Помня об этом, я специально уточнил комментарием выше.
                                    Валидность != порядок.

                                    Так я то ровно об этом же и писал. Однако валидность кода — один из краеугольных камней его порядка.
                                    Так что Ваш пассаж про «только один браузер» не засчитываю.

                                    Не убедили. Впрочем, как и Лебедев.
                                    …с точки зрения бизнеса выгоднее при таком раскладе сделать невалидно, но адекватно.

                                    Что мешает сделать и адекватно, и валидно?

                                    Вот выше я читаю:
                                    И если валидная верстка требует больших затрат чем просто кроссбраузерная

                                    Простите, но, по-моему, Вы мешаете в одну кучу валидный код и pure CSS+(X)HTML-вёрстку (которая действительно требует навыка). Проблемы всё-таки возникают не с обеспечением валидности, но чаще всего с написанием нужных стилей.
                                      0
                                      Смотря что понимать под эффективностью. А гнаться вообще ни за чем не надо.
                                      С точки зрения бизнеса: вам еще поддерживать ваш проект (если, конечно, не делать по принципу - сделал и забыл). А вот переверстывание каждый раз с выходом новой версии браузера, который поддерживает тот или иной кусок стандарта - зачастую значительно дольше.
                                  0
                                  Почему?
                                    0
                                    Ваши аргументы против валидности, мягко говоря, странны. Вас почитаешь, так в стане поборников валидного кода одни неуверенные очковтиратели и неумёхи.
                                      +1
                                      Жаль, если я обидел поборников валидного кода. Я против него ничего не имею, но не соглашаюсь с пропагандируемой трактовкой валидности - как обязательного аттрибута сайта.
                                        0
                                        Где тут аргументы против валидности?! Аргументы были против вознесения валидности на знамена и объявления оной благом наивысшим.

                                        Кстати, у меня большинство сайтов валидны. И все кроссбраузерны.
                                          +1
                                          Встречный вопрос: где вознесение валидности на знамёна и объявление оной благом наивысшим?
                                  +1
                                  обсуждение перешло в баталию, скоро полетят тапочки, торты, фекалии и т.п.
                                  А спор (кажется) вертится вокруг того, что под валидностью разные люди здесь понимают разное - и каждый отстаивает свое мнение с пеной у рта.
                                  Первая категория - те, кто говорит о валидном коде, как инструменте - его проще поддерживать ,гео не надо переписывать с входом новых стандартов.
                                  Вторая категория - как раз те, кто против валидности, возведенной в ранг товара - мы валидные, значит мы лучшие. Это удел любого нового веяния (недавно наткнулся на рекламу "AJAX-ready хостинг - специально, новые технологии уже для вас").
                                  Но! Речи о том, что это все надо делать только для того, чтобы получить зеленую полоску "одобрено валидатором" - не идет, это все маркетинговые ходы - причем весьма неумелые, рассчитанные на массу. Построение валидного кода только для того, чтобы w3c- валидатор сказал "круто" - это бред чистейшей воды. Так же, как бред чистейшей воды выводить валидность сайта в качестве рекламы - "посмотрите, какие мы валидные". Вы же не пишете для не-веб программ в качестве их достоинства "у нас правильные отступы в текстах программ, и венгерская нотация".

                                  Резюмируя - пишите как хотите. Просто надо помнить, что если код еще и валидный, то это облегчает его поддержку, тестирование и обеспечивает относительную совместимость в будущем, а значит и меньшие затраты на проект.
                                    0
                                    простите, разумеется "его проще поддерживать, ЕГО не надо переписывать с ВВЕДЕНИЕМ новых стандартов"
                                    +2
                                    Я против тех людей, которые добились зелёной надписи валидатора и думают, что сайт стал качественным. Это результат непонимания и того, что им не было объяснено, для чего же предназначена валидность, и что такое качественная вёрстка.

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

                                    Удобство использования - это качество сайта. И это качество не зависит от внутренней реализации (исключаем, конечно, javascript).

                                    Валидность, правильное отображение, соблюдение семантики, доступность - это качества кода.
                                    Валидность получаемого кода - это одно из качеств профессиональной разработки. И качество это обязательное. Валидный код адекватно отобразится в любом агенте (браузер, голосовой браузер и т.п.), заявляющем о поддержке соответствующего типа документов. Адекватно - значит, например, списки будут выглядеть как списки, а строчные элементы - вести себя как строчные элементы.

                                    Правильное отображение зависит от стилей, применённых к документу, и стилей по умолчанию, которые есть у каждого агента (по крайней мере у визуальных браузеров). И валидная, кроссбраузерная семантическая вёрстка сложнее, чем вёрстка таблицей, которая, впрочем, тоже, при соблюдении некоторых правил будет признана валидной. Используемый способ вёрстки - это показатель профессионализма.

                                    Соблюдение семантики - это соблюдение смысла элемента. Это экономия времени, которое некоторые затрачивают на придумывание чего-то вроде [span class="heading1"]Заголовок[/span], вместо использования семантически подходящего [h1]Заголовок[/h1].

                                    Доступность - это предоставление эквивалента для людей, которые обладают какими-либо ограничениями восприятия. Т.е. такое написание кода, в котором "фотография меня", будет, как минимум, снабжена атрибутом alt="Фотография меня", что будет полезно пользователям голосовых браузеров.

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

                                    Поэтому в моём понимании эффективный сайт == полезный, удобный и интересный. И делается он, прежде всего, чтобы приносить пользу, а не ради прибыльности.
                                    А эффективный профессионально выполненый сайт - это эффективный сайт, код которого валиден, семантичен, улучшает доступность и правильно отображается в браузерах.
                                      +1
                                      Если в общих чертах, то как раз о погоне за зеленой полоской я и говорил. Мне лично не раз приходилось сталкиваться с товарищами, которые бравировали этой полоской и заявляли, что они мега челы. Но при этом сайт неадекватно отражался в разных браузерах.

                                      Вот о чем я пытался сказать.

                                      "Убей в себе зеленую полоску" (с) :)
                                        0
                                        Убивать не надо. Надо понять смысл. ;)
                                      0
                                      На мой взгляд валидность важна когда над проектом работает команда.
                                      Это как ГОСТ на составные части. Знаешь по какому принципу скроена. Когда проект идет по рукам, проще разобраться и состыковать.

                                      А если работает один человек - там подмазал, там подправил, в результате все пашет и отображается. Собственно и проблем никаких.

                                      Конечно совершенно верно и отмеченное кем-то выше (лень смотреть) - это гарантия правильного отображения в браузерах.

                                      Да и вообще, писать грамотно - это хорошо.

                                      Only users with full accounts can post comments. Log in, please.