В шаблонах архитектуры корпоративных приложений Мартин Фаулер пишет:
Эта книга, таким образом, о том, как вы
разложить корпоративное приложение
на слои и как эти слои работают
все вместе. Самое нетривиальное предприятие
приложения используют многоуровневую
архитектура какой-то формы, но в некоторых
ситуации другие подходы, такие как
трубы и фильтры, ценны. я
не входи в такие ситуации,
сосредоточившись вместо этого на контексте
многоуровневая архитектура, потому что это
наиболее широко полезен.
Какие существуют шаблоны для создания неуровневых приложений / частей приложения? Возьмите механизм статистического моделирования для финансового учреждения. Может быть слой для доступа к данным, но я ожидаю, что большая часть кода будет в одном слое. Вы все еще ожидаете увидеть паттерны Gang of Four в таком слое? Как насчет доменной модели? Вы бы использовали OO вообще, или это было бы чисто функционально?
Цитата упоминает трубы и фильтры как альтернативные модели слоям. Я легко могу представить такой движок, использующий каналы как способ сломать обработку данных. Какие еще шаблоны существуют? Существуют ли общие шаблоны для таких областей, как планирование задач, агрегация результатов или распределение работы? Какие есть альтернативы MapReduce?