tgoop.com/testing_and_life/1665
Last Update:
Что такое архитектура ПО?
Когда начинают рассказывать про архитектуру ПО, ее часто сравнивают с архитектурой зданий и я тоже воспользуюсь этой метафорой. В Архитектуре ПО тоже различают разработку архитектуры как процесс и архитектуру как документацию. А еще есть архитекторы, которые этим всем занимаются. Они могут быть выделенными специалистами, а могут совмещать эту роль с другой работой.
Если мы строим новый дом с нуля, то нам нужен проект. Если же мы ремонтируем квартиру, то нам нужен план, чтобы понимать что мы будем менять и как работать. Или же мы хотим продать наше здание и тогда нам нужен архитектурный план, чтобы показать покупателю все в деталях.
Аналогично и с архитектурой приложения. Иногда мы создаем систему с нуля и проектируем , как будет устроено наше приложение. Но чаще мы работаем уже с существующей системой, где уже есть какие-то компоненты, взаимосвязи и ограничения. И чтобы в ней что-то изменить или доделать, нам надо знать как она устроена. А бывает, что никто про архитектуру и не думал, все как-то исторически сложалось, но если есть приложение, то у него всегда есть какая-то архитектура. И мы можем выяснить как же все работает на самом деле и зафиксировать это.
Можно ли делать что-то без продумывания архитектуры?
Можно! Но чем сложнее система, чем больше разных компонентов и взаимодействий она включает, чем больше к ней разнообразных требований от разных групп заинтересованных лиц, тем сложнее. Забор можно поставить и без плана, а вот с ремонтом квартиры будет уже сложнее. Не говоря уж о строительстве дома.
В книге Head First Software Architecture авторы предлагают рассматривать архитектуру ПО, как паззл из четырех деталей:
В следующих постах расскажу про них поподробнее.
Часть 1/4
#книги
#ZenTest