Чем занимается и что умеет верстальщик

11 августа 2011 года, 11:16

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

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

Верстальщик в себе

Чем же занимается верстальщик? Нетрудно предположить, что он размечает текст с помощью особого формата разметки оного, который называется HTML. Вместе с этим, он сразу же определённым образом преобразует внешний вид написанной разметки из внешнего вида по умолчанию в какой-либо заданный (задание, идея, визуальный пример, сопоставление, копирование и другие методы). Почему именно текст?

Изначально HTML применялся именно для представления текста в определённом визуальном стиле. Это было неким искажением, деформацией сути HTML, который должен представлять не стилистическое, но смысловое содержание текста. Обычный текст состоит из языковых символов, символов пунктуации, слов, предложений, а также параграфов, подразделов, разделов и глав в более крупном представлении. HTML является прямой надстройкой над текстом. Он не заменяет текст, не пытается его мимикрировать. HTML расширяет возможности текста. Разумеется, в определённой степени этот язык разметки в смысловом отношении деформирован тем, что он применяется именно в информационных технологиях. Этим обусловлена его угловатая структура и подобный же внешний вид.

С помощью HTML можно делить текст на блоки и оперировать последними как индивидуальными сущностями; отчётливо задавать границы параграфов, отдельных участков текста, расставлять лексические акценты в определённых местах, обозначать заголовки, а также различную внешнюю информацию относительно размеченного текста. Именно этим и занимается верстальщик: обычный текст в его руках становится пригодным для машинной обработки. Машине будет понятно, что хочет человек сказать данным текстом. Разумеется, если другой человек так же владеет данным форматом разметки хотя бы на уровне чтения, то он точно таким же образом сможет извлечь из размеченного с помощью HTML текста гораздо больше информации, нежели из аналогичного же текста, но без разметки. Верстальщик-писатель и верстальщик-читатель поймут друг друга чуточку лучше, чем писатель и читатель. Это обусловлено и тем, что HTML, как надстройка, несёт дополнительную информационную начинку, и тем, что HTML более строг, нежели любой естественный язык, на котором происходит общение людей.

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

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

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

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

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

Верстальщик как программист

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

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

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

Очень важно здесь правильно наметить, на каких элементах необходимо делать CSS-классы, чтобы подобные элементы (HTML и CSS, относящийся к этому элементы) являлись переносимыми на другие страницы без влияния каких-то иных элементов. Верстальщик должен максимально инкапсулировать и абстрагировать то, что он стилизует. Элемент+стиль в связке должны образовывать прочную пару и выдерживать сторонние эффекты. Такая пара должна быть самодостаточной в рамках одного или нескольких документов, Любое изменение стилей вне данной пары по возможности не должно оставлять след на отображении пары. В этом состоит основная задача верстальщика как программиста: определить независимые участки разметки и написать для них независимые (возможно, взаимозаменяемые) CSS-свойства, которые будут представлять из себя обработчики разметки.

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

К слову, в вёрстке тоже можно проследить определённый набор паттернов, которые используются теми или иными людьми. Паттерны — это не какие-то техники, которые применимы к любым документам и связкам HTML+CSS, а полноценный стиль написания отдельных блоков кода. В этом случае верстальщик при взгляде на исходную задачу сразу способен увидеть соответствующую ему разметку. При этом исходный материал разбивается на блоки, следуя определённому паттерну, определённой системе, в которой работает данный верстальщик-разработчик.

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

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

Мнения (7)

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

  • Вова

    11 августа 2011 г.12:05

    Я считаю в этом тексте много букв. Кроме того попытка представить человека вводящего css теги как програмиста наводит меня на мысль о альтернативности такого утверждения.

  • Дин

    11 августа 2011 г.12:17

    CSS-теги — это звучит как минимум странно.

  • Лев

    11 августа 2011 г.12:38

    CSS как программирование это странно =) Я лично под данным заголовком скорее ожидал увидеть HTML+JS и прочие фронтенд извращения.

  • Дин автор

    11 августа 2011 г.12:56

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

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

  • Сергей

    11 августа 2011 г.18:31

    Философия ни о чем

  • inque

    12 августа 2011 г.23:50

    Ах как приятно читать такие статьи!

  • Sannis

    18 октября 2011 г.02:09

    Заждались :) Но не забыли :)

Я тоже знаю!

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

Вы можете использовать следующие XHTML-элементы в разметке комментария: strong, em, span[class=crossline], a[href=uri], code[type=язык], blockquote, ul и ol. В качестве языка кода может быть указан, например, javascript или css.