Три поколения развития архитектуры
Развитие технологий и общества привели к возникновеню понятий "Веб 2.0" и "Веб 3.0" - идея в том, чтобы выделить новые подходы в построении программного обеспечения и выразить новые задачи, которые стоят перед обществом.
Ровно таким же образом можно разделить архитектурные подходы на три волны:
Архитектура 1.0:
- рассмотрение модульности/монолитности;
- масштабирование за счет вертикального роста;
- исследование и декомпозиция программных систем;
- балансировка нагрузки;
- инфраструктура как ПО;
- расширение за счет дублирования;
- ACID.
Архитектура 2.0:
- горизонтальная масштабируемость;
- процессный или сервисный подходы;
- микромодульность;
- инфраструктура как код (облака);
- расширение за счет распределенных транзакций;
- BASE.
Архитектура 3.0:
- децентрализация;
- семантический веб;
- блокчейн (web3);
- токенизация.
Архитектурные решения первой волны во многом заложены в код. Например, принципы построения программного обеспечения SOLID или GRASP, принципы границ на уровне кода (чистая архитектура и тому подобное), создание пакетов и модулей и т.д. Так как сейчас серьезно взялись за генерацию кода методами ИИ, то архитектура 1.0 уже заложена в эту генерацию.
Предложенное разделение весьма условно, но без этого разделения попытки разговаривать про архитектуру современного ПО превращаются в кашу (я это остро чувствую в своих архитектурных видео), потому что делать софт в облаке и делать небольшой монолит с трехслойной архитектурой - это сильно разные вещи, и объединять их вместе не получается. Предложенное разделение помогает внести ясность в обсуждение, ровно таким же образом, как разделение веба на версии.
Так же интересно, что есть два термина, которые могут запутать Web3 и Web3.0 в первом случае речь про новый децентрализованный интеренет и блокчейн технологии, второй про семантический веб.
#мысли #архитектура
Развитие технологий и общества привели к возникновеню понятий "Веб 2.0" и "Веб 3.0" - идея в том, чтобы выделить новые подходы в построении программного обеспечения и выразить новые задачи, которые стоят перед обществом.
Ровно таким же образом можно разделить архитектурные подходы на три волны:
Архитектура 1.0:
- рассмотрение модульности/монолитности;
- масштабирование за счет вертикального роста;
- исследование и декомпозиция программных систем;
- балансировка нагрузки;
- инфраструктура как ПО;
- расширение за счет дублирования;
- ACID.
Архитектура 2.0:
- горизонтальная масштабируемость;
- процессный или сервисный подходы;
- микромодульность;
- инфраструктура как код (облака);
- расширение за счет распределенных транзакций;
- BASE.
Архитектура 3.0:
- децентрализация;
- семантический веб;
- блокчейн (web3);
- токенизация.
Архитектурные решения первой волны во многом заложены в код. Например, принципы построения программного обеспечения SOLID или GRASP, принципы границ на уровне кода (чистая архитектура и тому подобное), создание пакетов и модулей и т.д. Так как сейчас серьезно взялись за генерацию кода методами ИИ, то архитектура 1.0 уже заложена в эту генерацию.
Предложенное разделение весьма условно, но без этого разделения попытки разговаривать про архитектуру современного ПО превращаются в кашу (я это остро чувствую в своих архитектурных видео), потому что делать софт в облаке и делать небольшой монолит с трехслойной архитектурой - это сильно разные вещи, и объединять их вместе не получается. Предложенное разделение помогает внести ясность в обсуждение, ровно таким же образом, как разделение веба на версии.
Так же интересно, что есть два термина, которые могут запутать Web3 и Web3.0 в первом случае речь про новый децентрализованный интеренет и блокчейн технологии, второй про семантический веб.
#мысли #архитектура