Содержание
- + Методалогии разработки ПО
-
–
Проектирование систем
- + API
- + UML
- – Архитектор
- + Интеграции
- + Моделирование данных
- + Представление данных
- BPMN
- C4 model
- Domain Driven Design
- EPC
- IDEF0
- Архитектура
- Интерфейс
- Карта экосистемы
- Когда стоит выбирать микросервисы
- Контекстная диаграмма
- Ролевая модель
- Проектирование систем
- + Развёртывание
-
+
Разработка
- + Git
- + Linux OS
- + Mac OS
- + Подходы организации кода
- + Языки программирования
- Виды программирования
- Интерпритатор
- Компилятор
- Разработка
-
+
Сеть
- + OSI
- + Защита
- CDN
- ngrok
- Сеть
- + Системный анализ
- + Требования
-
+
Хранение данных
- + Базы данных
- + Отчётность и аналитика
- BigData
- OLAP
- Объектное хранилище
- Файловые системы
- Хранение данных
- + Языки разметки
Выработка решений
-
Предположения
-
Выбор технологий (котлин, фреймворки, где запускать - кубер/ранчер)
-
Проектирование
-
Оценка - сколько стоит реализация решения?
- небольшая фича может пол года занять
- другая фича реализуется быстрее и тоже принесет деньги - это правильнее выбрать на реализацию
Коммуникации
-
Стейкхолдеры
-
Командам - приносит командам конечное решение - управляет ожиданиями
-
Другим архитекторам (не может быть экспертом во всем)
Документирование
-
Как сделано? Какие компоненты в системе? Как развернуто приложение? Какие контракты? Какие предположения сделаны?
-
Почему именно так? (нет неверных архитектур - есть дорогие и неподходящие)
-
Диаграммы
- неформальные нотации
- полуформальныве нотации - C4 model
- формальные нотации
-
Логи архитектурных решений
-
Гайдлайны - чтобы убедиться что команда разработки сделает все необходимое
Проблемы
-
Как приносить решения большого масштаба?
-
Где хранить логи архитектурных решений и диаграммы?
-
Как избежать централизации принятия решений? Bus фактор
-
Как избежать феномена Ivory Tower? Башня из слоновьей кость - архитектор отрывается от быстрого реального мира
Как приносить решения большого масштаба?
Proposals
- RFC - Request for Comments - запрос на комментарии к предлагаемому решению
- документ описания проблемы и вариантов решения
- выносим на обсуждение другим архитекторам
Где хранить логи архитектурных решений и диаграммы?
-
git
-
wiki
-
Документы
Что хотим? Какие варианты? Плюсы и минусы
Как избежать централизации принятия решений? Bus фактор
Децентрализация
-
Обучение
-
Архитектурные комитеты
-
Архитектурные читалки
Общее
-
Уровень решения - организация
-
ИТ стратегия - нужно понимание хотим ли мы идти в облака, продвигать k8s
-
Подходы, коммуникации, платформы
Что вместо архитектора предприятия?
-
Решения на уровне организации - RFC, ADR...
-
Собственная плптформа: CI/CD, Runtime, Monitiring
-
Передача знаний
-
InnerSourcing - временно отдать члена команды другой команде
-
Тех радар - что пропуем, что решили - используем или нет
Книги
-
Documenting Software Architecture - Почему в 1 диаграмме никогда не сможем описать все что хотим
-
Patterns of Enterprise Application Architecture - Мартин Фаулер
-
Building evolutionary architectures - Мир меняется, как должны меняться системы?
Блоги
-
https://vvsevolodovich.dev
-
https://medium.com/@nvashanin