S0ER – Telegram
10.6K subscribers
333 photos
18 videos
15 files
707 links
Архитектура | Программирование | Профессиональное развитие

Соер.Клуб - https://news.1rj.ru/str/soer_live

По всем вопросам писать на @soerdev
Download Telegram
Эволюционность - это одна из особенностей программного обеспечения, которая должна обеспечивать развитие софта.
Типовые направления для анализа эволюционности:
- Техника/инфраструктура
- Данные
- Безопасность
- Интеграции/системы
Закон Мелвина Конвея: "Организации, которые проектируют системы, склонны воспроизводить архитектуру которая воспроизводит организационную структуру самой организации"
Фитнес функции
Название немного вводит в заблуждение. На самом деле фитнес функция - это не обязательно функция реализованная на ЯП. Это любая оценка, которая позволяет сделать вывод о достижении или приближении к цели проектирования.
Целью проектирования могут выступать любые требования, которые были получены как от заказчика, так и те которые являются следствием проектирования.
Мы можем сделать финтес функцию в виде автоматизированного теста, а можем в виде инструкции для человека, который будет вручную проверять наличие необходимых свойств у системы.
Важно чтобы фитнес функции максимально автоматизировались.
Например, если мы определим требование производительности для выполнения набора операций, скажем 100мс на операцию, то мы можем написать небольшую функцию или программу, которая будет контролировать данный показатель. Это и будет фитнес функция.
Фитнес фукнции могут быть следующих видов:
- атомарные/целостные
- непрерываные/прерывающиеся
- статические/динамисеские
- автоматизированные/ручные
- временные
По назначению фитнес функции бъются на:
- ключевые
- релевантные/нерелевантные
Инкрементальные изменения
Это основной механизм эволюционной архитектуры. Идея в том, чтобы двигаться вперед небольшими шагами, заменяя устаревшие компоненты более новыми аналогами. При этом в какой-то момент времени могут быть доступны и старые и новые компоненты.
Основа эволюционной архитектуры - непрерывное развертывание.
Модульность
В основе модульности лежит идея слабого зацепления и автономность модулей.
Иерархия стандартная: модуль - компонент - код
Workflow
- инкрементальные изменения
- построение и поддержание фитнес функций
- поддержание модульности
Эволюционные методы не могут быть использованы в архитектуре Big ball of Mud
Все остальные архитектуры могут развиваться эволюционнно. В книге есть пояснения относительно следующих архитектур:
Монолитные
- цельный монолит
- многослойный монолит
- модульный монолит
- микроядерный монолит
Event Driven
- брокеры
- медиаторы
Сервис ориентированные архитектуры
- ESB driven SOA
- микросервисы
Серверлес архитектура
Алгоритм построения эволюционной архитектуры
- определить требования, которые защищены эволюцией
- определить фитнес функции (оценки качества)
- настроить непрерывное развертывание с учетом автоматизации фитнес функций (конвейр развертывания)
- движение вперед по workflow описанному выше
Моя оценка: рекомендую книгу для архитекторов и синьеров