21.01
❗️Архитектура ПО (Software Architecture) - Описывает как приложение строится включая его компоненты, как они взаимодействуют друг с другом, окружение в котором они работают.
❗️Архитектор ПО (Software Architect) - Эксперт в программном обеспечении который строит дизайн высокоуровневых компонентов, учитывая технические стандарты, инструменты, архитектурные принципы и платформы которые будут использованы.
Для лучшего понимания термина скажу, что слово «архитектор» происходит от древнегреческого слова arkitekton, ἀρχι- (archi-, «главный») + τέκτων (téktōn, «строитель»). Архитектор ПО - главный строитель ПО.
👉Архитектура программного обеспечения - это решения, а не структура.
Архитектура ПО требует внимания не только к структуре и поведению, но и к обоснованию решений. Порой знание пути которое привело к данному решению может сказать больше, чем схемы и структуры компонентов нарисованные на доске. Причина в том, что решения редко бывают однозначными; почти каждое решение это компромисс между конкурирующими альтернативами. Одной из причин влияющих на принятие правильного решения является умение понимать и предсказывать какие "силы" влияют на систему. Для этого архитекторы ПО должны оставаться разработчиками. Проектирование требует достаточных знаний системы, чтобы сформулировать полезные гипотезы о качественных атрибутах, а также опыта для написания кода и разработки тестов (или тесного сотрудничества с членами команды, которые могут это сделать), которые могут оценить эти гипотезы.
👉Архитектура - это навык. Архитектор - это не роль.
На самом деле каждый разработчик это архитектор в миниатюре: каждый раз когда принимает решение о том, какой выбрать алгоритм, паттерн, структуру данных они в той или иной степени влияют на архитектуру. Для повышения качества своей архитектурной работы людям необходимо развить в себе такие качества как внимание к атрибутам качества (масштабируемость, производительность, безопасность, поддерживаемость, ремонтопригодность и тд), умение видеть и решать общесистемные проблемы (видеть проблемы в концепции всей системы, а не отдельного его модуля), понимание жизненного цикла системы, способность найти компромиссный вариант из всех имеющихся, способность учится на опыте и генерировать новые подходы, брать на себя ответственность в принятии решении и обсуждении вопросов качества приложения.
👉Архитектура означает постоянное исследование.
Архитектура современных программных приложений — это фундаментально исследовательская деятельность. Команды, создающие сегодняшние приложения, ежедневно сталкиваются с новыми вызовами: беспрецедентными техническими проблемами, а также предоставлением клиентам новых способов решения новых и различных проблем. Это непрерывное исследование означает, что архитектура не может быть определена заранее, на основе прошлого опыта; командам приходится находить новые способы удовлетворения требований к качеству.
еще контент в этом сообществе
еще контент в этом соообществе
21.01
войдите, чтобы увидеть
и подписаться на интересных профи