Из каких уровней состоит классическая трехуровневая архитектура приложения?

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

Ответ

Классическая трехуровневая (3-tier) архитектура разделяет приложение на три логических уровня, каждый со своей ответственностью:

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

Пример на Python/Flask:

# 1. Presentation Tier (Flask view)
@app.route('/orders')
def show_orders():
    orders = order_service.get_recent_orders()  # Call to Business Tier
    return render_template('orders.html', orders=orders)

# 2. Business Tier (Service layer)
class OrderService:
    def get_recent_orders(self):
        # Business logic: filter and validate
        raw_data = db_repository.get_orders(last_days=7)  # Call to Data Tier
        return [order for order in raw_data if order.is_valid]

# 3. Data Tier (Repository)
class DBRepository:
    def get_orders(self, last_days):
        # SQL query or ORM call
        return session.query(Order).filter(Order.date >= threshold).all()

Преимущества: Четкое разделение ответственности, упрощение тестирования (можно тестировать уровни изолированно), улучшенная масштабируемость и возможность повторного использования компонентов.