o Главная
Скачать!
Установка
o Помощь
Что такое CTPP?
Как работает CTPP?
Онлайн-документация
FAQ
o В действии
Проекты
Первые шаги
Как сделать?..
Разработчикам
o В разработке
Тесты производительности
Расписание
Разработчики
Благодарности
|
 |
Как работает CTPP2?
Модель MVC
Как известно, в моделе MVC есть три основных сущности: набор моделей, контроллер моделей и представление данных.
Классическая реализация полностью изолирует эти сущности друг от друга: считается, что в (П)представлении никакие данные не обрабатываются, а происходит только наложение полученной объектной модели на шаблон, (К)контроллер используется только для указания списка выполняемых моделей, а внутри (М)моделей формируется исключительно абстрактный набор данных.
Подобный подход позволяет разделить труд верстальщика, программиста и менеджера, большое количество кода можно использовать повторно, вдобавок, у проекта есть единая точка входа что облегчает его обновление и развитие.
Недостатки MVC и пути их устранения
С ростом нагрузки на систему накладные расходы на коммуникацию между уровнями абстракции все увеличиваются и наступает момент, когда классическая модель MVC перестает работать. По крайней мере, перестает работать без качественного увеличения мощности вычислительной системы. Зачастую в высоконагруженных проектах увеличение вычислительной мощности на 20-30% означает покупку нескольких десятков компьютеров. Очевидно, что подобный подход ущербен и необходим поиск менее затратного по ресурсам решения.
Логично доработать модель MVC таким образом, чтобы часть информации обрабатывалась в представлении. Иными словами, чтобы основной набор данных по-прежнему создавался набором моделей, а окончательная подготовка к выводу производилась в специальном блоке - процессоре данных.
Процессор данных - часть представления, осуществляющая простую обработку данных перед их непосредственным выводом. Например, - сформировать из числа, заданного в unixtime дату в виде ДД-ММ-ГГГГ.
Арихитектура CTPP
Архитектура шаблонизатора представлена на рисунке и состоит из четырех подсистем: компилятора шаблонов, который переводит текст шаблона страницы в байт-код, виртуальной машины, исполняющей байт, системы кэширования шаблонов и библиотеки функций процессора данных.
Почему была выбрана архитектура с виртуальной машиной и компилятором? Дело в том, что при таком подходе можно реализовать часть кода раз и навсегда и при регулярном усложнении синтаксиса шаблонов не пересобирать библиотеку, содержащую функции представления. Откомпилированный исполняемый код (байткод) требует только того набора объектов в памяти, что необходим для работы, вдобавок, байткод орчень легко кешировать и разделять между процессами.
Кроме того, некоторые редко изменяемые шаблоны можно хранить только в двоичном виде и вовсе не тратить время на их компиляцию - это решение существенно ускоряет скорость работы системы.
|
|