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