Три поколения развития архитектуры



Развитие технологий и общества привели к возникновеню понятий "Веб 2.0" и "Веб 3.0" - идея в том, чтобы выделить новые подходы в построении программного обеспечения и выразить новые задачи, которые стоят перед обществом.



Ровно таким же образом можно разделить архитектурные подходы на три волны:



Архитектура 1.0:

- рассмотрение модульности/монолитности;

- масштабирование за счет вертикального роста;

- исследование и декомпозиция программных систем;

- балансировка нагрузки;

- инфраструктура как ПО;

- расширение за счет дублирования;

- ACID.



Архитектура 2.0:

- горизонтальная масштабируемость;

- процессный или сервисный подходы;

- микромодульность;

- инфраструктура как код (облака);

- расширение за счет распределенных транзакций;

- BASE.



Архитектура 3.0:

- децентрализация;

- семантический веб;

- блокчейн (web3);

- токенизация.



Архитектурные решения первой волны во многом заложены в код. Например, принципы построения программного обеспечения SOLID или GRASP, принципы границ на уровне кода (чистая архитектура и тому подобное), создание пакетов и модулей и т.д. Так как сейчас серьезно взялись за генерацию кода методами ИИ, то архитектура 1.0 уже заложена в эту генерацию.



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



Так же интересно, что есть два термина, которые могут запутать Web3 и Web3.0 в первом случае речь про новый децентрализованный интеренет и блокчейн технологии, второй про семантический веб.



#мысли #архитектура