24
Введение Изображение архитектуры

ПиАПС, Лекция №1б - Представление архитектуры

Embed Size (px)

Citation preview

Page 1: ПиАПС, Лекция №1б - Представление архитектуры

ВведениеИзображение архитектуры

Page 2: ПиАПС, Лекция №1б - Представление архитектуры

Гибкие команды требуют

качественной коммуникации

● Визуальная информация >80%

● TDD, ... не дает возможности быстро

оглядеть всю картину

● … и код тоже

● Не детальное моделирование мелочей, а

скетчи решения

Page 3: ПиАПС, Лекция №1б - Представление архитектуры

Польза от скетчей

● Вся команда и новые участники легко

понимают общую картину

● Легко поделиться с командой, что ты

собираешься делать

● “Навигационная карта” по коду

● Пространство для анализа рисков

● Пространство для совместной работы

Page 4: ПиАПС, Лекция №1б - Представление архитектуры

Неэффективные скетчи

Page 5: ПиАПС, Лекция №1б - Представление архитектуры

Список технологий

Page 6: ПиАПС, Лекция №1б - Представление архитектуры

Квадраты без линий

Page 7: ПиАПС, Лекция №1б - Представление архитектуры

Список фич

Page 8: ПиАПС, Лекция №1б - Представление архитектуры

Адское месиво

Page 9: ПиАПС, Лекция №1б - Представление архитектуры

В целом всё так

Page 10: ПиАПС, Лекция №1б - Представление архитектуры

Логический взгляд

Page 11: ПиАПС, Лекция №1б - Представление архитектуры

Подход C4:

● context

● containers

● components

● classes

Эффективные скетчи

Page 12: ПиАПС, Лекция №1б - Представление архитектуры
Page 13: ПиАПС, Лекция №1б - Представление архитектуры

Внимание

● Принятым обозначениям и нотации

● Не стоит мешать разные уровни

абстракции между собой

● Простота

● Основанность на реальности

Page 14: ПиАПС, Лекция №1б - Представление архитектуры

Context

● Что мы создаем?

● Кто это использует?

● Как это размещается в существующем

техническом окружении?

● Как это все взаимодействует друг с

другом?

Page 15: ПиАПС, Лекция №1б - Представление архитектуры
Page 16: ПиАПС, Лекция №1б - Представление архитектуры

Container

● Из каких служб состоит система?

● Каковы базовые технологические решения и

выбранные технологии?

● Какое распределение ответственности в системе?

● Как “контейнеры” взаимодействуют друг с другом?

● Где писать код, чтобы реализовать функционал?

Page 17: ПиАПС, Лекция №1б - Представление архитектуры
Page 18: ПиАПС, Лекция №1б - Представление архитектуры

для каждого контейнера

● Имя

● Технология

● Ответственность

Page 19: ПиАПС, Лекция №1б - Представление архитектуры

Component

● Из каких компонентов состоит система?

● Как сгруппирована бизнес-логика?

● Понятно ли прямо сейчас, как это будет

работать, когда написан код?

● Все ли компоненты принадлежат какой-

нибудь службе?

Page 20: ПиАПС, Лекция №1б - Представление архитектуры
Page 21: ПиАПС, Лекция №1б - Представление архитектуры
Page 22: ПиАПС, Лекция №1б - Представление архитектуры

Classes

UML :)

Page 23: ПиАПС, Лекция №1б - Представление архитектуры

Еще UML● Процессы и порядок выполнения:

Activity

● Поведение во время исполнения:

Sequence, Collaboration

● Модель предметной области:

Class, ER

● Граф состояний:

State

● Развертывание системы:

Deployment

Page 24: ПиАПС, Лекция №1б - Представление архитектуры

Литература

● Simon Brown “Software Architecture for

Developers”