«WEB-мастерство для каждого»

  «Мой профиль»  

Уважаемые Посетители!

Должен сразу извиниться перед вами, причем дважды: первый раз - за то что пропал так надолго, второй - что снова буду вам надоедать со своей экспериментальной разработкой.

Alex_soldier
(alex_soldier@mail.ru)
Лаборатория FAQ Ноу-Хау Эффекты Мнения

04.04.2007: Примеры «Использование AML»

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

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


НАПОМИНАНИЕ: AML - Automative Markup Language - Язык Автоматизированной Разметки.

Такое обозначение введено мной - автором спецификации языка и разработчиком AML-редактора.


ДЛЯ КОГО ПРЕДНАЗНАЧЕН AML:

Из собственного опыта я могу выделить по крайней мере 4 реальные категории его потенциальных пользователей.

Во-первых, это многочисленная армия сайтовладельцев на бесплатном хостинге, которые по ряду причин не готовы его поменять на что-то другое. Т.е. серверные технологии в этом случае недоступны. Свои странички они делают вручную с помощью какого-либо редактора. Пока сайт небольшой, его достаточно просто администрировать: обновлять содержимое и корректировать дизайн. Но со временем он разрастается разделами, рубриками, темами. Когда общее количество страниц перевалит за второй десяток, автор начинает невольно задумываться: "А по силам ли мне такой груз? Может стоит бросить все и дезертировать в блоггеры на все готовенькое?"

Чего стоит один лишь редизайн! Часто возникает необходимость добавить или удалить пункт из меню. В результате: сидим и тупо правим одно и тоже десятки раз. А не дай бог захочется переделать структуру документа. Это проще сразу повеситься! В таких случаях и выручают "движки" - своеобразные CMS. Но эти блага цивилизации многим недоступны.

Выходом могло бы стать использование фреймов, но они сейчас не в почете. Второй вариант - использовать включение динамических JS-скриптов. Но не все браузеры делают это корректно! Так что другой альтернативы не остается, разве что придумать какие-то примитивные срества автоматизации на стороне клиента. AML же является универсальным инструментом. Кто еще сможет предложить автоматически переверстать пару сотен страниц за 2-3 минуты?

Наличие этой группы, связано не только с использованием ими бесплатных хостинг-провайдеров, которые обычно ограничивают доступные серверные технологии весьма скромным набором стандартных скриптов, но и с чисто техническими проблемами. Так, при высокой посещаемости (порядка 1000 человек в сутки), создается значительная нагрузка на сервер. В результате сайт оказывается недоступным в моменты наивысшей активности посетителей.

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

Здесь стоит отметить достоинства и недостатки традиционных ”движков” – систем управления содержимым. Неоспоримо удобные в администрировании, они, тем не менее, создают постоянную дополнительную нагрузку на аппаратные средства хостинг-провайдера. Качественно реализованная CMS при загрузке одной страницы инициирует в среднем около десяти запросов к БД (плохо реализованная – до нескольких сотен)! При этом, в подавляющем большинстве случаев, пользователи запрашивают статическую информацию, а не интерактивные сервисы.

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

Во-вторых, это обычные рядовые WEB-дизайнеры. Хостинг хостингом, но далеко не каждый сайтостроитель горит желанием становиться продвинутым WEB-программистом. Вместо того, чтобы потратить многие часы на изучение соответсвующего языка (например PHP), выявление непонятных ошибок и серверных сбоев, многие предпочтут уделить все внимание своему детищу, составлению качественного контента для него. Т.е. получить результат легко и сразу.

Такова человеческая природа: часто цель остается недостижимой не из-за трудностей на пути, а из-за боязни самого пути, нежелания двигаться по нему. Хочется добиться всего простыми средствами, без лишних затрат. Моя разработка призвана помочь и им тоже!

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

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

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

Не спорю, что MS Word позволяет творить чудеса в плане поиска и автозамены. Вот только наш Великий и Могучий вносит свои коррективы - падежи, склонения, числа... На одно имя собственное приходится делать около десятка замен. Еще хорошо, если имя не окажется частью какого-либо слова. Иначе удовольствие по вычитыванию исправленного текста обеспечено надолго!

Язык AML позволяет делать вставки, которые после компиляции (сборки) заменяются на требуемые фрагменты текста. Так, употребляя вместо имени героя вставку с указанием падежа, в случае переименования потребуется всего-лишь изменить его один раз в самом начале!

А механизм разбиения романы на главы, каждая из которых состоит из сцен? Можно сразу спроектировать структуру книги, постепенно наполнять ее текстом, корректируя в случае необходимости. Такой подход может ускорить создание шедевра раза в два!



ПРИМЕР 1: Типовой шаблон
http://www.alex-world.ru/aml/primer01.htm

Язык AML предоставляет значительную свободу в плане вариации сборки страниц. Так, обычно имеет место чередование фрагментов форматирования и наполнения. В зависимости от ленности разработчика, выделим два варианта шаблона.


ПРИМЕР 2: Оформление дайджеста, FAQ или ленты новостей
http://www.alex-world.ru/aml/primer02.htm

"Дайджест" - представляет собой небольшой сборник описаний новостей (уже произошедших) и анонсов событий (еще предстоящих).




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

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

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

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

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

Намеченные перспективы:

В идеале, мне хотелось бы получить полностью автоматизированную конструкцию: все параметры, имена и значения задавать в текстовом файле, который подключется к шаблону, и чтобы все компилировалось сразу в готовый выпуск!

А для Ленты Новостей - чтобы автоматически считывалось, допустим, ТОП 5 последних новостей, прочие же перенаправлялись бы прямиком в архив. И чтобы не нужно было следить за их разбиением на группы самому, а задать простое правило!



ПРИМЕР 3: Писательские изыски
http://www.alex-world.ru/aml/primer03.htm

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

А разбиение огромной книги на главы? Как еще можно быстро вспомнить, в каком эпизоде описывалась сцена знакомства со второстепенным персонажем или битва с драконом? Как скелетик по косточкам, так и структура романа может быть сформирована до его написания. Потом будет легко вносить изменения, а труд по написанию будет состоять в наполнении текстом очередной миниатюры!



ПРИМЕР 4: Сборка страницы со сложной структурой
http://www.alex-world.ru/aml/primer04.htm

Как правило, web-проекты состоят из достаточно сложных структур и множества вложенных друг в друга элементов. Как результат, HTML-код становится очень громоздким и практически непригодным для понимания. Форматирование, отступы, комментарии не в силах полностью решить задачу обеспечения наглядности внутреннего устройства документа.

AML опять же позволяет на порядки снизить сложность за счет разбиения всей конструкции на фрагменты небольшого размера. А совсем простая директива вложенности позволяет прямо-таки творить чудеса!



ПРИМЕР 5: Реализация проекта из нескольких файлов
http://www.alex-world.ru/aml/primer05.htm

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

Как я раньше говорил, мой сайт содержит около 500 web-страничек. Даже с применением моей технологии проектный файл *.aml получится слишком большим, поэтому я делаю разбиение на разделы и подразделы. К примеру, вот мой раздел проекта AML (пока всего 11 файлов):



По какому принципу разбивать на разделы? Я очень советую делать это по директориям, в которых лежат проекты разных тематик. Но даже внутри одного большого проекта советую отдельно выделить наиболее громоздкие подразделы (новости, статьи, резюме, ... , все то что имеет тенденцию к разростанию). Тогда удастся более-менее управляться с проектом!


Намеченные перспективы:

Видели в примере листинга эту длинную ленту повторяющихся фрагментов? Конечно же, это легко делается простым копированием + исправление заголовков и другого текста. Но это же задает и направление по дальнейшему развитию языка AML.

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

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



ПРИМЕР 6: Файловая структура проекта
http://www.alex-world.ru/aml/primer06.htm



ПРИМЕР 7: Универсальные относительные адреса
http://www.alex-world.ru/aml/primer07.htm



ПРИМЕР 8: Меню с выбранным текущим пунктом
http://www.alex-world.ru/aml/primer08.htm



ПРИМЕР 9: Оптимизация сборки большого проекта
http://www.alex-world.ru/aml/primer09.htm



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


Ссылки:

Вы можете скачать AML-редактор 1.1 с моего сайта:
http://www.alex-world.ru/aml/

Или же я могу прислать по e-mail: отправить запрос

Кто хочет попробовать AML в своих проектах, приглашаю в специальный раздел форума, где я с удовольствием отвечу на ваши вопросы и помогу с реализацией:
http://www.newheroes.forum24.ru/?0-1

Список выпусков  > Следующий выпуск  >>>

∙ Форумы ∙
∙ Космос ∙
∙ Игры ∙
∙ Heroes ∙
∙ WEB ∙
∙ AML ∙
∙ Delphi ∙
© Copyright 1998 – 2009 by Alex_soldier
Сайт сделан по технологии AML

РАЗДЕЛЫ САЙТА

Главная страница Мира Идей
Лаборатория WEB-мастера
Уголок Программиста
Игровая Зона
Статьи о Космосе и Вселенной

РАССЫЛКИ САЙТА
(Content.Mail.Ru)

Обзор интересных рассылок

Web-мастерство для каждого

Космос: Новости Вселенной

Чего нам не хватает в играх?

Heroes: только Новые Идеи

HTML, CSS, JS в примерах

Самые-самые убойные
анекдоты сети




Получить архивы на e-mail (RAR ~ 2 Мб)