На каком технологическом стеке был построен ваш последний рабочий проект?

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

Ответ

Проект был построен на основе микросервисной архитектуры с использованием следующего стека технологий:

Основной стек:

  • Backend: Java 11, Spring Boot 2.7.x (Spring MVC, Data JPA, Security, Cloud), Hibernate.
  • Базы данных: PostgreSQL (основное хранилище), Redis (для кеширования и сессий).
  • Межсервисная коммуникация: REST APIs, Apache Kafka (асинхронная обработка событий).
  • Инфраструктура: Docker, Kubernetes (оркестрация), AWS (EC2, RDS, S3).
  • Мониторинг: Prometheus, Grafana, ELK Stack (логи).

Пример типичного REST-контроллера из проекта:

@RestController
@RequestMapping("/api/v1/users")
@RequiredArgsConstructor // Lombok для инъекции зависимостей
public class UserController {
    private final UserService userService;

    @GetMapping("/{id}")
    public ResponseEntity<UserResponse> getUser(@PathVariable Long id) {
        UserResponse user = userService.getUserById(id);
        return ResponseEntity.ok(user);
    }

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public UserResponse createUser(@RequestBody @Valid CreateUserRequest request) {
        return userService.createUser(request);
    }
}

Дополнительно: В проекте использовался CI/CD (GitLab CI), тестирование на основе JUnit 5/Mockito, и применялись принципы Domain-Driven Design (DDD).