Хорошая архитектура:

Между дизайном (проектированием) и архитектурой нет никакой разницы. Цель проектирования - минимизация человеческих ресурсов, необходимых для создания и поддержки программных продуктов. Мера усилий по написанию и сопровождению - отличный индикатор качества архитектуры. В случае с хорошей архитектурой эта мера невелика на старте и остаётся низкой на протяжении всего срока жизни продукта.

Время, деньги и усилия дают нам возможность оценивать архитектуру ПО физическими показателями. Хорошая архитектура удовлетворяет потребности пользователей, разработчиков и владельцев не только в конкретный момент времени, но и с течением времени. Она гарантирует, что вносимые в ПО изменения не будут затратными.

Хорошая архитектура - всегда “кричащая” (screaming acrhitecture) - она явно заявляет о своем бизнес-смысле в каждой детали своей реализации.

Признак хорошей архитектуры - незначительный объем вносимых в существующий код изменений при реализации новой фичи.

Хорошая архитектура - это разделение кода на компоненты таким образом, что связанность, возникающая при их переиспользовании, создает как можно меньше препятствий для внесения изменений 1

Плохая архитектура:

Пример с нелинейным ростом количества инженеров на фоне приближающейся к нулю эффективности их труда. Соответственно, прирост количества строк кода становится все меньше, а стоимость каждой следующей строки - все больше. Чем-то похоже на посыл Брукса в “Мифическом человеко-месяце” - большее количество разработчиков замедляет разработку.


Связи:

Mental maintainability model by S.Kapralov


  1.  ↩︎