Деловая неделя

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

ЕЖЕНЕДЕЛЬНАЯ РЕКЛАМНАЯ ГАЗЕТА ДЛЯ ПРЕДПРИЯТИЙ «Деловая неделя» (Иркутск)

Технологии, веб-технологии

Очень много развелось сайтов об интернет-технологиях и веб-дизайне. Мы бы хотели быть лучшими... нет, этого нельзя по закону о Рекламе, лучше скажем просто: соответствовать. Веб-дизайн сразу на, его с технологиями никогда рядом не стояло. А вот эти ваши интернет-технологии следовало бы хорошенько разъяснить.

Определение

Технология:

1) «Совокупность наук, сведений о способах переработки того или иного сырья в фабрикат, в готовое изделие. [...] Совокупность процессов такой переработки» (Ушаков);

2) «2. Совокупность операций, [...], из которых складывается процесс обработки материала, изделия» (МАС).

Ожегов и БЭС признают только второе значение («Совокупность методов, процессов...»). Почти все словари единодушны в том, что из применения технологии следует готовое изделие (продукция). БЭС, однако, говорит, что «Технологией называют также сами операции добычи, обработки, транспортировки...», то есть операции, в результате которых не обязательно возникает готовое изделие.

Ближе всего нам, конечно, определение без оговорки, вследствие которого у веб-технолога должен получаться веб-сайт (конечный продукт). Но из БЭСа слово не выкинешь, поэтому мы вынуждены признать технологиями (хоть Ушаков и говорит, что мн. ч. нет) также отдельные звенья цепи случайностей, в результате которых Интернет запруживается хреновой тучей хреновых страниц.

Чёрт с вами, пусть будут звенья. Но звенья цепи! Нельзя назвать технологией процесс, который никуда не ведёт.

Интернет

Почему люди пишут так много статей (и даже книг) о веб-технологиях? Вернее, так: почему люди всё это читают? Мы видим три причины:

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

2) в других отраслях (где есть станки и доменные печи) по необходимости существуют базовые технологии, в строительстве же сайтов никакой «базовой технологии» не существует – любой школьник, прочитавший 2-3 случайных статьи по HTML-PHP, может в три дня поставить мир перед фактом существования своего сайта;

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

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

Строго говоря, в Интернете существует много всего «базового»: например, протокол HTTP или спецификация CSS. Но вряд ли можно спецификации (так же как и описания языков программирования) назвать технологиями. По основному «словарному» значению веб-технологиясовокупность операций, из которых складывается процесс создания веб-сайта. По «вторичному» значению («сами [отдельные] операции добычи, обработки, транспортировки...»), допускающему множественное число, веб-технологии – по сути, «маленькие хитрости», «веб-мастеру-советы», которые, кроме сокращения пути к конечному результату, представляют ценность сами по себе – как красивое доказательство теоремы, как характерные особенности стиля в этой игре в бисер, так увлекающей веб-программистов.

Реализация

Мы видим примерно 4 этапа, которые должен пройти открыватель новых веб-технологий:

1) исходная ситуация: конкретные примеры сайтов, на которых в данный момент применяются «нетехнологичные» решения;

2) теория: глубины Mysql, DOM, Javascript, погрузившись в которые, автор достигает нужной для получения озарения степени отрешённости;

3) попытка передать это состояние сатори словами типа SQL_CALC_FOUND_ROWS;

4) возвращение на землю и приладка нового звена в общую цепь построения (конкретного!) сайта.

Открыть новую технологию и описать её – не одно и то же. Сколько идей жадные первооткрыватели берегут для себя, стремясь выиграть конкурентную борьбу с коллегами! Да, в общем, наверное, нисколько :-). Даже на стороне сервера достаточно сложно что-то утаить от внимательного взгляда через ЧПУ, whois и LiveHTTPHeaders 0.14 – что уж говорить о DOM – Javascript! А желание прославиться? Кто ж станет отказываться от мировой славы изобретателя технологии, например, Ajax? ;-)

Основа для написания статьи – это этап 3) из нашей классификации. Он предполагает наличие хороших (школьных) знаний предмета. Потому что гениального озарения может достичь каждый, но, если нет хорошей «школы», при передаче его словами другим людям можно легко облажаться на какой-нибудь мелочи. Хорошую школу, однако, как правило, имеют люди, которым уже не очень интересны разговоры о школьных задачах. А большинство технологических находок как раз и состоят из «хорошего» решения школьных задач (которые до сих пор все решали «как обычно»). В общем, круговорот и парадокс.

Человеку, который много знает, нужны раздражители, чтоб он начал шевелить головным мозгом. Для этого создаются сайты «веб-дев», на которых «новички» и «середнячки» задают школьные вопросы «профессорам». Хотя иногда «профессора» пишут статьи и сами по себе, без провокационных вопросов. Иногда это не профессора, а вообще какие-нибудь дизайнеры (дизайнеры тоже иногда разбираются в HTML). В любом случае убить кучу времени на поиск нужного вам решения вы можете очень легко. Потому что «плохих», «неправильных» статей, руководств, рекомендаций в Сети на-амного больше, чем правильных (ничем помочь не могу).

Критерии правильности веб-технологии

В хорошем решении всё должно быть прекрасно: и javascript, и mysql, и .htaccess, и читаемый шрифт, и содержание сайта... Ну, в самом деле, представьте: читаете вы о гениальных веб-находках, восхищаетесь компактностью кода, и тут вдруг в конце выясняется, что это всё было изобретено для того, чтобы обойти спам-фильтры mail.ru. Ну, или чтобы перед посетителями сайта в процессе поиска автозапчастей вдруг выскакивала голая задница. Попытаемся выделить более точные признаки качества.

1. Решение и его описание должны быть простыми. Достичь универсальности – задача всё равно нереальная. Обычно сильное усложнение какого-то одного аспекта означает, что автор упускает из виду другие. Что-то типа: "Никогда не рисуйте то, что можно скопировать. Никогда не копируйте то, что можно обвести. Никогда не обводите то, что можно вырезать и наклеить..." Например, в коде HTML (4.0) совершенно не обязательно ставить закрывающие тэги </TD> – с этим прекрасно справляется любой, даже самый захудалый браузер. То есть ставьте их, конечно, на здоровье – но особо заострять на этом внимание в статье излишне. * Ещё один пример усложнения.

2. Мы всегда возвращаемся к основе. О какой бы мелкой проблеме CSS мы не писали, всегда думаем, имеем в виду (не обязательно пишем:-), как она связана с протоколом HTTP, с правильным обменом информации между сервером и браузером. Прежде чем писать о том, как запретить кэширование, пишем о том, как его вообще правильно организовать! (Всем обязательно читать статью: Кэширование в HTTP).

3. Решение должно быть звеном в технологической цепочке, и читатели должны видеть соседние звенья. Откуда и куда. («Но в нас горит ещё желанье, К нему уходят поезда, И мчится звёздочка сознанья Из ниоткуда в никуда»). Споры о том, кто быстрее сортирует массивы (PHP или Javascript), в отрыве от материала конкретного сайта, подобны стохастическим (или схоластическим?) спорам о том, сколько демонов уместится в оперативной... тьфу, то есть на острие иглы.

4. Решения не должны нарушать нормы морали. Так, например, веб-решения на основе .ASP – MS SQL (и прочих .net) следует считать абсолютно безнравственными, хуже детского порно, – потому что порно в Интернете вы можете смотреть или не смотреть, а цель корпорации Майкрософт – с помощью монополии полностью лишить людей выбора, что является тягчайшим преступлением по законам и Божеским, и человеческим.

======================

Иллюстрация усложнения

Речь идёт о статье Программирование / JavaScript спешит на помощь – 2 – это, вроде бы, первоисточник (который беззастенчиво копирует куча других сайтов). Сама по себе идея интересная (один из вариантов динамического изменения содержимого с помощью Javascript), но я себе голову сломал над кодом:

<script LANGUAGE="JavaScript">
function mov(form)
{
var myindex=form.dif.selectedIndex
location.href=(form.dif.options[myindex].value);
}
</script>

<form> <select NAME="dif" size="1"> <option value="dat.htm?id=pic1">Рисунок 1</option> <option value="dat.htm?id=pic2">Рисунок 2</option> <option value="dat.htm?id=pic3">Рисунок 3</option> </select> <INPUT onclick="mov(this.form, window)" type=button value=Смотреть> </form>

Даже не поверил сначала, что он может работать и скопировал себе на компьютер. Когда разобрался, стало смешно. Это же обычная отправка «на себя» обычной HTML-формы:

<form>
<select NAME="id" onchange="this.parentNode.submit()" size="1"> 
<option value="pic1">Рисунок 1</option> 
<option value="pic2">Рисунок 2</option> 
<option value="pic3">Рисунок 3</option> 
</select> 
<INPUT type="submit" value=Смотреть> 
</form>

- и всё, никакой Javascript в данной части кода не нужен! (Мой this.parentNode.submit() – так, для прикола, пример будет работать и без него). Либо уж Javascript при работе с формой должен быть уместен: например, с его помощью можно было бы делать выбранным (selected) тот элемент option, который указан в адресе страницы (id=pic2). Для этого достаточно добавить в конец используемого в данной технологии файла bild.js код:

var sarr=document.getElementsByTagName("OPTION")
for (var s in sarr)
 if (sarr[s].value==gp)
  sarr[s].selected=true

Результат с исправленным кодом: Javascript меняет картинки

© 2009, «Деловая неделя», Михаил Гутентог

Читать все комментарии (4)

Добавить комментарий:

*Автор:
E-Mail:
*Текст: