Фрэймворки веб-приложений

Александр Колосов

Подходы к разработке веб-приложений

Программно-ориентированный подход

Шаблонный подход

  • веб-приложение — это шаблон представления с примитивными средствами описания бизнес-логики.
  • Примеры реализаций подхода:

Гибридный подход

  • примитивные средства описания бизнес-логики шаблонного подхода заменяются мощными средствами программно-ориентированного подхода.
  • Примеры реализаций подхода:

Фрэймворки

Программный каркас (фрэймворк) — готовое программное решение общего назначения, на основе которого, путем расширения существующих компонентов, могут быть разработаны новые программные продукты под конкретную задачу.

Ключевые особенности:

  • инверсия управления (inversion of control, IoC);
  • поведение по умолчанию;
  • расширяемость;
  • код программного каркаса не модифицируется.

Фрэймворки для разработки веб-приложений

Основная задача — упростить разработку за счет предоставления готовых решений рутинных и однотипных задач:

  • разбор запросов,
  • управление сессиями,
  • доступ к БД,
  • шаблонизация, и т.д.

TODO Базовая процедура обработки запроса

Архитектурные подходы

  • MVC:
    • Model
    • View
    • Controller
  • Three-tier architecture:
    • Presentation tier
    • Business logic tier
    • Data tier
  • XML-based

Типы фрэймворков

  • общего назначения;
  • системы управления содержанием (CMS);
  • системы управления обучением (LMS);
  • системы создания Интернет-магазинов;
  • системы организации форумов;
  • Wiki-системы;
  • прочие узкоспециализированные решения.

Возможности веб-фрэймворков

  • Скаффолдинг.
  • Обработка и маршрутизация URL.
  • Абстракция работы с БД, ORM, миграция БД.
  • Генерация представления из шаблона.
  • Средства для выполнения тестирования.
  • Валидация форм.
  • Средства для выполнения аутентификации и авторизации.
  • Кеширование.
  • AJAX.

Разнообразие фрэймворков

  • Ruby: Ruby On Rails
  • PHP: Yii, Kohana, Zend
  • Java: Struts, Spring
  • Python: Flask, Django, Pylons
  • .Net: ASP.NET MVC
  • Scala: Lift
  • Smalltalk: Seaside
  • Whatever:

Паттерны и принципы

  • MVC
  • ActiveRecord
  • Convention over configuration
  • DRY