Данная статья является продолжением поста “Программная архитектура”. Ознакомьтесь с ним перед тем, как приступить к изучению.
Простейшим архитектурным решением, является “Сценарий транзакции” (автор Мартин Фаулер). Это решение предлагает использовать несколько скриптовых сценариев, обрабатывающих запросы пользователя к системе и возвращающих ему результат этой обработки. Важным условием здесь является то, что сценарии отвечают за весь производственный цикл ответа, а не делегируют обработку другим частям приложения.
Рассмотрим несколько примеров:
Подобный подход чаще всего используется в небольших проектах и отличается следующими возможностями:
- Быстрая разработка, за счет исключения из архитектуры дополнительных компонентов, таких как модели, сервисы и т.д.
- Простота изучения (только до определенного момента), основанная на аккумуляции всей логики приложения в скрипты транзакций
К сожалению применение этой архитектуры в средних и крупных проектах влечет следующие проблемы:
- Дублирование кода, вызванное отсутствием гибкости архитектуры и невозможностью частичного вынесения логики из сценариев для повторного использования
- Раздувание сценариев (как следствие предыдущего пункта) и усложнение процесса их изучения