Прежде всего, следует понять, что в галерее выставлены не произведения искусства, а программные системы, предназначенные для использования. Поэтому начать, вероятно, следует с практичности архитектуры: она должна ежедневно использоваться множеством людей.
Но прежде чем использовать архитектуру, ее необходимо построить. Для нас представляют интерес архитектуры с четко определенной структурой типа «использует», обеспечивающие возможность поэтапного построения, чтобы на каждой итерации строительства создавалась система, пригодная к тестированию и использованию. Кроме того, искомые архитектуры должны обладать четко определенными интерфейсами модулей и внутренне присущей тестируемостью, чтобы ход их построения был предельно прозрачным и очевидным.
Также нас интересуют архитектуры, прошедшие проверку временем. Мы работаем в эру постоянных изменений технической среды. Красивая архитектура должна предвидеть необходимость в изменениях и обеспечить возможность простого и эффективного внесения ожидаемых изменений. Архитектуры, которые мы ищем, должны избежать «горизонта старения» (Klein 2005), при достижении которого затраты на сопровождение архитектуры становятся неприемлемо высокими.
И еще один признак архитектур, включаемых в число кандидатов. Они должны обладать возможностями, которые радуют разработчиков и тестеров, занимающихся построением и сопровождением системы, а также пользователей систем, построенных на основе этой архитектуры. Зачем радовать разработчиков? Потому что это упрощает их работу и повышает вероятность построения высококачественной системы. Зачем радовать тестеров? Потому что в процессе тестирования они пытаются имитировать действия пользователей. Если они будут довольны, то, скорее всего, довольны будут и пользователи. Представьте шеф-повара, недовольного своими кулинарными творениями. Скорее всего, клиенты, которым приходится есть эти творения, тоже будут недовольны.
Related posts: