<ctpp/> главная .:. скачать .:. документация .:. faq .:. разработчикам  
o Главная
    Скачать!
    Установка

o Помощь
    Что такое CTPP?
    Как работает CTPP?
    Онлайн-документация
    FAQ

o В действии
    Проекты
    Первые шаги
    Как сделать?..
    Разработчикам

o В разработке
    Тесты производительности
    Расписание
    Разработчики

    Благодарности




Как работает CTPP2?

Модель MVC

Как известно, в моделе MVC есть три основных сущности: набор моделей, контроллер моделей и представление данных.

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

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

Недостатки MVC и пути их устранения

С ростом нагрузки на систему накладные расходы на коммуникацию между уровнями абстракции все увеличиваются и наступает момент, когда классическая модель MVC перестает работать. По крайней мере, перестает работать без качественного увеличения мощности вычислительной системы. Зачастую в высоконагруженных проектах увеличение вычислительной мощности на 20-30% означает покупку нескольких десятков компьютеров. Очевидно, что подобный подход ущербен и необходим поиск менее затратного по ресурсам решения.

Логично доработать модель MVC таким образом, чтобы часть информации обрабатывалась в представлении. Иными словами, чтобы основной набор данных по-прежнему создавался набором моделей, а окончательная подготовка к выводу производилась в специальном блоке - процессоре данных.

Процессор данных - часть представления, осуществляющая простую обработку данных перед их непосредственным выводом. Например, - сформировать из числа, заданного в unixtime дату в виде ДД-ММ-ГГГГ.

Арихитектура CTPP

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


Почему была выбрана архитектура с виртуальной машиной и компилятором? Дело в том, что при таком подходе можно реализовать часть кода раз и навсегда и при регулярном усложнении синтаксиса шаблонов не пересобирать библиотеку, содержащую функции представления. Откомпилированный исполняемый код (байткод) требует только того набора объектов в памяти, что необходим для работы, вдобавок, байткод орчень легко кешировать и разделять между процессами.
Кроме того, некоторые редко изменяемые шаблоны можно хранить только в двоичном виде и вовсе не тратить время на их компиляцию - это решение существенно ускоряет скорость работы системы.


Copyright © 2003 - 2008 CTPP Dev Team.