Это старая версия Справка/QS-Концепции/Не-Вики-А-CMF за 2017-11-11 12:05:09..

Не Вики а Content Management Framework


Хотя QS и несет в своей основе Wiki-движок Wacko Wiki, по умолчанию предполагается, что она будет использоваться в другой сфере.
QS по умолчанию – это система для одиночной (администратором) или коллективной (небольшим, закрытым коллективом) работы над данными.

Какие это системы:
  • Где администратор ведет базу данных чего-то, и данные могут просматривать незарегистрированные пользователи (типичные новостные сайты, и т.д.)
  • Системы архивов (несколько человек ведет архив, документацию, доступные всем)
  • Системы дистанционного обучения (есть администратор, есть преподаватели с меньшими правами, и есть с минимальными правами слушатели курсов)

Как реализуется эта концепция?
  • После установки системы по умолчанию:
    • Регистрация закрыта; войти в систему может только администратор.
    • Только администратор может устанавливать сервисы, регистрировать пользователей
    • Даже для зарегистрированных пользователей закрыты: правка страниц, закачка файлов, комментарии
    • Закачка файлов, комментарии по умолчанию не используются.
  • Если нужно дать права на доступ к редактированию, то:
    • Администратор регистрирует конкретного пользователя
    • Конкретно выдает ему права на правку той или иной страницы (или включает его в группу Writers, которой доступна правка страниц)
  • Основным инструментом является написание экшнов для вывода данных – т.е. разработчик пишет любой текст на странице (что упрощает администрирование текстовых элементов) + добавляет на эту страницу экшн, который отвечает за ввод/вывод динамической информации из базы данных.
  • Для работы с данными администратор ставит расширения AdvOntology и моделирует нужную структуру базы данных, автоматически получая инструменты для её редактирования. Далее он может создать небольшие экшны для вывода этой информации в нужном ему виде в публичный доступ.

Т.е. в каком-то смысле после установки QS администратор дешево и быстро получает заготовку, в которой уже есть: страницы с вики-форматированием, регистрация пользователей, установки прав, удобные инструменты для БД (AdvOntology, AdvTableViewer). Либо ему этого хватает, либо он что-то пытается дописать сам.

Сравнения с CMS и фреймворками


Давайте сравним концепцию QS с типичными CMS и фреймворками.

Если сравнивать с CMS (Drupal, Wordpress, Joomla и пр.)
  • + QS значительно более компактен:
    • + поэтому он прост – существуют только страницы и пользователи
    • + поэтому он быстр
    • + поэтому расширения для него легче писать и отлаживать (в традиционных CMS очень сложно понять, что с чем конфликтует)
  • + QS ориентирован на то, что страницы содержат и текст, и динамический код. В традиционных CMS любой динамический код должен быть сильно конфигурируем, чтобы иметь возможность вывести предупреждение, доп. информацию и т.д. Здесь это не требуется – всё собирается из небольших кусочков.
  • – QS содержит мало расширений и возможностей по умолчанию. Для хорошей сборки сайта необходим разработчик.
  • – QS ориентирован на администрирование сайта специалистом (хотя это может быть перенастроено)

Если сравнивать с фреймворками (Yui, Zend и пр.)
  • + QS представляет собой УЖЕ готовый сайт, который можно развивать с помощью определенной функциональности. Т.е. не надо каждый раз писать одни и те же страницы регистрации, управления правами, администрирования БД, установки сервисов.
  • + QS определяет четкую структуру БД и сайта – например, всё в целом является страницами. Это означает, что:
    • расширения в целом будут совместимы друг с другом
    • приходящий разработчик сможет разобраться в том, как что с чем взаимодействует. Каждая инсталляция похожа на другую, не использует оригинальных решений
  • + QS компактен. Ядро занимает несколько файлов (в отличие от сотен в Zend, который многоцелевой), и он работает очень быстро.
  • – QS по умолчанию имеет мало функций по сравнению с фреймворками
  • – QS не позволяет писать роутинги (определение того, как что будет показываться по определенным адресам) вручную – т.е. заставляет следовать своей модели
  • – QS не позволяет гибко реагировать на ошибки (хотя потенциально это можно сделать)