58 lines
5.5 KiB
Markdown
58 lines
5.5 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
- архитектурные схемы
|
|||
|
- архитектурных схем
|
|||
|
tags:
|
|||
|
- maturity/🌱
|
|||
|
date: 2024-11-26
|
|||
|
---
|
|||
|
Архитектурная схема — это детализированное визуальное представление структуры и функционирования системы. Она помогает понять, как устроена система, какие компоненты входят в её состав и как они взаимодействуют друг с другом.
|
|||
|
|
|||
|
**Основная цель архитектурной схемы**
|
|||
|
- **Технической документации** — фиксации текущего состояния системы.
|
|||
|
- **Разработки и тестирования** — схемы позволяют командам лучше понимать структуру системы и её компоненты.
|
|||
|
- **Оптимизации и масштабирования** — упрощают анализ узких мест и прогнозирование последствий изменений.
|
|||
|
- **Устранения ошибок** — помогают найти и исправить проблемы благодаря наглядности взаимодействий.
|
|||
|
|
|||
|
**Виды архитектурных схем**
|
|||
|
- **Модульная схема**. Отображает модули системы и их взаимодействия.
|
|||
|
- Применяется для анализа высокоуровневой структуры ПО.
|
|||
|
- Удобна на этапе проектирования или реструктуризации системы.
|
|||
|
- **Компонентная схема**. Фокусируется на более детальном описании архитектуры компонентов и их связей.
|
|||
|
- Используется для анализа взаимозависимостей и проектирования новых компонентов.
|
|||
|
- **Схема потоков данных (Data Flow Diagram)**. Показывает, как данные перемещаются между модулями и компонентами. Полезна для проектирования интеграции и анализа производительности.
|
|||
|
- **Инфраструктурная схема** Описывает физическую реализацию системы: сервера, сети, базы данных и т.д. Используется для DevOps и управления инфраструктурой.
|
|||
|
|
|||
|
**Основные элементы архитектурной схемы**
|
|||
|
- **Компоненты** — отдельные части системы, такие как модули, сервисы или базы данных.
|
|||
|
- **Интерфейсы** — точки взаимодействия между компонентами (например, API).
|
|||
|
- **Связи** — связи или зависимости между компонентами, указывающие на передачу данных или управление.
|
|||
|
- **Процессы и потоки данных** — движения информации внутри системы.
|
|||
|
|
|||
|
**Как создать архитектурную схему?**
|
|||
|
- **Определите цель**. Зачем создается схема? Для документации, обсуждения с командой или анализа системы? От цели зависит уровень детализации.
|
|||
|
- **Соберите информацию**. Перечислите все компоненты системы, их взаимодействия и внешние зависимости.
|
|||
|
- **Выберите инструмент**. Для создания схем можно использовать инструменты, такие как Draw.io, PlantUML, Lucidchart или Visio.
|
|||
|
- **Обеспечьте ясность**. Убедитесь, что схема легко читается, избегайте избыточной детализации. Используйте условные обозначения и комментарии.
|
|||
|
- **Актуализируйте схему**. При изменении системы своевременно вносите изменения в схему, чтобы она оставалась полезной.
|
|||
|
|
|||
|
**Пример архитектурной схемы**
|
|||
|
Представьте распределённую систему с микросервисной архитектурой. Архитектурная схема может включать:
|
|||
|
- Микросервисы (компоненты) и их функции.
|
|||
|
- API и форматы данных для взаимодействия между сервисами.
|
|||
|
- Потоки данных между сервисами и базами данных.
|
|||
|
- Инфраструктуру развёртывания (например, кластер Kubernetes, базы данных, брокеры сообщений).
|
|||
|
***
|
|||
|
## Мета информация
|
|||
|
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]]]
|
|||
|
**Родитель**::
|
|||
|
**Источник**::
|
|||
|
**Создана**:: [[2024-11-26]]
|
|||
|
**Автор**::
|
|||
|
### Дополнительные материалы
|
|||
|
-
|
|||
|
|
|||
|
### Дочерние заметки
|
|||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
|