Ответ
1. Многослойная архитектура (Layered Architecture) / MVC
- Классическое разделение на Presentation (Controller), Business Logic (Service), Data Access (Repository) слои.
-
Пример в Spring MVC:
@Controller public class UserController { // Presentation Layer @Autowired private UserService userService; // Business Logic Layer @GetMapping("/users") public String getUsers(Model model) { model.addAttribute("users", userService.getAllUsers()); return "users"; } }
2. Чистая архитектура (Clean Architecture) / Гексагональная (Ports & Adapters)
- Разделение на Domain (сущности и бизнес-правила), Application (use cases), Infrastructure (внешние сервисы, БД) слои.
- Позволяет изолировать бизнес-логику от фреймворков и деталей реализации.
3. Микросервисная архитектура
- Разработка небольших, независимо развертываемых сервисов.
- Использовал Spring Cloud (Eureka для Service Discovery, Feign для REST-клиентов, Spring Cloud Gateway для API Gateway).
- Общение через REST API, асинхронные сообщения (Kafka).
4. MVVM (Model-View-ViewModel)
- Применял в Android-разработке с Jetpack компонентами (LiveData, ViewModel, Data Binding).
Критерии выбора: Масштаб проекта, требования к тестируемости, скорость изменений, необходимость распределенной системы.