Struchkov Mark
7ba718adb3
All checks were successful
continuous-integration/drone/push Build is passing
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) -->
|
||
|