Взгляд с высоты птичьего полета на три популярных паттерна

Когда я писал свой первый «Hello world!» программа Я предполагал, что все программное обеспечение было просто написано в одном большом файле. Но быстро я понял, что это не так, и многое из этого разбито на небольшие компоненты, которые взаимодействуют друг с другом.

Когда этих компонентов так много, это обычно превращается в большую кашу из «не знаю, что делает и кто с кем разговаривает». Но не бойтесь, так как именно здесь вступают в игру шаблоны архитектуры программного обеспечения!

Эти четко определенные шаблоны предлагают своего рода шаблон для организации вашего программного обеспечения, а различные типы шаблонов предлагают разные сильные и слабые стороны в зависимости от вашего варианта использования. Теперь я собираюсь объяснить некоторые из наиболее распространенных шаблонов, которые мы все видим в разработке программного обеспечения.

Многоуровневая архитектура

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

Он включает в себя многоуровневую/многоуровневую структуру, где каждый уровень/уровень обрабатывает определенную задачу и передает задачу следующей до тех пор, пока требуемый процесс не будет завершен.

Этот шаблон хорошо работает, когда вы создаете простые веб-приложения, но по мере того, как ваше программное обеспечение становится более сложным, этот шаблон довольно быстро разваливается и не отвечает многим требованиям современного программного обеспечения.

Это также шлюз для программного обеспечения, превращающегося в монолит, который, если его не исправить, может привести к проблемам с масштабированием, развертыванием и производительностью.

Микросервисная архитектура

Если вы какое-то время работали в сфере разработки программного обеспечения, вы, вероятно, уже слышали об этом архитектурном шаблоне — и он известен не зря!

Архитектура микросервисов позволяет разбить большое приложение на небольшие изолированные сервисы, которые вызывают друг друга для завершения процесса. Эти микросервисы независимы и имеют свои собственные обязанности. Возможно, вы уже заметили, что архитектура микросервисов помогает разбивать большие приложения или монолиты, и это обычный путь, по которому идут компании, пытаясь избавиться от своего монолитного программного обеспечения и сделать его более современным.

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

Архитектура, управляемая событиями

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

В этом шаблоне обычно имеется канал или шина событий, по которой передаются все события, отправляемые различными компонентами приложения, и канал или шина используются для асинхронного получения этих событий. У шаблона, управляемого событиями, более высокая масштабируемость, чем у шаблона микросервиса, но ему не хватает простоты тестирования.

Ну вот мы и подошли к концу моего первого блога. Существует гораздо больше шаблонов архитектуры программного обеспечения, и если вы хотите узнать больше, вот хорошая статья для начинающих.