Одна из причин, по которой мы применяем архитектурные принципы (скажем, принцип «разделяй и властвуй»), заключается в сокращении сложности и возможности параллельной работы. Это позволяет нам создавать все более крупные системы. Можно ли разделить саму архитектуру на части, над которыми будут параллельно работать разные люди? Джеррит Блау и Фред Брукс пишут о компьютерных архитектурах следующее:
«…если и после применения всех приемов, направленных на то, чтобы задача стала постижимой для одного человека, архитектура все еще остается слишком масштабной и сложной, значит, планируемый продукт слишком сложен, и от его создания следует отказаться. Иначе говоря, компьютерная архитектура должна быть сложной настолько, чтобы ее мог понять один человек. Если один человек не способен спроектировать запланированную архитектуру, то один человек также не сможет ее понять.»
Действительно ли необходимо понимать все аспекты архитектуры для ее использования? Архитектура обеспечивает разделение ответственности, так что в большинстве случаев разработчику или тестеру, использующему архитектуру для построения или сопровождения системы, не обязательно иметь дело с архитектурой в целом – им достаточно взаимодействовать только с теми частями, которые необходимы для выполнения заданной функции. Это позволяет нам создавать системы, непостижимые для разума одного человека. Но прежде чем полностью игнорировать совет людей, построивших IBM System/360, одну из самых долговечных компьютерных архитектур, давайте разберемся, что заставило их выступить с таким утверждением.
No related posts.