25 февраля 2009 vera vera

Правила, на которых построен Друпал

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

Правила Друпала

Система управления сайтами Друпал создана на правилах. Правила простые и пронизывают Друпал насквозь.

Правило 1. Сущность статья. Есть статья (node, “узел” в терминологии Друпала). Она может быть разного вида (статья на форуме, в дневнике, голосование), но во всех случаях у нее есть свой отдельный адрес.

Правило 2. Сущность комментарий. К каждой статье можно давать комментарии, вне зависимости от ее вида. Тема комментария помечена своим собственным внутренним адресом.

Правило 3. Сущность классификация (таксономия). Можно вводить на сайте разные классификации. Например, ввести ботаническую классификацию. Или классификацию рас и народов. Классификация состоит из древообразного списка рубрик. Каждую статью можно пометить одной или несколькими рубриками определенной классификации. В каждой рубрике накапливаются статьи, помеченные этой рубрикой.

Правило 4. RSS-канал. Каждая страница, на которой собраны анонсы (статей в дневнике, статей в рубрике классификации, рубрики форума), имеет свой RSS-канал и возможность подписки.

Правило 5. …

Правила в Друпале вводятся продуманно. И все правила прекрасно накладываются друг на друга. Например, если будет добавлен новый тип статей под названием “Товар”, то он автоматически получит все возможности, которыми обладают другие виды статей – возможность комментариев, возможность раскладывать по рубрикам классификации, свой RSS-канал, возможность подписки на новые статьи с товаром…

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

Отличие от обычных CMS

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

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

Пример “Отличие правил от фактов”

Маленький мальчик Артурик с азартом дерет за волосы девочку Карину:
023-arturik.jpg

Ему можно сказать факт: “Артурик не должен обижать Карину”. Тогда он не будет драть Карину, но будет продолжать обижать других девочек. И будет спокойно смотреть, как другие мальчики обижают девочек. Если опираться на факты, то при каждом подобном случае Артурику придется объяснять: “Ты не должен драть и эту девочку”.

Поэтому когда Артурик чуть подрастет, ему вместо факта объясняют правила: “1. Ты – мальчик. 2. Карина – девочка. 3. Мальчики никогда не обижают девочек.”.

Если Артурик затрудняется уверенно распознавать мальчиков и девочек, то можно объяснить ему еще правило: “4. Если в платьице – то это девочка.”. А когда Артурик подрастет и начнет различать мальчиков и девочек по лицу, то он будет самостоятельно соблюдать правило “мальчики не обижают девочек”.

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

Автор сего замечательного примера

Что еще почитать:

Очень вкусное предложение от Артема Беляйкина для тех, кто ведет свой блог - Каждому блоггеру - по “Чемодану”

Сравнение от Anfi - Блогер и шахтер, что общего?

Комментировать:

Имя
E-mail
Комментарий
Код

введите код: