ArtReal: На грани иронии

Адрес странички на сайте: http://artreal.pp.ru/theme/nodesign/cms/cms7.html

Задний офис

Центр управления сайтом

    Если сравнивать CMS с айсбергом, то "задний офис" (BackOffice) - эта та часть, которая под водой. Со стороны ее не видно, но влияние этой части - сильное. BackOffice - это кухня вашего сайта, на которой вы готовите свои блюда для посетителей, заходящих с парадного входа. А поскольку грамотный повар формирует кухню под свои привычки, стиль работы и технологию приготовления1, то и "пульт управления" CMS строится по таким же принципам.
    Рассмотрим несколько общих факторов, которые желательно учитывать при проектировании BackOffice.

    Первый фактор - это удобство в работе и соответствие решаемой задаче. Все необходимые линки должны быть под рукой, грамотно расположены и сгруппированы, а формочки - хорошо и удобно спроектированы.
    Второй фактор - независимость BackOffice от структуры БД. По большому счету это значит, что управление не должно быть зависимым от способа хранения данных. Независимость может обеспечиваться виртуализаторами. В этом случае и администратор, и пользователь работают с некоей абстрактной базой данных. Это, кстати, позволяет менять структуру базы без необходимости менять что-то в интерфейсе BackOffice.
typo3 backoffice    Третий фактор - разделение задач. Каждый уровень пользователей CMS должен работать со своим кругом задач. Почему-то бытует мнение, что администратору CMS должны быть доступны все функции - от изменения структуры базы и шаблонов до редактирования контента. В качестве примера возьмем один из лучших CMS - Typo3. Удобство интерфейса и универсальность2 достойны подражания... но у администратора слишком много прав.
    Правильный вариант такой: составляем список всех задач, возложенных на CMS, и делим их по различным группам пользователей. Особенно это актуально, если CMS пользуются несколько человек - без четкого разделения будет бардак и постоянный поиск виновных3.
    Четвертый фактор - быстродействие и сложность. Для BackOffice быстродействие и сложность не является критичным - скрипты могут быть сколь угодно сложными и выполняться без ограничения времени.
    Пятый фактор - устойчивость к ошибкам. CMS должна выявлять ошибки и ляпы пользователей. Например, незакрытые теги, или картинки и таблицы, от которых дизайн расползается. Тексты/публикации желательно удалять в корзину (или маркировать как удаленные) - мало ли, через пять минут выяснится, что вы удалили не тот текст.
    Очень помогает preview, позволяющий увидеть, как будет выглядеть публикация с вашим текстом на сайте - по горячим следам проще исправлять ошибки.
    Шестой фактор - работа транзакциями4. Это означает, что изменения на сайте появляются только после нажатия "большой красной кнопки". За это время можно трижды отредактировать текст, дважды поменять название рубрики... но это никак не скажется на сайте со стороны посетителя. Либо "отменить изменения" - в таком случае CMS откатывает назад все произведенные изменения - "поигрались и хватит".

    Но самое интересное - это технология "редактирование на месте", реализованное еще в dos-овских программах.

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

(a) Контент: Vadim Artamonov, 1999 - 2019 Anno Domini