Системный аналитик. Краткий гайд по профессии. Часть 3

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

  • Системный аналитик. Краткий гайд по профессии. Часть 1. Основы сетевых взаимодействий.

  • Системный аналитик. Краткий гайд по профессии. Часть 2. Сбор, анализ и документирование требований.

  • Системный аналитик. Краткий гайд по профессии. Часть 3. Архитектура приложений и их масштабирование, CAP-теорема и изоляция транзакций.

Данный текст является обзорной статьей и преимущественно ориентирован на новичков в IT-индустрии, предназначен для желающих познакомиться с профессией, узнать о ее содержании, основных принципах, практиках и инструментах, используемых в ней.

Типы программной архитектуры

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

  • монолитные (с единым развертываемым блоком для всего кода) 

  • распределенные (с несколькими развертываемыми блоками, взаимодействующими друг с другом по различным протоколам).

На изображении ниже представлены типы программной архитектуры.

Типы программной архитектуры
Типы программной архитектуры

Монолитные архитектуры

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

Многоуровневая архитектура - популярный подход к разработке приложений, относящихся к монолитному типу.

Ее элементы распределены по горизонтальным уровням, каждый из которых выполняет определенную функцию в приложении. 

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

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

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

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

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

  • Компоненты слоя доступа к данным реализуют логику извлечения, записи, редактирования и удаления данных независимо от особенностей их хранения.

  • Компоненты слоя базы данных реализуют функцию хранения данных и представляют собой различные СУБД, платформы управления облачными хранилищами и другие источники данных.

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

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

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

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

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

➕ Плюсы: простота и скорость разработки и тестирования.

➖ Минусы: низкая производительность под высокой нагрузкой, слабая масштабируемость, сложность модификации.

Источник: https://habr.com/ru/articles/843284/


Интересные статьи

Интересные статьи

Приветствую всех читателей Хабра!Меня зовут Денис, RTE в компании «Автомакон». На данный момент работаю в направлении «Фулстек» на проекте «ВкусВилл». Планировал написать короткую статью про изменени...
Возможно, что когда-нибудь Compose вытеснит XML также как Kotlin подвинул Java, но пока этого не случилось — продолжу ознакомление новичков в Android-разработке с миром Layouts.Это продолжение статьи&...
Очередной этап разработки гитары завершен и мы наконец запустили кампанию на Кикстартере!После публикации предыдущей статьи прошло много времени, наполненного пандемиями, чипапокалипсисами, санкциями,...
Вторая часть статьи, посвящённой созданию первого процессора с миллионом транзисторов. Ссылка на первую часть.
Этой статьей мы начинаем серию публикаций о неуловимых малвари. Программы для взлома, не оставляющие следов атаки, известные также как fileless («бестелесные», невидимые, безфайловые), как пр...