Architecture Flashcards

1
Q
  1. Трех слойная архитектура (3 layers, 3 tier).
A

Трёхслойная архитектура (или трёхуровневая архитектура) — это подход к проектированию программного обеспечения, который разделяет систему на три логических уровня или слоя, каждый из которых выполняет определённую роль. В .NET-приложениях это обычно включает следующие слои:
1. Презентационный слой (Presentation Layer):
o Задача: Обеспечивает взаимодействие пользователя с приложением.
o Примеры: Веб-страницы (ASP.NET MVC, Razor Pages), пользовательский интерфейс (Windows Forms, WPF), мобильные приложения (Xamarin).
o Функции: Обработка ввода пользователя, отображение данных и интерфейсные элементы. Презентационный слой передаёт данные бизнес-слою и отображает результаты, полученные от него.
2. Бизнес-слой (Business Layer):
o Задача: Инкапсулирует бизнес-логику приложения.
o Примеры: Классы и компоненты, реализующие бизнес-правила, бизнес-процессы и правила валидации.
o Функции: Выполняет основную бизнес-логику, обработку данных и выполнение операций. Бизнес-слой взаимодействует с данными и проверяет их на соответствие бизнес-правилам.
3. Слой доступа к данным (Data Access Layer):
o Задача: Управляет взаимодействием с источниками данных.
o Примеры: Репозитории, контексты данных (Entity Framework), классы для работы с базами данных и другими источниками данных.
o Функции: Выполняет операции чтения и записи данных, общается с базами данных и другими хранилищами данных. Слой доступа к данным изолирует бизнес-слой от деталей реализации хранения данных.

Преимущества трёхслойной архитектуры
1. Модульность: Каждый слой отвечает за свою часть функционала, что упрощает модификацию и тестирование.
2. Изоляция изменений: Изменения в одном слое минимально затрагивают другие слои, что облегчает поддержку.
3. Повторное использование: Логику и компоненты можно повторно использовать в разных частях приложения.
4. Упрощённое тестирование: Возможность тестировать каждый слой отдельно и в изоляции.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly