Архитектура | Программирование | Профессиональное развитие
Соер.Клуб - https://t.me/soer_live
По всем вопросам писать на @soerdev
Post #769
2.05K
Роль «Архитектор»
- определение и взаимодействие со стекхолдерами
- определение требований
- определение ограничений
- построение архитектуры соответствующей требованиям и ограничениям
Специализации архитектора:
- product architect – отвечает за поставку продукта внешним заказчикам или стекхолдерам
- domain architect – основные функции по построению архитектуры высокого уровня (бизнес-архитектура, архитектура данных и т.д.)
- solution architect - отвечает за архитектуру на уровне решения
- enterprise architect – высокоуровневые задачи управления предприятием – продажи, маркетинг, продукты, сервисы и т.д.
Подходы к проектированию архитектуры:
- Каскадная модель (waterfall) – модель при которой архитектор проходит стандартные фазы: анализ требований, проектирование, реализация и т.д.
- Итеративный подход – разделение проектирования на итерации (обычно каждая итерация – это отдельный вопрос проектирование) и проход по каждой итерации как по самостоятельному проекту
- Agile - непрерывный цикл проектирования включающий «дизайн», «разработка и тестирование», «развертывание», «анализ».
Важные элементы архитектуры:
- Бизнес цели и «драйверы» - конкретны задачи, которые хочет решить бизнес, а так же способы их достижения;
- Архитектурный контекст – это описание важных элементов архитектуры, которые определяют ее взаимодействие с внешним миром, а так же ее функциональные возможности. Описывается коротко, с достаточной для понимания сути детализацией, без жаргона и скрытой «магии»;
- Архитектурные вопросы – описание того какие проблемы существуют и как они решаются в рамках построения системы, а также ограничения которые нужно учитывать. Описание как правило включает архитектурные цели, функциональные требования, архитектурные требования и т.д.
- Архитектурные принципы – это принципы построения системы, ее каркас, а так же подсказка какие решения в рамках архитектур должны приниматься. Принципы должны быть конструктивными, обдуманными, существенными.
Архитектурные паттерны как правило бьются на три группы:
- архитектурные стили – паттерн описывающий архитектуру на системном уровне, основное отличие в том что стиль рассматривает систему целиком, не концентрируясь на деталях. Стиль как правило описывается в терминах «архитектурных элементов» их взаимодействии и ограничениях.
- шаблон проектирования – это более конкретное решение, которое направлено на решение специфического вопроса и содержит описание какой-то конкретной ситуации;
- идиомы языка программирования – шаблоны для реализации на уровне языка программирования, учитывающие особенности языка и реализующие лучшие практики.
Распространённые архитектурные стили:
- Pipes and filters
- Client/Server
- Tiered Computing (отличается от Layered тем, что порядок взаимодействия tier-ов может быть любым)
- Peer-to-Peer
- Layered Implementation
- Publisher/Subscriber (реактивные архитектуры)
- Asynchronous Data Replication (отличается от pub/sub тем, что предназначена для синхронизации источников данных)
- Distribution Tree (publisher -> distributor -> consumer)
- Integration Hub (отличается от Data Replication тем, что синхронизация данных идет между системами, а не репликами БД)
- Tuple Space
Важные артефакты описания архитектуры:
- Архитектурное описание (общее описание системы)
- Моделирование (модель отражает упрощенное представление реальной бизнес задачи и служит для выстраивания аспектов системы)
- Сценарии использования готовой системы
- Валидация (проверка технических и логических моментов на корректность)
- определение и взаимодействие со стекхолдерами
- определение требований
- определение ограничений
- построение архитектуры соответствующей требованиям и ограничениям
Специализации архитектора:
- product architect – отвечает за поставку продукта внешним заказчикам или стекхолдерам
- domain architect – основные функции по построению архитектуры высокого уровня (бизнес-архитектура, архитектура данных и т.д.)
- solution architect - отвечает за архитектуру на уровне решения
- enterprise architect – высокоуровневые задачи управления предприятием – продажи, маркетинг, продукты, сервисы и т.д.
Подходы к проектированию архитектуры:
- Каскадная модель (waterfall) – модель при которой архитектор проходит стандартные фазы: анализ требований, проектирование, реализация и т.д.
- Итеративный подход – разделение проектирования на итерации (обычно каждая итерация – это отдельный вопрос проектирование) и проход по каждой итерации как по самостоятельному проекту
- Agile - непрерывный цикл проектирования включающий «дизайн», «разработка и тестирование», «развертывание», «анализ».
Важные элементы архитектуры:
- Бизнес цели и «драйверы» - конкретны задачи, которые хочет решить бизнес, а так же способы их достижения;
- Архитектурный контекст – это описание важных элементов архитектуры, которые определяют ее взаимодействие с внешним миром, а так же ее функциональные возможности. Описывается коротко, с достаточной для понимания сути детализацией, без жаргона и скрытой «магии»;
- Архитектурные вопросы – описание того какие проблемы существуют и как они решаются в рамках построения системы, а также ограничения которые нужно учитывать. Описание как правило включает архитектурные цели, функциональные требования, архитектурные требования и т.д.
- Архитектурные принципы – это принципы построения системы, ее каркас, а так же подсказка какие решения в рамках архитектур должны приниматься. Принципы должны быть конструктивными, обдуманными, существенными.
Архитектурные паттерны как правило бьются на три группы:
- архитектурные стили – паттерн описывающий архитектуру на системном уровне, основное отличие в том что стиль рассматривает систему целиком, не концентрируясь на деталях. Стиль как правило описывается в терминах «архитектурных элементов» их взаимодействии и ограничениях.
- шаблон проектирования – это более конкретное решение, которое направлено на решение специфического вопроса и содержит описание какой-то конкретной ситуации;
- идиомы языка программирования – шаблоны для реализации на уровне языка программирования, учитывающие особенности языка и реализующие лучшие практики.
Распространённые архитектурные стили:
- Pipes and filters
- Client/Server
- Tiered Computing (отличается от Layered тем, что порядок взаимодействия tier-ов может быть любым)
- Peer-to-Peer
- Layered Implementation
- Publisher/Subscriber (реактивные архитектуры)
- Asynchronous Data Replication (отличается от pub/sub тем, что предназначена для синхронизации источников данных)
- Distribution Tree (publisher -> distributor -> consumer)
- Integration Hub (отличается от Data Replication тем, что синхронизация данных идет между системами, а не репликами БД)
- Tuple Space
Важные артефакты описания архитектуры:
- Архитектурное описание (общее описание системы)
- Моделирование (модель отражает упрощенное представление реальной бизнес задачи и служит для выстраивания аспектов системы)
- Сценарии использования готовой системы
- Валидация (проверка технических и логических моментов на корректность)