Jump to content

Валидация кода


still swamp
 Share

Recommended Posts

Не обязательно. Валидность — соответствие указанной схеме (что в чем может содержаться и т.п.). Код, в котором абзацы размечены <br/>-ками, заголовки — тегами <b> и <strong>, списки сделаны через <blockquote>, а все названия улиц обернуты в <address>, может быть полностью валиден в HTML4/XHTML1, однако он прямо противоречит букве и духу соотв. спецификаций. Есть старая, но не утратившая актуальности статья по теме, там есть веселый пример и познавательные подробности.

Не путайте Валидность кода - соответствие спецификации в плане синтаксиса, с семантическими рекомендациями, которые ни один валидатор вам не проверит, да и на него это не возлагается, не его это работа, хотя семантика это ещё один показатель хорошего кода :)

P.S. Статью не читал, будет время обязательно гляну и откомментирую.

Link to comment
Share on other sites

Всего топика не читал - лень.

Прочел первый пост ТС.

И вот решил ответить.

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

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

А новичкам конечно сразу нужно учится делать по стандарту.

Link to comment
Share on other sites

Не путайте Валидность кода - соответствие спецификации в плане синтаксиса, с семантическими рекомендациями

Именно это я и имел в виду :). Спецификация включает в себя и то, и другое. А валидатор проверяет только первое.

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

Link to comment
Share on other sites

Прочел первый пост ТС.

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

А новичкам конечно сразу нужно учится делать по стандарту.

Свое мнение высказал.

С мнением обитателей ознакомился.

Свои 30 мессаг я получил. :)

В ответ на замечание "код не валиден" - буду присылать ссылку на этот топик. :(

Edited by still swamp
Link to comment
Share on other sites

Имхо, лучше на статью Сагалаева :)

Хочешь испортить хорошую вещь - доведи её до абсурда.

P.S. Статью прочитал, много фактов, с которыми не поспоришь, вот только выводы не о чём, в жизни не применимы, и вопрос валидности и хорошего кода к этой статье не относится. Я не призываю обвешиваться дурацкими кнопками с валидностью, я утверждаю одно: ежели вы пишите доктайп, то как минимум исправьте ошибки на которые вам указывает валидатор, а не кричите что это никому не нужно ибо у меня везде отображается как я и хотел. (особенно касается strict)

P.S. 2 : Имейте своё мнение а не посылайте на страницу с чужим философским умозаключением (вас не поймут)

Link to comment
Share on other sites

По-моему, выводы Сагалаева куда больше применимы к жизни, чем бездумное повторение мантры "всё должно быть валидно точка":

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

Что здесь "неприменимо к жизни"?

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

Беда доктайпов в нынешнем вебе — браузеры используют их не по назначению, не для того, для чего валидаторы. Поэтому иногда поставить стрикт-доктайп необходимо именно ради отображения (напр., с транзишнл-доктайпами глючит inline-block в IE8 и Операх), при этом не всегда возможно отказаться от <iframe>, <ol start> и т.п. Моё мнение — пара-тройка таких отступлений от "неприменимого к жизни" стандарта допустима, если вебмастер может веско аргументировать каждое из них. Да, это исключение, которое только подчеркивает необходимость соблюдать стандарт во всём остальном (не только синтаксисе, но и семантике!).

Link to comment
Share on other sites

По-моему, выводы Сагалаева куда больше применимы к жизни, чем бездумное повторение мантры "всё должно быть валидно точка":

Кажется мы идём по кругу, будьте логичны и последовательны, понятно что если что-то бездумно - то это бредово, ибо не осознано, даже если это истина. Мне приходиться повторяться ради вас: валидность необходимое но не достаточное условие, с этим соглашается и ваш изрекатель истины Сагалаев

Что здесь "неприменимо к жизни"?

Семантика и категоричность - неприемлема, собсно далее вы и сами пишите об этом но почему-то не видите этого у Сагалева.

Беда доктайпов в нынешнем вебе — браузеры используют их не по назначению, не для того, для чего валидаторы. Поэтому иногда поставить стрикт-доктайп необходимо именно ради отображения (напр., с транзишнл-доктайпами глючит inline-block в IE8 и Операх), при этом не всегда возможно отказаться от <iframe>, <ol start> и т.п. Моё мнение — пара-тройка таких отступлений от "неприменимого к жизни" стандарта допустима, если вебмастер может веско аргументировать каждое из них. Да, это исключение, которое только подчеркивает необходимость соблюдать стандарт во всём остальном (не только синтаксисе, но и семантике!).

Валидаторы нам помогаю избавиться в автоматическом режиме от будущих ошибок определённого рода. а Далее включая мозги и логику вы на своё усмотрение (или как говориться «на свой страх и риск») делаете отступления от стандартов, но эта необходимость появляется крайне редко, и я надеюсь со временем совсем исчезнет.

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

Link to comment
Share on other sites

Семантика и категоричность - неприемлема

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

Валидаторы нам помогаю избавиться в автоматическом режиме от будущих ошибок определённого рода. а Далее включая мозги и логику

Я считаю, что мозги и логику нужно держать включенными постоянно, и до валидации, и во время, и после :). Тогда будет меньше и ошибок (любого рода), и возни с исправлением их после валидатора, и необходимости отступать от стандарта (выбрав изначально самый подходящий). В остальном согласен полностью :(

Link to comment
Share on other sites

ЕМНИП, IE читает — для XML-страниц с text/xml. И даже валидирует, начисто зарубая невалидные (а не просто невеллформные, как др. браузеры в XHTML-режиме) файлы. Во всяком случае, раньше такое было.

Но вообще DTD — пережиток середины 90-х. Что там семантика, добрую половину синтаксических ограничений спеки (типа "<ins> и <del> могут содержать только строчные элементы, если находятся внутри строчного элемента") он выразить не может (вот и возникла манера оборачивать блочные эл-ты в ins/del для вставки в строчные — в грубое нарушение спецификации, но с сохранением формальной "валидности" по DTD!), кроме того, один и тот же документ можно распарсить по разным правилам (тот же XHTML — живой пример) и намертво пришитая схема становится скорее источником путаницы. Просветленные искатели дао разметки давно отказались от убогого DTD в пользу conformance checker-ов на базе реального парсера (а-ля validator.nu) ;)

Link to comment
Share on other sites

А разве браузеру есть до этого дело?

Или я что-то серьезно путаю, или браузер кастомные DTD все равно не читает.

Ничего не путаешь. Не читает. Но не факт, что не будет читать и в дальнейшем. Главное, что он кастомные элементы нормально может отображать.

ЕМНИП, IE читает — для XML-страниц с text/xml. И даже валидирует, начисто зарубая невалидные (а не просто невеллформные, как др. браузеры в XHTML-режиме) файлы. Во всяком случае, раньше такое было.

Прикольно. Никогда не копал в данную сторону.

Но вообще DTD — пережиток середины 90-х. Что там семантика, добрую половину синтаксических ограничений спеки (типа "<ins> и <del> могут содержать только строчные элементы, если находятся внутри строчного элемента") он выразить не может (вот и возникла манера оборачивать блочные эл-ты в ins/del для вставки в строчные — в грубое нарушение спецификации, но с сохранением формальной "валидности" по DTD!), кроме того, один и тот же документ можно распарсить по разным правилам (тот же XHTML — живой пример) и намертво пришитая схема становится скорее источником путаницы. Просветленные искатели дао разметки давно отказались от убогого DTD в пользу conformance checker-ов на базе реального парсера (а-ля validator.nu) ;)

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

Link to comment
Share on other sites

не факт, что не будет читать и в дальнейшем

Уже факт. По крайней мере, браузеры с HTML5-парсером точно не будут.

DTD очень сильно помогает для понимания структуры документа

Безусловно, особенно "на безрыбье". Но для глубокого понимания спеки этого мало (пример с <ins>/<del> я уже привел, еще масса нюансов с возможными значениями атрибута rel и т.п.)

Link to comment
Share on other sites

править DTD? Люди о чём вы? Вы уверенны что все браузеры их читают? у всех свои понятия, и плевать они хотели на чужое мнение. Хоть вы из прямой «фигуры лисажу» сделайте, они всё равно их будут трактовать по своему умозаключению.

Если на каждый документ будет свой DTD, какой из браузеров выиграет гонку «кто самый шустрый»?

думаю надо прикрыть тему, несмотря на то, что у Сорроу осталось недовасказанность...

Link to comment
Share on other sites

править DTD? Люди о чём вы? Вы уверенны что все браузеры их читают? у всех свои понятия, и плевать они хотели на чужое мнение. Хоть вы из прямой «фигуры лисажу» сделайте, они всё равно их будут трактовать по своему умозаключению.

Если на каждый документ будет свой DTD, какой из браузеров выиграет гонку «кто самый шустрый»?

думаю надо прикрыть тему, несмотря на то, что у Сорроу осталось недовасказанность...

Браузеры их не читают и никогда не будут читать. И трактовать они будут не по своему умозаключению, а по спекам HTML, XML, CSS и так далее.

На каждый документ свой DTD - это норма в XML-мире. Для нормальной разработки HTML мало. HTML5 не решает и половины нынешних проблем.

Link to comment
Share on other sites

На каждый документ свой DTD - это норма в XML-мире. Для нормальной разработки HTML мало. HTML5 не решает и половины нынешних проблем.

Приведи пример, а то не поверю.

Link to comment
Share on other sites

Приведи пример, а то не поверю.

Я понял, что тебе не понравилось в этой фразе.

Давай поясню. Под DTD я имел технологию описания структуры. Сделано это классическим способом, или через xsd, для меня неважно.

Структуры XML можно создавать какие угодно. Тот же SVG отличается от MathML, и других "языков". Но никто не мешает формировать любые структуры под определенные нужды.

Самый простой пример со своим DTD является XML, который возвращается в виде данных SOAP, от системы, где количество и структура данных настраиваемая под каждый тип запроса.

Link to comment
Share on other sites

Я понял, что тебе не понравилось в этой фразе.

Давай поясню. Под DTD я имел технологию описания структуры. Сделано это классическим способом, или через xsd, для меня неважно.

Структуры XML можно создавать какие угодно. Тот же SVG отличается от MathML, и других "языков". Но никто не мешает формировать любые структуры под определенные нужды.

Самый простой пример со своим DTD является XML, который возвращается в виде данных SOAP, от системы, где количество и структура данных настраиваемая под каждый тип запроса.

Под словом «давай поясню» я всё таки надеялся прочитать нечто более ясное чем набор полузнакомых слов :) , но благобдаря это меня заставило по-гуглить и в общем-то я понял о чём ты тут говоришь, и картина вырисовалась. Но как-то я потерял суть вопроса :)

ушел перечитывать ;)

Добавил после прочтения: Я понял, благодаря вам я одной ногой залез в дебри, пора уходить отсюда, разговор уходит от реальности бытия :)

Link to comment
Share on other sites

Под словом «давай поясню» я всё таки надеялся прочитать нечто более ясное чем набор полузнакомых слов :) , но благобдаря это меня заставило по-гуглить и в общем-то я понял о чём ты тут говоришь, и картина вырисовалась. Но как-то я потерял суть вопроса :)

Странно, вроде все слова знакомые. ;)

Суть вопроса заключается в том, что я рассматривают все SGML-подмножество языков просто как подмножество SGML. Не как HTML отдельно, а XML отдельно. Это все суть одного и того же. Объектная модель документа описывает алгоритм и формат его построения, CSS описывает визуальную часть. А какие теги используются для всего этого мне уже не сильно важно.

Браузеры не оперируют языками (подмножествами SGML), а оперируют DOM, CSS. Этого достаточно, чтобы иметь вполне масштабируемую архитектуру.

Добавил после прочтения: Я понял, благодаря вам я одной ногой залез в дебри, пора уходить отсюда, разговор уходит от реальности бытия :)

Не уходи от реальности :)

  • Like 1
Link to comment
Share on other sites

Не уходи от реальности ;)

Мне кажется что мы живём в разных реальностях, поэтому это предложение расцениваю как фразу «не уходи от моей реальности», что равнозначно приводит к «уходи из своей реальности», что в своё время противоречит с изначальным утверждением «Не уходи от реальности :)»

Тяжело разглядывать и анализировать 3D мир из плоского.

Я о том, что у нас по жизни разные задачи, и мне в плоскости бывает логичней, проще и удобней. хотя и не отрицаю существования 3D.

Link to comment
Share on other sites

Не, LunatiK как раз пытается отталкиваться от интуитивного здравого смысла. А вот чего употребляли, например, создатели боксовой модели content-box в CSS... ;)

А вообще прав был старик Галилео — всё относительно. Даже пиксели (особенно на принтерах и новых айфонах) :)

Link to comment
Share on other sites

LunatiK, я иногда читаю ваши камменты и поражаюсь что вы там такое курите у себя... ну или пьете (судя по аватару)... вроде с пива так не торчит :)

Не курю, пиво только вечером (в смысле не во время работы и только после полудня ;)) а вообще возможно да , мысли меня всякие посещают периодически и вроде как в трезвом рассудке :)

Добавил:

P.S. Я ж говорю, что то, что в вашем мире очевидно мне приходится для собственного понимания выражать не тривиально.

Edited by LunatiK
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
Reply to this topic...

×   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