Инструментарий
Языками разметки и фотошопом веб-дизайн не ограничивается.
Если коротко резюмировать все основные достижения человечества на ниве веб-разработок, то получится список из нескольких групп.
1. Языки разметки: HTML, XHTML, XML, CSS и др. Это единственная категория, которую при создании веб-страниц нельзя обойти в принципе. Стоит отметить, что, если HTML одновременно отвечает и за содержание, и за оформление, то современная тенденция — корректное использование (X)HTML и XML для передачи семантики веб-страницы, а CSS — для оформления.
2. Языки активных сценариев, исполняемые на стороне сервера, в самом браузере, а результат выполнения выводящие на экран: JavaScript, JScript (все вместе и в ногу со временем — ECMAScript), VBScript.
3. Языки серверных сценариев, код которых выполняется на сервере (и не виден конечному пользователю), а результат формирует окончательную страницу и выдает в браузер посетителя: PHP, Perl, ASP, JSP, Parser, ColdFusion и другие. Собственно, ЯСС не работают без специализированных серверов, например, Apache и IIS. Часто они работают в сочетании с базами данных — изначально упорядоченными массивами текстовой информации (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, Firebird и др.), для обращения к которым используются разновидности языка SQL.
Вводная часть |
|
4. Смешанная клиентско-серверная технология AJAX, при использовании которой клиент (браузер) и сервер обмениваются данными без перезагрузки страницы (в отличие от языков серверных сценариев), что ускоряет работу. 5. Встраиваемая растровая графика. Современные браузеры воспринимают изображения в форматах JPG, GIF и PNG. Поддержка формата BMP, похоже, ушла в прошлое. Сочетание (X)HTML - и CSS-разметок с графикой и составляет основу верстки и дизайна большинства страниц. 6. Технология Flash (+ язык ActionScript). Используется как для анимированных векторных графических вставок в отдельных фрагментах веб-страниц, так и для построения целых сайтов. (Когда готовилась книга, компания Microsoft выпустила функционально подобную технологию Silverlight.) Собственно векторная графика на сайтах (например, формат SVG) поддерживается ограниченно. 7. Технология апплетов Java. Была популярной, поскольку позволяла создавать интересные визуальные эффекты. Ныне используется редко, например, для интерактивных карт. 8. Программы, исполняемые на сервере в помощь серверным языкам. Например, модули сервера для выполнения сценариев по времени (cron). Или программа по обработке графики, которая делает уменьшенные копии изображений по запросу сценария. Примечание. Многие их этих технологий имеют точки пересечения. Так, с базами данных можно работать не только с помощью языков серверных сценариев, но и с помощью AJAX. И серверные, и клиентские языки сценариев позволяют использовать регулярные выражения. Структурой документа, создаваемой с помощью языков разметки, можно управлять при помощи языков активных сценариев. Растровую графику могут включать в себя джава-аппле - ты и векторные флэш-ролики. Ряд примеров можно продолжать... Любая из этих технологий — это медаль с двумя сторонами. Можно ужасно писать HTML-код. Заставлять при помощи активных сценариев текст моргать и прыгать по странице. С помощью серверных языков делать спам-рассылки. Ставить на страницы картинки, оптимизированные скорее для печати в глянцевом журнале (по весу), и побольше Java-апплетов, которые в половине браузеров не будут загружаться. Делать сайт целиком на ААХ’е, чтобы навигация по нему была ужасной. Флэш-ролики (только последней версии Flash) делать не меньше двух мегабайтов только ради того, чтобы по экрану изредка проезжал автомобиль. Наконец, ставить на компьютер посетителя вредоносные программы. Но если их использовать по необходимости, по назначению и с умом, то получаются шедевры — не только по внешнему виду, но и по степени удобства сайта как инструмента. |
|
12 |
Инструментарий |
0.2 |
Для каждой из этих групп технологий, в свою очередь, существуют целые наборы программного обеспечения — и очень хорошие программы, и очень плохие, и те, что выполняют очень хорошо только определенные задачи. Для написания кода существует, наверное, наибольшее количество редакторов. Среди общеизвестных монстров — Adobe GoLive, Microsoft FrontPage, Macromedia Dreamweaver и Homesite (все коммерческого типа). Общий их плюс для начинающих творцов и одновременно общий минус в том, что они автоматически генерируют код, являясь редакторами визуального типа (или типа WYSIWYG, сокращение от «What you see is what you get» — «Что видишь, то и получаешь»). Текстовые блоки, иллюстрации и иные компоненты веб-страницы можно перетаскивать по рабочей области, работая, как в графическом редакторе. Как результат — автоматически генерируется код, чаще всего пригодный для очень ограниченного набора браузеров (так, сложная верстка в Microsoft FrontPage позволяет генерировать код, корректно обрабатываемый только браузером Microsoft же Internet Explorer). Кроме того, чаще получается только один тип верстки — жесткий, или фиксированный, а это далеко не всегда приемлемо. Для профессионального веб-дизайнера намного важнее, чтобы программа позволяла писать код вручную, выполняя только рутинные и вспомогательные операции, например, автозамену, подсветку разных компонентов кода разными цветами, нумерацию строк кода, свертку блоков, отладку сценариев, сообщения об ошибках и т. п. В этом случае кодер получает намного больше контроля за конечным результатом, поскольку программа не «решает» за него. Отличие таких редакторов «блокнотного типа» от визуальных не только в том, что основной компонент программы — это поле для ввода текста, но и в том, что в них нет встроенного интерпретатора кода. Например, Homesite и Dreamwever генерируют внешний вид страницы, основываясь на внутренних интерпретаторах (средствах отрисовки страниц), а текстовый редактор EditPlus Text Editor (тоже коммерческий) при установке в систему позволяет открывать написанные страницы в тех браузерах, которые пользователь укажет в настройках. Общее в таких программах — ориентированность на работу с кодом и веб-компонентами, будь то тэги языка HTML или визуально отображение кнопок отправки запроса, и масса вспомогательных инструментов — кроме уже упоминавшихся подсветки синтаксиса различных языков разметки и программирования и отладчиков это средства работы с протоколом FTP для загрузки файлов на сервер без файл-менеджера, палитры цветов, средства работы с набором страниц как с отдельным проектом и т. п. Различий больше. Визуальный и текстовый типы — это базовое разделение (хотя все визуальные редакторы позволяют редактировать код и вручную, а есть текстовые редакторы с зача- |
Вводная часть |
|
Точными средствами визуального редактирования). Остальные различия кроются в наборах функций. Так, упоминавшийся EditPlus (его я считаю самым удобным, но это субъективно) позволяет, не выходя из программы, создавать и редактировать системные файлы для работы с любым языком программирования, даже созданным по ходу дела. AceHTML обладает встроенными справочниками по основным языкам разметки и сценариев и по технологии серверных вставок SSI, а также позволяет работать не только с внутренним интерпретатором для отрисовки результата выполнения кода, но и с внешними браузерами, и хранит множество DHTML-заготовок. Cool Page обладает большим количеством встроенных шаблонов. А вот захотите ли вы пользоваться симпатичным и простым, но функциональным Kiss HTML Editor’ом, если узнаете, что его название никак не связано с романтикой поцелуев, а расшифровывается как Keep It Simple Stupid («Делай проще, глупый»)? Из бесплатных популярных редакторов текстового и смешанного типа стоит также отметить CoffeCup Free HTML Editor («сайт за чашкой кофе») и 1st Page («первая страница»). Из менее известных визуальных редакторов можно отметить, например, Namu6, PersonalWebKit, Web Office и MoreMotion Web Express (по описанию — редактор, позволяющий разрабатывать сайты и их страницы даже тем пользователям, которые не знакомы с HTML, что уже нонсенс). Вред и польза таких редакторов в том, что они позволяют делать продукты разной степени полезности без знания собственно механизмов создания этих продуктов. Вред — потому что из поля зрения уплывает множество важных факторов, а польза — в возможности не тратиться на дорогих и циничных веб-дизайнеров при необходимости быстро разместить нужную информацию в сети. Шаблоны веб-страниц в этих программах аккуратны, но слишком просты и годятся только для непритязательных разработчиков и их заказчиков. Чаще всего подобные редакторы, кроме чисто визуальных, способны работать с несколькими языками (зачастую в одном файле). Однако есть редакторы, предназначенные только для создания и редактирования таблиц стилей (CSS, например, Top Style или CSS Magic) или обработки XML-документов (к примеру, Microsoft XML Notepad). С одной стороны, удобно работать с минимальным набором многофункциональных инструментов, не загромождая рабочее пространство, с другой — если во главу угла ставится, к примеру, только программирование на PHP, то, возможно, стоит установить специализированный редактор именно для работы с этим языком. Отдельно стоит отметить, что редакторы не со встроенными браузерами удобны более корректной работой с активными сценариями. Дело в том, что у каждого браузера достаточно много особенностей в интерпретации сценариев на JavaScript, а язык VBScript поддерживается преимущественно одним браузером — Internet Explorer. Таким образом, |
|
14 |
Инструментарий |
0.2 |
Если разработчик хочет, чтобы сценарии были совместимы со всеми распространенными браузерами, ему нельзя полагаться на встроенный интерпретатор какой-либо программы. Логичным выводом является необходимое условие: «зоопарк браузеров» на компьютере разработчика (помимо собственно редакторов). О конфликтах браузеров и их производителей будет рассказано в следующих главах. Если редактор кода веб-мастер волен выбирать по своему вкусу, то браузеры для тестов выбирать не приходится: выбирают пользователи. А поскольку разработчик только в очень редких случаях может предугадать, какими программами просмотра будут пользоваться посетители сайта, ему нужно тестировать страницы во всех возможных браузерах. Под операционной системой Windows нужно обязательно проверять сайт в браузерах Internet Explorer (на момент написания книги последней версией является седьмая, а наиболее популярной шестая, обе обнаруживают достаточные отличия в интерпретации веб-страниц от пятой и тем более шестой версии; изредка посетители заходят на сайт из-под третьего Internet Explorer), Mozilla Firefox (1, 1.5 и 2 версии), просто Mozilla (и других браузерах на основе механизма Gecko, например, K-Meleon), Netscape (3 и 4 версии работали на одном «движке», а начиная с 6 — на основе того же Gecko, различия в отображении страниц гигантские) и в браузере Opera (последние и наиболее корректно интерпретирующие код версии — 8 и 9; глобальные различия в прорисовке страниц есть с шестой версией). В тех же браузерах, но под другими операционными системами страницы могут выглядеть по-другому из-за различной работы со шрифтами и из-за разницы в исходном коде браузеров. Например, Internet Explorer 5 для Windows и Internet Explorer 5 для MacOS — это два разных браузера. Firefox и Opera, правда, дают не столь различающиеся результаты. Для MacOS (начиная с 10 версии) характерно наличие еще двух браузеров — Safari (браузер по умолчанию, версии 1-2, и планируется третья) и Camino. Safari базируется на том же коде, что и браузер Konqueror для семейства операционных систем Linux, стремительно набирающих популярность (однако «линуксоиды» реже пользуются им, чем браузером Firefox). Безусловно, вне студийных условий трудно тестировать сайт на разных системах, но для этого существуют онлайновые сервисы (список в конце книги прилагается). Для работы с языками серверных сценариев (ЯСС) необходимы серверы. Серверы — это не только металлические ящики с дисковыми массивами, но и программы, определенным образом организующие работу с данными для многих пользователей и имеющие средства интерпретации ЯСС. Например, для работы с сайтами на PHP (а именно на этом языке работает очень много готовых веб-архитектур, или «движков») требуется сервер Apache (как наиболее подходящий), сам PHP (ведь язык — это тоже программа) и — желательно — база данных, например, MySQL. А для работы с БД существует удобное средство, на- |
Вводная часть |
|
Писанное на языке PHP — программа PHPMyAdmin. Все это нужно держать под рукой и правильно настроить. А для языка ASP (точнее, это не язык, а средство разработки, поскольку включает сценарии на других языках) больше подходит сервер IIS. Правда, есть мощные отладочные пакеты, например, «Денвер» от российских программистов. Компактный дистрибутив (работающий под Windows, тогда как традиционно Apache ставится на Linux или другую Unix-подробную систему) включает собственно сервер Apache с большинством необходимых модулей, поддержку языков PHP, Perl и Parser (последний не в основном дистрибутиве) и базы данных MySQL с инструментом PHPMyAdmin, что делает его незаменимым отладочным средством: кусочек Linux^ в системе Windows. Тем не менее, если требуются специфические настройки сервера, особые расширения, а также тест дополнительных программ, которые будут запускаться на сервере, то стоит не просто установить сервер, язык и БД по отдельности, но и воссоздать условия их функционирования на рабочем сервере, где будет располагаться сайт, — нужная операционная система нужной версии, утилиты, модули и т. п. Для написания кода на ЯСС пригодятся специализированные текстовые редакторы (в том числе из перечислявшихся выше). Например, для PHP подойдут PHP Expert Editor, HTML Expert, CatsHtml KissCool. А редакторы EditPlus Text Editor, PHP Edit, Aditor, Web Development Studio и некоторые другие позволяют работать с языками HTML, ASP, PHP, Perl, Java, JavaScript, VBScript, CSS, XML, C/C++, Python, WML, qBasic, Pascal, Lisp, ActionScript, ColdFusion, Parser, и их можно «научить» работать и с остальными языками. Растровая графика — один из важнейших компонентов веб-страниц. Сложно (но все-таки возможно) встретить современный сайт, где разработчики обошлись без картинок в форматах JPG, GIF или PNG. (Замечу в скобках, в чем коренное различие этих форматов. JPG пригоден для фотоизображений и обеспечивает весьма разнообразные степени сжатия; GIF предпочтителен для изображений с большими однородными областями одного цвета, поддерживает прозрачные области и анимацию; PNG обеспечивает хорошее сжатие данных и также поддерживает прозрачные области и даже полупрозрачность, но не во всех браузерах корректно, а в старых браузерах — например, в Netscape 4 — изображения формата PNG вообще игнорируются.) Изображения используются как иллюстрации (фотографии, схемы и прочие материалы визуального представления данных), строительный и декоративный материал (фон страницы, «однопиксельные распорки» — о них пойдет речь в разделе про верстку, элементы оформления таблиц и страниц в целом) и функциональный материал (рисованные кнопки, пиктограммы и прочие элементы интерфейса). При создании и обработке изображений следует всегда держать баланс между качеством изображения и его размером. Огромный процент посетителей интернета пользуется модемами |
|
16 |
Инструментарий |
0.2 |
С низкими скоростями, так что загрузка страницы, нагруженной графикой, превращается в томительные минуты ожидания. Очень большой максимум суммарного «веса» изображений для одной страницы — всего 100 килобайтов, а желательно не более пятидесяти. В этом случае ожидание даже на невысоких скоростях не будет настолько критичным, чтобы из-за недозагрузки функциональной графики посетитель сайта не выдержал и ушел на другой ресурс. При этом никогда нельзя сжимать изображения настолько, чтобы на них появлялись дефекты, потому что эстетическая составляющая использования графики на сайте играет не последнюю роль. Использование графики, соотносящейся с тематикой сайта, и нестандартной (но оправданной) верстки зачастую создает лицо сайта, его неповторимый стиль. Поэтому для обработки и создания вебграфики существует огромное количество приложений. Растровые графические редакторы можно разделить на две группы: выполняющие ограниченное количество функций (условно «простые», потому что по количеству исходного кода и размеру системных файлов их не всегда можно назвать простыми) и полнофункциональные, зачастую включающие такие операции, которые могут пригодиться всего несколько раз («сложные»). «Простые» графические редакторы (например, разные варианты ACDSee, i. Mage, Photo Razor, Image Enhance, Image Explorer, NeoPaint и другие) являются одновременно программами просмотра и основного редактирования: позволяют кадрировать изображения, изменять их размер и иногда степень сжатия, применять простейшие фильтры и изменять яркость, контрастность и насыщенность цветов. Некоторые из них умеют создавать уменьшенные копии изображения (thumbnails в принятой англоязычной терминологии). Такая обработка достаточно удобна, если требуется быстро обработать одну или несколько фотографий для размещения в виртуальной фотогалерее в короткий срок. Очевидно, что для веб-дизайна такие программы могут пригождаться ограниченно: они вряд ли помогут в создании коллажей или оригинальной графики, и их ценность сводится к быстрому редактированию и пакетной обработке (удобно реализовано в Photo Razor). Более мощные редакторы (полноценные с огромным количеством функций — Adobe PhotoShop, Corel PhotoPaint, Macromedia Fireworks, Ulead PhotoImpact, The Gimp, Jasc Paint Shop Pro — и более ограниченные в возможностях Photobie, PhotoFiltre, Pixia, Project Dogwaffle, VCW VicMan’s Photo Editor и другие), во-первых, поддерживают технологии слоев и работу с множеством объектов на рабочем поле, что позволяет комбинировать изображения, а во-вторых, обладают большим арсеналом инструментов (кисти, фигуры, инструменты клонирования, выделение и редактирование фрагментов, наборы фильтров и эффектов и т. п.), что дает возможность создавать изображения с нуля. А эти два факта в сочетании с богатыми возможностями коррекции уже существующих |
Вводная часть |
|
Изображений позволяют подготавливать графику для веб-страниц без каких-либо ограничений. Из указанных редакторов Adobe Photoshop наиболее сильно сжимает изображения при подготовке для веб-страниц без существенной потери качества. В остальных редакторах нужно вручную проставлять нужное разрешение (72 dpi вместо 300), нужный размер изображения и степень сжатия, а после этого еще использовать утилиты вроде JPGCleaner или PureJPG для того, чтобы из изображения была вычищена вспомогательная информация. Нужно добавить, что есть совсем уж узкоспециализированные программы: например, MicroArt предназначена только для создания иконок для сайтов и программ в формате. ico, а программы Zx Color Spy или EyeDropper нужны только для выбора нужного цвета и определения его кодов в разных цветовых моделях. Создание анимации в формате GIF поддерживают далеко не все редакторы. Удобные инструменты для этого — программы Adobe ImageReady и Ulead Gif Animator. Сохраняя графику в рабочем формате, они способны на выходе давать оптимизированное для веба изображение с поддержкой анимации. Кроме того, создавать анимированные изображения позволяют программы Atani, Babarosa Gif Animator, Pivot Stickfigure Animator, В процессе подготовки изображений не стоит недооценивать и роль векторных редакторов (из которых наиболее популярны Adobe Illustrator, CorelDraw и Macromedia Freehand, а менее известными, но не менее функциональными аналогами со своими особенностями являются Xara и Creature House Expression, новые версии которой ныне выпускаются компанией Microsoft). Дело в том, что для свободного рисования линиями, для создания нефотореалистичной графики они подходят даже больше, чем растровые, и при этом все умеют экспортировать изображение в большинство популярных растровых форматов, в том числе пригодных и для публикации на веб-страницах. Векторная графика на сайтах пока используется ограниченно, и, несмотря на то, что стандарт SVG для описания векторных фигур появился достаточно давно, он не поддерживается большинством браузеров без дополнительных модулей. Единственный векторный формат, используемый на вебе — это Flash (файлы в формате. swf), дитя компании Macromedia, ныне принадлежащий Adobe. Он позволяет создавать анимированные интерактивные ролики, которые используются как встраиваемая графика, как меню и прочие элементы на веб-страницах, но которые также могут являться практически самостоятельными сайтами (практически — потому что для помещения ролика на страницу нужен небольшой HTML-код). В последнем случае ролик включает навигацию, способен подгружать вспомогательные ролики, текстовые файлы, сценарии, изображения и аудиофайлы. Подробнее о таком подходе будет рассказано далее. |
|
18 |
0.2 |
Основная и наиболее удобная программа, использующаяся для создания флэш-роликов, — Macromedia Flash (ныне Adobe Flash). Кроме этого, работать с флэшем позволяют программа Corel R. A.V. E. и последние версии Adobe PhotoShop.
И последнее, но, пожалуй, одно из важнейших замечаний. Оно касается работы с текстом.
На большинстве веб-страниц основным носителем информации является текст. Новости, блоги, книги, справочные страницы, форумы, чаты, электронные газеты и журналы, книги отзывов и другие типы страниц — основой содержимого всех их является текст. И если посетители вводят тексты комментариев, отзывы, реплики в форумах и чатах как бог на душу положит (без пробелов после знаков препинания, с массой ошибок и опечаток, с интернетовскими жаргонными словечками, со знаками дюйма вместо кавычек и с дефисами вместо тире), то создатели и администраторы сайтов должны следить за версткой и грамотностью текстов, размещаемых на страницах. Помочь в этом могут три инструмента: грамотность или желание писать грамотно (обычно оно способствует грамотности), словари (толковые, иностранных слов, орфографические и иные) и справочники (грамматика, орфография, пунктуация) и, наконец, специализированные онлайновые сервисы: часть из них проверяет правописание (как, например, «Орфограф» — Www.Artlebedev.Ru/Tools/Orfograf/, или проект «Орфус» — Www.Dklab.Ru/Chicken/Nablas/24.Html), а часть — выполняет рутинные операции, связанные с типографикой текста: расставляют правильные виды кавычек и тире, удаляют ненужные пробелы и восстанавливают пропущенные, расставляют неразрывные пробелы и тэги запрета переносов и т. п. Среди них наиболее популярны «Типограф» (Www.Artlebedev.Ru/Tools/Typograf/), «Автотипографика» (Http://At.Webcode.Ru/Online/), еще один «Типограф» (Http://Rmc.Net.Ru/Typo/) других авторов, а также три инструмента, работающих в режиме реального времени: «Корректор типографики» (Www.Pixel-Apes.Com/Typografica/ corrector), Jevix (Www.Jevix.Ru) и «Devanagari» (Www.Erlang.Com.Ru/Devanagari), написанный мной (его можно также сохранить на жесткий диск своего компьютера и пользоваться без подключения к интернету: файл-обработчик весит около 25 килобайт). С помощью таких инструментов можно достаточно быстро привести текст в порядок, забыв о ручной расстановке тэгов абзаца и прочих обязательных вещей.
Наконец, еще один класс программ, без которого не обойдется разработчик сайта, — менеджеры файлов, поддерживающие FTP-доступ к сайту. Есть файловые менеджеры общего назначения с таким доступом (например, Total Commander), есть специализированные FTP-менеджеры (FTP Commander, Core FTP и другие), есть технология SVN (с помощью которой можно организовать совместную работу с файлами сайта на различных компьютерах), а можно написать файл-менеджер самому на одном из серверных языков программирования.
Вводная часть