Технологии MVC в высоконагруженных проектах

advertisement
Технология 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
Вопросы?
Download