Функциональность, очевидно, имеет крайне незначительное влияние на выбор структур данных, модулей, применение тактик и другие архитектурные решения. В то же время заданные свойства системы, такие как производительность, модифицируемость, безопасность и прочие, непосредственно воздействуют на архитектуру проекта. Каждое решение, каждая структура, выбранная архитектором, будет усиливать одни свойства системы и подавлять другие.
Для достижения системой заданных свойств и, что немаловажно, достижения их предсказуемым образом, архитектор должен внимательно взвешивать каждое принимаемое решение в терминах усиления и ослабления системных характеристик. Если этого не учесть до момента написания кода, уходит возможность последовательного и систематического достижения нужных свойств. Перед очами архитектора при принятии решения должны незримо возникать весы, равновесие которых колеблется между свойствами, желаемыми stakeholder-ами, и предлагаемыми структурами.
Для достижения системой заданных свойств и, что немаловажно, достижения их предсказуемым образом, архитектор должен внимательно взвешивать каждое принимаемое решение в терминах усиления и ослабления системных характеристик. Если этого не учесть до момента написания кода, уходит возможность последовательного и систематического достижения нужных свойств. Перед очами архитектора при принятии решения должны незримо возникать весы, равновесие которых колеблется между свойствами, желаемыми stakeholder-ами, и предлагаемыми структурами.
Anthony Lattanze, "Architectering software intensive systems. A Practioner's Guide"
Comments
Post a Comment