Категория:Акторная модель — различия между версиями

Материал из MaksWiki
Перейти к: навигация, поиск
(Новая страница: «Долгое время большинство приложений разрабатывалось как большие монолиты или системы и…»)
 
м
Строка 1: Строка 1:
 +
[[Файл:TechLeadScribing.jpg|right|400px|thumb|Скрайбинг доклада на TechLead]]
 +
 
Долгое время большинство приложений разрабатывалось как большие монолиты или системы из крупных модулей. Для проектирования использовался процедурный подход (Вирт "Алгоритмы + Структуры данных = Программы") или пришедший ему на смену ООП. В обоих случаях объектная модель предметной области в виде структур справочников и документов и связанная с каждым объектом бизнес-логика, созданные аналитиком, служат адекватным проектом для реализации разработчиками в коде, а изменения разработчиками могут быть отражены в модель. Модель соответствует коду и сложность ее изменения для решения новых требований позволяет примерно оценить сложность разработки.
 
Долгое время большинство приложений разрабатывалось как большие монолиты или системы из крупных модулей. Для проектирования использовался процедурный подход (Вирт "Алгоритмы + Структуры данных = Программы") или пришедший ему на смену ООП. В обоих случаях объектная модель предметной области в виде структур справочников и документов и связанная с каждым объектом бизнес-логика, созданные аналитиком, служат адекватным проектом для реализации разработчиками в коде, а изменения разработчиками могут быть отражены в модель. Модель соответствует коду и сложность ее изменения для решения новых требований позволяет примерно оценить сложность разработки.
  
Строка 8: Строка 10:
  
 
Последний доклад по теме '''[[Визуальное проектирование масштабируемых приложений (TechLead-2021)]]'''
 
Последний доклад по теме '''[[Визуальное проектирование масштабируемых приложений (TechLead-2021)]]'''
 +
 +
[[Категория:Архитектура]]

Версия 11:52, 9 июля 2021

Скрайбинг доклада на TechLead

Долгое время большинство приложений разрабатывалось как большие монолиты или системы из крупных модулей. Для проектирования использовался процедурный подход (Вирт "Алгоритмы + Структуры данных = Программы") или пришедший ему на смену ООП. В обоих случаях объектная модель предметной области в виде структур справочников и документов и связанная с каждым объектом бизнес-логика, созданные аналитиком, служат адекватным проектом для реализации разработчиками в коде, а изменения разработчиками могут быть отражены в модель. Модель соответствует коду и сложность ее изменения для решения новых требований позволяет примерно оценить сложность разработки.

С распространением микросервисной архитектуры и акторной модели с взаимодействием на асинхронных очередях и событиях, объектной модели становится недостаточно. Классические диаграммы, UML и другие, придуманные в эпоху монолитов, не слишком хорошо позволяют обсуждать архитектуру работы множества сервисов с асинхронным взаимодействием. Требуются иные способы, адекватные применяемым парадигмам программирования, чтобы обеспечить соответствие между моделью и реализацией, проектирование оркестровки и устойчивого работы приложений.

Впервые я рассказал о такой модели осенью 2020 года Модели предметной области для разных парадигм программирования (AnalystDays-2020), с тех пор доклад развивался на нескольких конференциях с разными фокусами - на проектирование, тестирование, архитектуру, масштабирование. Весной 2021 я начал проводить мастер-классы, где после краткого рассказа о модели разбирался конкретный кейс от участников.

По отзывам, модель получилась удачной и позволяет обсуждать архитектуру микросервисного приложения между всеми участниками проекта, включая бизнес-заказчиков. Что необходимо, так как требования по масштабированию и последствия неустойчивой работы имеют бизнес-последствия - стоимость устранения, потери из-за аварий против стоимости инфраструктуры с резервированием и надежности, закладываемой в разработку. А такие вопросы необходимо обсуждать с бизнесом, вырабатывая совместные решения.

Последний доклад по теме Визуальное проектирование масштабируемых приложений (TechLead-2021)