2. Что это такое?
Каркас(дословный перевод). Это набор готовых
компонентов и моделей, которые облегчают
программирование и делают его более организованным.
Используя веб-фреймворк, можно значительно упростить
работу, необходимую для построения веб-приложений.
Это напоминает построение модели из блоков Лего.
3. Варианты при разработке веб приложения?
• Использовать «чистый» продукт;
• Использовать готовое решение;
• Использовать фрэймворк.
Большинство веб-фреймворков используют паттерн проектирования — MVC(model-view-
controller). Далее по умолчанию будет подразумеваться, что фреймворк работает по такому
паттерну.
4. MVC(model-view-controller)
• Первая часть представляет собой бизнес-процессы (модель).
• Вторая говорит приложению, что делать с потоками данных (контроллер).
• А с помощью третьей части создаются HTML-страницы (вид).
Многие веб-фреймворки, навязывая шаблон MVC, позволяют организовать код так, что изменения в модели, виде или
контроллере оказывают наименьшее воздействие на другие элементы приложения.
5. Зачем?
Выдержка из чьего-то блога...
Создание современного web приложения представляет собой довольно трудоемкую задачу. В книгах или
руководствах все кажется довольно простым. Демонстрационные программы редко бывают больше нескольких
страницы. Все красиво работает… Но, проблема в том, что это учебные примеры. Как только вы попытаетесь
использовать их на практике, вы увидите, как увеличивается объем кода. Рассмотрим обработку данных,
полученных из формы. Мы должны:
- проверить тип полученных значений;
- убедиться, что значения имеют допустимые величины (или формат);
- удалить из текста запрещенные теги (защита от XSS);
- заменить в параметрах SQL-запросов служебные символы на их эскейп последовательности (защита от SQL
Injection);
- если параметры связаны между собой, проверить эти связи;
- и т.д.
Естественно, этот код должен быть не только написан, но и протестирован. Как видите, приличный кусок работы.
Причем в большинстве своем это рутинные операции, которые повторяются практически во всех приложениях.
6. Что нам дает веб фреймворк?
• система шаблонов;
• система кеширования;
• безопасность;
• ORM, API доступа к БД;
• диспетчер URL;
• AJAX;
• автоматическое конфигурирование;
• расширяемость;
• и т.д.
7. Веб фреймворки
• PHP: Zend, CodeIgniter, Kohana, Yii, CakePHP, Symphony;
• Python: Django, Pylons, TurboGears;
• Ruby on Rails;
• Java: Spring Framework, JBoss Seam, Apache Wicket, Apache Click,
Apache Tapestry, Apache Struts;
• и др.