Предисловие

"Всякий писатель, предмет выбирай,
 соответственный силе;
 Долго рассматривай, пробуй, как ношу,
 поднимут ли плечи."

Гораций, "Наука поэзии"
(перев. М. Дмитриева)

Общие замечания

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

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

Несмотря на то, что большинству россиян доступ к Сети пока не по карману, развитие отечественной сети все же идет достаточно быстро. Опыт США и Европы показывает, что спрос на Веб-разработчиков в России будет ежегодно увеличиваться геометрически. Учитывая, что создание мало-мальски серьезного Веб-узла достаточно трудоемко и требует взаимодействия специалистов разного профиля, уже в ближайшие 2 — 3 года в нашей стране должны появиться многочисленные профессиональные коллективы Веб-разработчиков, объединяющие постановщиков, дизайнеров и программистов. Одним из обязательных условий их появления служит создание учебников и справочников по разработке и дизайну Веб-узлов, чем и объясняется появление настоящей книги. Она была задумана как базовый справочник для серии публикаций проекта Suncloud.Ru, посвященных обучению Веб-разработчиков.

WDH+ См. также мои статьи WDH+: Веб-специалисты: классификация и требования и WDH+: Объем знаний современных компьютерных наук.

Поставленные цели

Объем литературы на русском языке, посвященной тем или иным аспектам Веб-разработки, достаточно велик (см. Библиографию), поэтому возникает вопрос: а зачем вообще писать еще один справочник на эту тему? Дело в том, что большинство указанных в библиографии книг относятся к одной из следующих категорий:

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

WDH+ См. также мою статью WDH+: О технической документации в Рунете.

При написании данного справочника автор преследовал три цели, которые не решены в существующей литературе:

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

Стиль изложения

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

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

Терминология

Поскольку русская терминология, связанная с Интернетом, еще не устоялась, автор обращает на нее особое внимание. Основным принципом при переводе любых терминов был такой: если суть термина можно выразить русским словом, то используется оно, а не калька соответствующего английского слова. Поэтому, например, слово behavior переведено как реакция, browser как обозреватель, chat как беседа, а fragment identifier как закладка. С другой стороны, английские аббревиатуры употребляются как они есть, без замены их русскими аббревиатурами: URI, CGI, ASP и т. д. Единственный случай, когда автор "поступился принципами", это перевод слов Internet и World Wide Web. Internet мы либо переводим как Сеть, либо используем транслитерацию Интернет; это синонимы, и выбор одного из них определяется чисто стилистическими соображениями. Для World Wide Web используются либо обозначение WWW, либо транслитерация Веб, особенно в сложных словах: Веб-разработчик, Веб-программирование, Веб-сервер, Веб-страница, Веб-мастер. Последний термин заслуживает отдельного комментария. Дело в том, что в отечественной практике он постоянно употребляется как синоним Веб-разрабочика (это вызвано ассоциацией русского слова мастер с авторством изделия). Но английское слово master означает хозяин, а Веб-мастер, соответственно, это администратор Веб-сервера или Веб-узла! Именно в таком значении мы и употребляем этот термин.

Обзор содержания

Справочник разбит на следующие части:

  1. «Веб-страницы: язык HTML». HTML — это lingua franca современных Веб-документов и, естественно, мы начинаем рассмотрение Веб-разработки с его описания. В этой части дается полное описание языка HTML согласно его действующей версии 4.01 и обзор новой версии языка XHTML 1.0, которая должна стать Веб-стандартом в ближайшее время. Кроме того, для каждого элемента языка описано, как он реализован в популярных Веб-обозревателях.
  2. «Каскадные таблицы стилей: язык CSS». Если HTML позволяет описать структуру и содержание документа, то таблицы стилей определяют его внешний вид при отображении на экране или печати на принтере. Здесь приводятся как полное описание стандарта CSS 2, так и соответствие ему существующих реализаций.
  3. «Сценарии клиента: язык JavaScript». Сценарии, включенные в Веб-документ, обеспечивают его взаимодействие с пользователем и динамическое изменение отображаемой информации под воздействием внешних событий. В этой части приведено описание ядра наиболее популярного сценарного языка JavaScript и его реализаций в основных обозревателях.
  4. «Динамические Веб-страницы: технологии DHTML». Dynamic HTML возник как набор методов динамического создания и изменения Веб-страниц путем вызова из HTML-документа сценариев. Однако, развитие этих методов привело к полному пересмотру концепции Веб-документа и формированию понятия объектной модели документа (DOM). Именно DOM, его реализация в обозревателях Microsoft и Netscape и соответствующая клиентская среда языка JavaScript служат предметом рассмотрения в этой части, которая является самой большой по объему и, несомненно, центральной в нашем справочнике.
  5. «Приложения клиента: язык Java». Java-аплеты — это платформо-независимые программные модули, которые загружаются Веб-обозревателем с сервера и исполняются на стороне клиента. Несмотря на то, что сценарная составляющая DHTML уменьшила популярность аплетов, язык Java остается важным средством для реализации сложных программ, вызываемых из Веб-страницы.
  6. «Сценарии сервера: интерфейс CGI и язык PERL». Здесь мы впервые переходим на сторону сервера и рассматриваем стандартный интерфейс CGI и реализацию CGI-сценариев на очень популярном и мощном языке обработки текстов PERL.
  7. «Приложения сервера: технологии ASP и JSP». Современное состояние Веб-разработки характеризуется переходом от разрозненных Веб-страниц к интегрированным Веб-приложениям. В этой части рассматриваются две основные технологии создания Веб-приложений: Active Server Pages корпорации Microsoft и Java Server Pages корпорации Sun.
  8. «Объекты данных: язык XML». Язык XML, по общему признанию,  является основой для Веб-разработки ближайшего десятилетия. В отличие от HTML, он позволяет нам описывать любые структуры данных с помощью создания собственных тегов и, тем самым, разрабатывать собственные специализированные языки описания документов.
  9. «Таблицы стилей для объектов данных: язык XSL». На первый взгляд, XSL относится к XML так же, как CSS к HTML. Однако, его возможности намного больше: он не только обеспечивает описание стилей отображения XML-документов, но и обеспечивает практически любые преобразования исходного XML-документа в новые документы.
  10. «Векторная графика: языки VML и SVG». В этой части описываются два XML-приложения, а именно языки векторной графики VML и SVG. Оба они поддерживают создание достаточно сложных графических изображений в виде небольших по объему текстовых фрагментов.
  11. «Виртуальная реальность: язык VRML». Переходя от статической графике к созданию динамических виртуальных пространств, мы попадаем в мир VRML, языка с непревзойденными возможностями по моделированию на экране любых событий реальности.
  12. «Анимация: технологии Shockwave и Flash». Из многочисленных способов включения в Веб-страницу анимированных изображений мы выбрали технологии фирмы Macromedia, поскольку они пользуются наибольшей популярностью среди разработчиков и удачно сочетают относительную простоту использования с богатством возможностей.

Выражение признательности

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

  • Максиму Баклановскому — за разработку фреймового варианта просмотра справочника и за многочисленные плодотворные обсуждения его содержания;
  • Леониду Волканину — за техническую поддержку проекта;
  • Леониду Салмину — за советы по графическому оформлению справочника;
  • моей жене Ольге — за ее долготерпение и за многое другое, не имеющее никакого отношения к Веб-разработке.

Очевидно, что справочник такого объема, как этот, не может быть свободен от ошибок и недостатков. Поэтому автор будет благодарен за любые конструктивные замечания, которые позволят уточнить или дополнить текст, предлагаемый Вашему вниманию. Кроме того, они будут означать, что эти страницы кто-то читает, а, значит, работа делалась не напрасно. Так что пишите и до встречи в Сети!

 
16 ноября 2000 г.