Ответ
Приложения классифицируют по среде выполнения и архитектуре. Основные виды:
1. По среде выполнения (клиент):
- Веб-приложения (Web Apps): Работают в браузере, обращаются к серверу. Не требуют установки. Пример: Gmail, Notion.
- Технологии: HTML, CSS, JavaScript, фреймворки (React, Angular).
- Мобильные приложения (Mobile Apps): Устанавливаются на смартфоны/планшеты.
- Нативные (Native): Пишутся под конкретную ОС (Swift/Kotlin). Высокая производительность.
- Гибридные (Hybrid): Веб-приложение в "обёртке" (Cordova). Единая кодовая база.
- Кроссплатформенные (Cross-platform): Компилируются в нативный код (Flutter, React Native).
- Десктопные приложения (Desktop Apps): Устанавливаются на ПК (Windows, macOS, Linux). Пример: VS Code, Slack (десктопная версия).
- Встраиваемые системы (Embedded): ПО для специализированных устройств (IoT, медицинское оборудование, автомобили).
2. По архитектуре:
- Монолит (Monolith): Единое приложение, где все компоненты tightly coupled.
- Клиент-серверные (Client-Server): Чёткое разделение на клиентскую часть (UI) и сервер (бизнес-логика, БД).
- Микросервисы (Microservices): Приложение как набор независимых сервисов, общающихся по сети (часто через HTTP/REST или messaging).
Пример теста для веб-API (микросервисная архитектура):
import requests
# Тест эндпоинта получения пользователя
response = requests.get("https://api.service.com/users/1", headers={"Authorization": "Bearer token"})
assert response.status_code == 200
assert response.json()["id"] == 1 # Проверка данных в теле ответа (JSON)