Какие технологии и инструменты вы изучаете в данный момент?

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

Ответ

Сейчас я углубляюсь в несколько ключевых направлений для развития как бэкенд-инженера:

Углубление в экосистему Spring и облачные технологии:

  • Spring Cloud / Microservices – изучение паттернов (Service Discovery, Config Server, Circuit Breaker с Resilience4j), API Gateway (Spring Cloud Gateway).
  • Реактивное программированиеSpring WebFlux и Project Reactor для построения неблокирующих, масштабируемых сервисов.
    // Пример реактивного endpoint
    @GetMapping("/users")
    public Flux<User> getUsers() {
        return userRepository.findAll(); // Возвращает Flux (реактивный поток)
    }

Инфраструктура и DevOps:

  • Контейнеризация и оркестрация – продвинутое использование Docker (multi-stage builds, best practices) и Kubernetes (Deployments, Services, Ingress, Helm).
  • CI/CD – автоматизация пайплайнов в GitLab CI/CD и GitHub Actions, включая стадии тестирования, анализа кода и деплоя.
  • Мониторинг и observability – настройка Prometheus для сбора метрик, Grafana для дашбордов, использование Distributed Tracing (Jaeger/Zipkin).

Качество кода и тестирование:

  • Интеграционное и контрактное тестирование – с Testcontainers для поднятия реальных БД в тестах и Pact для проверки взаимодействия сервисов.
    @Testcontainers
    class UserRepositoryIT {
        @Container
        static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:15");
        // Тесты с реальной БД
    }
  • Performance тестирование – написание сценариев для Apache JMeter и k6.

Альтернативные JVM-языки: Изучаю Kotlin Coroutines для сравнения с реактивными подходами и пишу на нем pet-проекты.