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