Статьи
August 14, 2023

Паттерны программной архитектуры: Введение.

Очень часто разработчики начинают кодировать приложение, не имея формальной архитектуры. Не имея четкой и хорошо проработанной архитектуры, большинство разработчиков и архитекторов прибегают к стандартной традиционной многоуровневой архитектуре (так называемой n-уровневой архитектуре), создавая неявные уровни путем разделения модулей исходного кода на пакеты. К сожалению, результатом такой практики часто становится набор неорганизованных модулей исходного кода, в которых отсутствуют четкие роли, обязанности и взаимосвязи друг с другом. Такую архитектуру принято называть антипаттерном "большой клубок грязи".

Приложения, не имеющие формальной архитектуры, как правило, жестко связаны между собой, хрупки, трудно поддаются изменениям, не имеют четкого видения и направления развития. В результате очень сложно определить архитектурные характеристики приложения, не имея полного представления о внутреннем устройстве каждого компонента и модуля системы. Трудно ответить на основные вопросы, касающиеся развертывания и сопровождения: Масштабируется ли архитектура? Каковы характеристики производительности приложения? Насколько легко приложение реагирует на изменения? Каковы характеристики развертывания приложения? Насколько отзывчива архитектура?

Архитектурные паттерны помогают определить основные характеристики и поведение приложения. Например, некоторые архитектурные паттерны естественным образом подходят для высокомасштабируемых приложений, а другие - для приложений, отличающихся высокой гибкостью. Знание характеристик, достоинств и недостатков каждого архитектурного паттерна необходимо для того, чтобы выбрать тот, который отвечает конкретным потребностям и целям вашего бизнеса.

Как архитектор, вы всегда должны обосновывать свои архитектурные решения, особенно когда речь идет о выборе того или иного архитектурного паттерна или подхода. Цель данного отчета - дать вам достаточно информации для принятия и обоснования такого решения.