Что такое трехуровневая архитектура (3-tier) в разработке ПО?

«Что такое трехуровневая архитектура (3-tier) в разработке ПО?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Уровни:

  1. Презентационный (Presentation Tier / UI) — интерфейс пользователя (веб-браузер, мобильное приложение).
  2. Уровень бизнес-логики (Application / Logic Tier) — обрабатывает команды пользователя, выполняет вычисления и координирует потоки данных (бэкенд-сервер, API).
  3. Уровень данных (Data Tier) — отвечает за хранение и управление данными (СУБД, файловое хранилище).

Пример взаимодействия (веб-приложение):

# Data Tier (Database)
def fetch_user_from_db(user_id):
    # Запрос к БД
    return {"id": user_id, "name": "Alice", "email": "alice@example.com"}

# Application Tier (Business Logic)
def get_user_profile(user_id):
    user = fetch_user_from_db(user_id)
    # Применение бизнес-правил
    user["profile_status"] = "VERIFIED" if user["email"] else "PENDING"
    return user

# Presentation Tier (UI Controller)
# Получает запрос от браузера, вызывает бизнес-логику, формирует HTML/JSON ответ.

Преимущества:

  • Независимое масштабирование: Каждый уровень можно масштабировать отдельно (например, добавить серверы приложений).
  • Повышенная безопасность: Уровень данных изолирован от прямых запросов извне.
  • Упрощение тестирования и разработки: Уровни имеют четкие интерфейсы и могут разрабатываться параллельно.

Недостатки:

  • Сложность развертывания и администрирования из-за большего количества компонентов.
  • Возможные задержки (латентность) при передаче данных между физически разделенными уровнями.