Zanuda
Главная   Планы   Разное  
Главная »Инфосвалка

Что нового принес Эксперимент?

6 декабря 2008 г.

Движок, созданный для одного сайта – вещь малополезная. Его мощь проявится во многообразии.

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

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

Впрочем, отвлекаемся. Не в одних шаблонах дело. Структурно сайты тоже бывают ой какие разные, и во многих случаях нужно отразить структуру даже в ссылках. Одно время в моде была псевдостатика, имитирующая вложенные поддиректории. Здесь главное – сохранить связь верхнего раздела и подразделов, так сказать «отцов и детей». Это не достигается тупой трансляцией динамических адресов с разделением параметров слэшами, здесь нужно вмешательство в алгоритм формирования ссылок. Каждая ссылка должна включать «имя предка», что требует некоторого усложнения.

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

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

Именно этого сейчас не хватает движку, чтобы появилась возможность строить на нем действительно крупные сайты с разветвленной структурой разделов. Начнем дописывать, куда ж деться... А дизайн интерьера не изменится, только архитектура немного причудливее станет. Необычная архитектура на марше, так сказать. Зато будет возможность реализовать и ссылки на псевдопапки. Пригодится и такой вариант, главное – разнообразие.

Инфосвалка

28 ноября 2008 г.
Следующая ступенька бесконечной лестницы. Раздача файлов – а вдруг пригодится...

17 ноября 2008 г.
Продолжаем расширять возможности. А как насчет плагинов? Иногда это бывает очень нужно.

26 октября 2008 г.
Новость первая, надоевшая донельзя. Она постоянно с одной и той же датой.