Красивые архитектуры прокладывают путь наименьшего сопротивления для сопровождения, сохраняющего архитектуру и замедляющего действие закона системной энтропии, который гласит, что стечением времени система становится менее организованной. Программисты, занимающиеся сопровождением, должны хорошо понимать архитектуру, чтобы вносимые изменения соответствовали исходному замыслу, а не увеличивали энтропию системы.
Один из способов основан на применении понятия метафоры из гибких методологий – простого способа описания, «на что похожа» архитектура. Возможны и другие решения, например обширная документация и угрозы увольнения, хотя обычно это действует недолго.
И все же, как правило, сопровождение основано на качественных инструментах, особенно для генерирования системы. Красивая архитектура должна оставаться красивой.
Эти принципы тесно связаны друг с другом. Принцип «один факт в одном месте» может работать только при наличии автоматического распространения, которое в свою очередь эффективно лишь тогда, когда архитектура учитывает процесс построения. Аналогичным образом конструирование обобщенных решений и минимизация механизмов способствуют соблюдению принципа «один факт в одном месте». Сопротивление энтропии обязательно для сопровождения архитектуры с течением времени, но оно зависит от того, были ли учтены в архитектуре процесс построения и поддержка распространения. Если не учесть направление наиболее вероятного роста системы, архитектура станет нестабильной и в конечном итоге развалится под воздействием экстремальных, но прогнозируемых обстоятельств. А объединение минимальности механизмов с концепцией конструирования обобщенных решений означает, что в красивых архитектурах обычно представлен ограниченный набор шаблонов, позволяющих строить произвольные расширения системы, своего рода «расширение по шаблону».
Related posts: