<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Павел Ловцевич &#62; Беседы о вебразработке: xhtml, html, css и многом другом. &#187; оптимизация</title>
	<atom:link href="http://lovtsevich.com/tag/optimizaciya/feed/" rel="self" type="application/rss+xml" />
	<link>http://lovtsevich.com</link>
	<description>Беседы о вебразработке: xhtml, html, css и многом другом.</description>
	<lastBuildDate>Thu, 28 Jan 2010 10:34:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>tut.by АД, КАК ОН ЕСТЬ! ето написал Макс Гулевич ок!</title>
		<link>http://lovtsevich.com/2009/12/25/tut-by-ad-kak-on-est-eto-napisal-maks-gulevich-ok/</link>
		<comments>http://lovtsevich.com/2009/12/25/tut-by-ad-kak-on-est-eto-napisal-maks-gulevich-ok/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 01:09:38 +0000</pubDate>
		<dc:creator>Павел Ловцевич</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[анализ]]></category>
		<category><![CDATA[Байнет]]></category>
		<category><![CDATA[оптимизация]]></category>

		<guid isPermaLink="false">http://lovtsevich.com/?p=308</guid>
		<description><![CDATA[Вчера ко мне обратился представитель проекта dev.by с предложением дать небольшую оценку верстки представленного на суд общественности нового варианта главной страницы главного белорусского портала tut.by для написания какого-то масштабного материала о главной новости Байнета 22 декабря 2009 года. В твиттере я уже поплевалася на эту тему, теперь могу аргументировать свое мнение. Сразу оговорюсь, что я [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Flovtsevich.com%2F2009%2F12%2F25%2Ftut-by-ad-kak-on-est-eto-napisal-maks-gulevich-ok%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Flovtsevich.com%2F2009%2F12%2F25%2Ftut-by-ad-kak-on-est-eto-napisal-maks-gulevich-ok%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Вчера ко мне обратился представитель проекта <a href="http://dev.by">dev.by</a> с предложением дать небольшую оценку верстки представленного на суд общественности <a href="http://new.tut.by">нового варианта</a> главной страницы главного белорусского портала <a href="http://tut.by">tut.by</a> для написания какого-то масштабного материала о главной новости Байнета 22 декабря 2009 года. В твиттере я уже <a href="http://twitter.com/zigzag_mcquack/statuses/6928882766">поплевалася</a> на эту тему, теперь могу аргументировать свое мнение. Сразу оговорюсь, что я не буду касаться оценки аспектов дизайна и usability проекта, которые не имеют прямого отношения к верстке, хотя и поэтим моментам у меня есть свое мнение.<br />
<span id="more-308"></span><br />
В целом, новую верстку tut.by можно охарактеризовать как &#171;<a href="http://lurkmore.ru/WTF">WTF&#187;</a>? Портал, претендующий на звание местного Яндекса выкатывает вот такое, простите, технологически ущербное убожество. Подобное качество работы для такого уровня проекта просто недопустимо. Среди основных отрицательных качеств кода можно отметить отсутствие его &#171;чистоты&#187;, неграмотное применение технологий, применение устаревших технологий, а также отсутствие качественной оптимизации верстки.</p>
<p>В моем понимании &#171;качественной верстки&#187; подразумевается наличие ряда критериев, среди которых наиболее важными будут:</p>
<ol>
<li>разделение структуры документа, его стилистического оформления и его поведения;</li>
<li>использование (x)HTML-тэгов в соответствии с их прямым семантическим назначением;</li>
<li>минимизация структурных (x)HTML-тэгов по отношению к контенту документа;</li>
<li>использование актуальных методов, приемов и технологий;</li>
<li>оптимизация (x)HTML, CSS, JS и изображений;</li>
<li>ну и валидация как инструмент, а не самоцель.</li>
</ol>
<p>Рассмотрим подробнее доступные исходники главной страницы new.tut.by и выясним, за что верстальщика проекта можно лишить премии.</p>
<h3>Разделение структуры документа, его стилистического оформления и его поведения</h3>
<p>Первое, что бросается в глаза это наличие inline-стилей CSS прямо в коде XHTML.</p>
<pre class="html" name="code">
&lt;input type="submit" name="send" value="Ответить" style="border-left:3px solid #13A833; height:16px !important;" /&gt;
</pre>
<p>Подобные вещи неоднократно встречаются в коде страницы. Это плохо тем, что нарушает прицип разделения структуры и оформления, повышает количество некэшируемого кода, увеличивая тем самым вес XHTML-документа и ухудшает дальнейшую поддержку такого кода.</p>
<p>Помимо инлайновых стилей верстальщик не постеснялся использовать многочисленные инлайновые JS в обработчиках событий.</p>
<pre class="html" name="code">
&lt;a href="http://radio.tut.by/player/index.html" title="Радио ТУТ" target="_blank" onclick="return !window.open(this.href,'','width=520,height=175,menubar=0,resizable=0,scrollbars=0,status=0,titlebar=0,toolbar=0,top=10,left=10')"&gt;
</pre>
<p>Подобные вещи также нарушают принципы разделения структуры и поведения, заодно увеличивая долю не кэшируемого кода, относясь тем самым еще и к пункту качества верстки, относящемуся к оптимизации.</p>
<h3>Использование (x)HTML-тэгов в соответствии с их прямым семантическим назначением</h3>
<p>Чем руководствовался верстальщик, выбрав таблицы для имитации табов (закладок) в соответствующих блоках сайта, я не знаю. По-моему, войны div vs. table уже давно завершились и применять их сегодня по непрямому назначению могут вынудить лишь крайние обстоятельства. Лично я с момента перехода на с табличной верстки на семантическую ни разу не столкнулся с необходимостью оформления какого-либо элемента страницы через таблицы, если только этот элемент не является непосредственно таблицей. Хотя, Виталий Харисов и Андрей Сумин утверждают, что есть еще ситуации, когда раскладка страницы для крупных проектов все еще должна выполняться таблицами, в разумном количестве конечно.</p>
<p>Но городить огород с таблицами ради создания табов просто нелепо.</p>
<pre class="html" name="code">
&lt;td width="14%"&gt;
	&lt;div&gt;
		&lt;div&gt;
			&lt;a href="javascript:function(){return false;}" onclick="javascript:return false;"&gt;Поиск&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/td&gt;
</pre>
<p>Добавьте еще к этому &lt;table&gt; и &lt;tr&gt;.</p>
<p>А вот за задание вертикальных отступов с помощью тэга переноса строки &lt;br /&gt;я бы вообще отбивал руки и лишал бы возможности заниматься этим видом деятельности в судебном порядке. Полюбуйтесь, пожалуйста.</p>
<pre class="html" name="code">
&lt;a href="tvset/7.html"&gt;ВС&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;span&gt;23:45&lt;/span&gt;  Фильм-концерт.. &lt;a href="http://tvset.tut.by/18_channel.html"&gt;Ностальгия&lt;/a&gt;&lt;br/&gt;
</pre>
<h3>Минимизация структурных (x)HTML-тэгов по отношению к контенту документа</h3>
<p>Здесь все просто, чем меньше структурных тэгов, тем больше такие сайты любят поисковики и тем меньше вес документа.</p>
<p>В этой категории можно перечислить упомянутые уже ранее ошибки:</p>
<ol>
<li>inline-стили и скрипты, которые могут быть вынесены в отдельный файл и будут кэшироваться;</li>
<li>применение CSS, который снова же кэшируется, для задания стилистического оформления, в частности вертикальных отступов;</li>
<li>применение неуместных тэгов при верстке блока, которые увеличивают общее количество разметки. Например, в табах вместо таблиц можно было бы использовать либо &lt;div&gt; либо &lt;ul&gt; и обойтись меньшим количеством &#171;оберток&#187;.</li>
</ol>
<p>Сюда еще можно отнести нелепую декларацию XML в коде.</p>
<pre class="html" name="code">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
</pre>
<p>Эта конструкция является не только излишней, но еще и вредной. Ведь именно она переводит IE6 в quirksmode и вынуждает писать большее количество CSS кода для этого морально устаревшего браузера, доля которого по статистике <a href="http://liveinternet.ru">liveinternet.ru</a> в Байнете на сегодня уже <a href="http://www.liveinternet.ru/stat/ru/browsers.html?slice=by;period=month">менее 10-ти процентов</a>. Эти потуги тем более непонятны, в случае, когда мы выходе мы имеем не настоящий XHTML с MIME-type application/xhtml+xml, а HTML в строгости синтаксиса XML с MIME-type text/html и разбираем его html-парсером в браузере.</p>
<p>Клиринг блоков задается устаревшим методом при помощи пустого &lt;div&gt; с CSS-свойством &#171;clear: both;&#187;.</p>
<pre class="html" name="code">
&lt;div class="clear"&gt;&lt;/div&gt;&lt;hr /&gt;
</pre>
<p>Сегодня существует более удобный <a href="http://perishablepress.com/press/2009/12/06/new-clearfix-hack/">способ</a> для достижения клиринга, который я активно применяю и всем настоятельно рекомендую. Он не нуждается в дополнительной разметке, только чистый CSS.</p>
<h3>Оптимизация (x)HTML, CSS, JS и изображений</h3>
<p>Как я уже говорил выше, оптимизация верстки не проводилась, что для ресурса с ежедневным трафиком в десятки, а то и сотни гигабайт является большим упущением.</p>
<p>К главной странице подключено 15 файлов скриптов, которые необходимо было слить в минимально допустимое количество и обфусцировать, сэкономив тем самым много http-запросов к серверу и приличное количество трафика.</p>
<p>Вся графика на сайте могла быть оптимизирована путем применения технологии CSS Sprites (слияния множество изображений в одно), что снова позволило бы сэкономить на http-запросах. Также графика должна быть оптимизирована за счет прогона ее по специальным утилитам, уменьшающим размер конечного изображения, путем очистки файлов от служебной информации.</p>
<h3>Общие замечания по мелочам</h3>
<ol>
<li>Активное применение свойства !important в CSS, что значительно ухудшает поддержку кода.</li>
<li>Активное использование однопиксельного изображения для неизвестных мне целей.
<pre class="html" name="code">&lt;img alt="" src="http://img.tut.by/i/tr.gif"/&gt;</pre>
</li>
<li>Неиспользование тэгов списков там, где это было бы уместно.</li>
<li>Неправильное применение элемента &lt;fieldset&gt; в форме авторизации.</li>
<li>Необоснованный перенос кнопки сабмита формы авторизации в начало кода, нарушая тем самым порядок фокуса ввода и отсутствие попытки исправить это с помощью атрибута tabindex.</li>
<li>Оборачивание кнопки сабмита все той же формы авторизации в &lt;div&gt; для непонятных целей и пр.</li>
</ol>
<p>Вот так кратенько мы пробежались по основным негативным моментам новой верстки портала tut.by. Более детально изучать верстку нет ни времени ни желания.</p>
<p><strong>Помните, так верстать нельзя! На смертном одре всем мы будем отвечать за грехи свои! =)</strong></p>
<p>Этот материл не является попыткой пнуть, упавшего. Мне хотелось бы, чтобы руководство крупнейшего интернет-проекта помнило о том, что tut.by является лицом всего национального сегмента сети Интернет. На них смотрят, на них ориентируются, по ним оценивают.</p>
<p>Юрий Анатольевич, пожалуйста, наймите квалифицированного верстальщика (программиста, проектировщика, дизайнера и пр.) и сделайте Байнет чуточку лучше.</p>
<p>P.S. Как уже выяснилось, мнения спросили также у <a href="http://yuri.shilyaev.com/">Юры Шиляева</a> и <a href="http://www.amazedev.com/">Паши Коноплицкого</a>. Видимо, это только вершина айсберга и бить проект собрались больно авторы статьи.</p>
<h3>Ссылки по теме</h3>
<ol>
<li><a href="http://twitter.com/#search?q=%23newtutby">Twitter realtime results for #newtutby</a></li>
<li><a href="http://yuri.shilyaev.com/archives/2009/12/23/458/o-novom-tut-by.html">О новом TUT.by</a></li>
<li><a href="http://dev.by/blog/11470">Мнения специалистов об обновленном TUT.by</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://lovtsevich.com/2009/12/25/tut-by-ad-kak-on-est-eto-napisal-maks-gulevich-ok/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

