Технология MVC в высоконагруженных проектах Андрей Шетухин Илья Космодемьянский Классическая MVC Модель Данные Представление Результат Запросы Данные Контроллер БД Результат Шаблоны Критика Наличие готовых решений Быстрая разработка Повторное использование кода Единая точка входа.
Download
Report
Transcript Технология MVC в высоконагруженных проектах Андрей Шетухин Илья Космодемьянский Классическая MVC Модель Данные Представление Результат Запросы Данные Контроллер БД Результат Шаблоны Критика Наличие готовых решений Быстрая разработка Повторное использование кода Единая точка входа.
Технология MVC в
высоконагруженных проектах
Андрей Шетухин
Илья Космодемьянский
<СУП>
Классическая MVC
Модель
Данные
Представление
Результат
Запросы
Данные
Контроллер
БД
Результат
Шаблоны
Критика
Наличие готовых решений
Быстрая разработка
Повторное использование кода
Единая точка входа в систему
Не работает под большими нагрузками
Проблемы с масштабированием
Сложность разработки моделей и
контроллеров
Отказаться от MVC?
Высокая скорость работы
Быстрое исправление
локальных ошибок
Сложность поддержки
Проблемы повторного использования кода
Трудоемкость внесения изменений
Модифицировать MVC!
Данные
Представление
Данные
Модель
Вывод
Запросы
Данные
Контроллер
БД
Результат
Процессор
Шаблоны
Процессор
- Обработка данных без существенного
изменения объектов
- Простые операции делать быстро
- Реализация общего функционала в
одном месте
- Перераспределение нагрузки
Дополнительные требования
- Высокая скорость работы
- Интерфейсы к популярным языкам
программирования
- Простота использования в проектах
- API для разработки расширений
- Кроссплатформенность
- Расширяемость функционала
Шаблонизаторы
<CTPP/> - быстрый шаблонизатор
Простое API
Расширяемость языка шаблонов
Переносимость
Компиляция и кеширование шаблонов
Разделение одного байткода между процессами
Высокая скорость работы
Защищенность среды исполнения
Основные компоненты
Виртуальная машина
Библиотека функций
Компилятор шаблонов
Коллектор результатов
Кэш байткода
Программный
интерфейс
- Система загрузки
шаблонов
-
Функции API
шаблонизатора
Данные
Шаблон
Виртуальная
машина
Результат
Байт-код
Кэш
Компилятор
Результаты тестирования
5 – CTPP2
4 – HTML::Template::JIT
3 – HTML::Template::Pro
2 – HTML::Template
1 – Template:Toolkit
Будущее
-
Поддержка синтаксиса TemplateToolkit
ЭЦП шаблонов
Компиляция в исполняемый двоичный код
Развитие библиотеки встроенных функций
Программный интерфейс к Java и RoR
Поддержка платформы Windows
Вопросы?