Книга знаний

Инф. технологии

Mista Engine 2. Документация движка

Документация по новому движку для замечательного форумаАвтор статьи: kot_bcc | Редакторы: Asmody, Волшебник, Nirvana
Последняя редакция №24 от 21.01.13 | История
URL: http://kb.mista.ru/article.php?id=781

Ключевые слова: Волшебный форум, Миста, mista, описание, engine


Требования к движку


Версия 2.0

      Внешние интерфейсы


      Движок форума должен поддерживать следующие внешние интерфейсы:
      • HTML/AJAX
        Данный интерфейс является основным для входа на форум и общения, а также для администрирования форума.
        Интерфейс обеспечивает возможно более полное соответствие HTML-стандарту и корректное отображение HTML-страниц в текущих свежих релизах следующих основных web-браузеров:

        Интерфейс построен на идеологии визуальных форм (страниц) с отделённым от содержания дизайном. Все формы и варианты оформления описываются декларативно, хранятся в каталоге форм в БД либо на компьютере пользователя и создаются по мере необходимости в браузере пользователя специальным скриптом - активатором форм. Механизм управления формами предусматривает управление версиями. Формы (страницы) состоят из набора контейнеров-панелей, содержащих примитивы. Панель и примитив - основные элементы интерфейса. Примитивы создаются разработчиками движка. Пользователь (и разработчик) может, с помощью дизайнера форм создать форму, разместить на ней одну или несколько панелей. На панелях можно размещать любые примитивы из набора предопределенных.
        Основными примитивами являются:
        • Список (таблица)

        • Ссылка
        • Кнопка

        • Редактор
        • Объект



        Интерфейс включает следующий набор предопределённых форм:
        • Список тем
        • Список сообщений
        • Список пользователей
        • Личная карточка пользователя

        • Персональные настройки

        • Расширенный редактор сообщения

        • Журнал действий

        • Панель управления правами

        • Пульт разработчика

        • Дизайнер пользовательских форм
        • Дизайнер оформления


        Неотсортированные требования (должно отсюда исчезнуть):
        • Максимальный переход на AJAX и технологии Web 2.0

        • Форма ввода сообщения по аналогии с формой ввода темы
        • Дата рождения в личную карточку

        • Более гибкая персональная настройка внешнего вида и поведения форума (личные настройки)
        • Возможность форматирования сообщений с защитой от злоупотреблений

        • Возможность прицепления файлов / картинок к сообщениям (частично реализовано)
        • Оценка полезности сообщений участниками

        • Аватары участников по личной настройке (частично реализовано)
        • Панель администрирования форума

        • Возможность посетителям обратить внимание модераторов на конкретный пост/ветку (кнопка "Пожаловаться")
        • Запрос причины на удаление / закрытие / утопление ветки

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

        • Редизайн главной страницы Книги знаний
        • Новые теги для оформления статей в Книге знаний

        • Якоря в статьях для гиперссылок
        • Фильтрация статей по автору / редактору.

        • Теги для именованных гиперссылок
        • Редизайн статической версии Базы знаний

        • Раскраска фрагментов программ на разных языках

      • XML/RSS/SOAP
        Данный интерфейс является единственным для доступа к слою внутренней логики форума. Остальные интерфейсы используют этот интерфейс для получения/модификации информации. Интерфейс построен на идеологии асинхронных/синхронных веб-сервисов как для внешних, так и для внутренних клиентов.
        Неотсортированные требования (должно отсюда исчезнуть):
        • Поддержка RSS 2.0


      • WAP/КПК
        Данный интерфейс оптимизирован для использования на медленных устройствах с бедными визуальными возможностями. Большая часть возможностей интерфейса предопределена и реализована на стороне сервера, как надстройка над интерфейсом XML/RSS/SOAP. Интерфейс построен на идеологии "бедных" веб-страниц (форм). Динамическое отображение данных обеспечивается обработкой серверных php-скриптов.
        Интерфейс состоит из набора следующих статических (преднастроенных в html) форм:
        • Простой список тем
        • Простой список сообщений
        • Простой список пользователей
        • Простая личная карточка пользователя

        • Простые персональные настройки

        • Простой журнал действий

        Неотсортированные требования (должно отсюда исчезнуть):
        • Модерирование в версии для КПК

        • Сохранение сессии в версии для КПК
        • Распознавание ссылок



      Архитектура


      Движок написан на PHP 5 (предположительно. ЯП и инструменты реализации обсуждаются) с использованием классов и возможностью использования различных СУБД в качестве хранилища данных и метаданных.
      Разработка движка ведётся в рамках концепции MVC (Модель-Представление-Контроллер)
      Архитектурно движок поделен на следующие слои:
      • Слой хранения данных (СХД, Модель)
        Этот слой обеспечивает хранение, архивацию, изменение и различные операции над данными и метаданными, необходимые для работы слоя внутренней логики. Встроенные механизмы безопасности этого слоя обеспечивают целостность и аутентичность используемых данных.

        Что делает:
        • Принимает задания от Контроллера (см.ниже), конструирует запрос, обращается к базе данных, выбирает или изменяет данные
        • Возвращает результат выборки или сигналы об ошибках


        Что знает:
        • Знает об SQL-сервере, структуре БД (таблицы, поля, индексы)

        Чего не знает:
        • Не знает о цели выборки информации, способах её дальнейшего использования
        • Не знает о Контроллере и Представлении



        СХД экспортирует определения следующих классов:
        • Класс Поле

        • Класс Запись
        • Класс Таблица

        • Класс Запрос
        • Класс Представление

        • Класс Индекс
        • Класс Ссылка

        • Класс БД
        • Класс Каталог



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


        Что делает:
        • Принимает данные от Контроллера
        • Компонует итоговый отображаемый результат по шаблону и выдаёт его Контроллеру.


        Что знает:
        • Знает о формате вывода (HTML, TXT, XML) и структуре выходного документа.
        • Знает о языке пользователя, часовом поясе, браузере и пр.

        • Знает о личных настройках пользователя, влияющих на внешний вид (оформление)
        • Знает о CSS-стилях


        Чего не знает:
        • Ничего не знает о Модели (структуре БД, СХД)


        ИС содержит определения следующих сервисов:
        • Класс HTML

        • Класс XML
        • Класс JSON


      • Слой внутренней логики (СВЛ, Контроллер)

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

        Что делает:
        • Принимает входные данные от пользователя (GET, POST)

        • Принимает входные параметры, влияющие на состав данных при выборке или параметры действия пользователя.
        • Проверяет корректность данных от пользователя (обязательные поля, тип, длина).

        • Проверяет права пользователя
        • Если есть ошибки, возвращает сигналы об ошибках пользователю, иначе…

        • Даёт задания на выборку или изменение данных Модели через строго определённый интерфейс и получает от него результат.
        • Даёт задания на оформление через строго определённый интерфейс и получает от него результат.

        • Результат может пройти дополнительную обработку и возвращается пользователю

        Что знает:
        • Знает о бизнес-логике приложения
        • Знает о правах пользователей

        Чего не знает:
        • Не знает о структуре базы данных ничего, кроме интерфейса к СХД
        • Не знает об оформлении ничего, кроме интерфейса к ИС



        СВЛ экспортирует определения следующих классов:
        • Класс Ветка

        • Класс Фильтр
        • Класс Пользователь

        • Класс Роль
        • Класс Действие

        • Класс Форма
        • Класс Сценарий

        • Класс Сервис
        • Класс Список

        • Класс Хранилище
        • Класс Контроль



      • Неотсортированные требования (должно отсюда исчезнуть):
        • Отделение содержания от оформления

        • Оптимизация структуры базы, многоуровневое кеширование, сокращение трафика, перенос нагрузки на клиента (JavaScript)
        • Переход на собственный поисковый движок

        • Настройка прав (ролей) пользователей (хард-модеры, лайт-модеры, ведущие секций, инженеры знаний)
        • Автоматическое формирование статической базы знаний с ветками форума и статьями КЗ

        • Полуавтоматическое формирование выпусков рассылки на основе статей КЗ
        • Рубрикатор Книги знаний

        • Улучшение работы ТелепатБота
        • Новые боты

        • Механизм управления баннерами
        • Фонд для поощрений разработчиков движка, авторов

        • Таргетинг рекламы
        • Установка часового пояса в личных настройках

        • Личные сообщения между участниками

          Инфраструктура разработки


          Инфраструктура позволяет разработчикам эффективно и комфортно поддерживать жизненный цикл форума, как продукта. Инфраструктура включает в себя:
        • Файловое хранилище с поддержкой версионности
        • Форумы для общения и координации

        • Хранилище документов и регламентов с возможностью мультидоступа и обеспечением версионности
        • Инструменты управления требованиями и ошибками

        • Инструменты тестирования
        • Среду разработки



        • Архитектура движка


            Ещё не сделано - Здесь будет документация



          Руководство пользователя


            Ещё не сделано - Здесь будет документация

          Функциональные требования



          Базовый функционал


          • Ветки/сообщения
          • Регистрация ников, сессии, личные карточки

          Модерирование, администрирование


          • Панель управления

          • Роли и права пользователей
          • Модерирование веток

          • Модерирование сообщений
          • Модерирование личных карточек

          • Личные ветки
          • Лента сообщений

          Доп.сервисы


          • Темы пользователя

          • Распознавание ссылок
          • Номера постов (слева и справа)

          • Личные настройки
          • Темы с участием

          • Голосования
          • Распознавание фрагментов программ

          • Плюсики на главной (AJAX)
          • AJAX-обновление в ветках

          Классификация


          • Разделы

          • Секции
          • Метки

          • База знаний


          Поиск


          • Быстрый поиск по заголовкам
          • Поиск по сообщениям

          Некритичные доп.сервисы


          • Рейтинг

          • Статистика
          • Фотогалерея

          • PDA-версия
          • RSS-версия

          • Боты

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика