Какие технологии и инструменты используются в вашем текущем проекте?

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

Ответ

Технологический стек текущего backend-проекта:

  • Язык и фреймворк: Java 17+, Spring Boot 3.x (основной фреймворк).
  • Работа с данными: Hibernate (JPA) в качестве ORM, PostgreSQL — основная реляционная БД.
  • Документирование API: RESTful API с документацией через OpenAPI (Swagger).
  • Вспомогательные библиотеки:
    • Lombok — для сокращения шаблонного кода.
    • MapStruct — для преобразования между Entity и DTO.
    • Liquibase — для управления миграциями схемы БД.
  • Тестирование: JUnit 5, Mockito, Testcontainers для интеграционных тестов.

Пример базовой конфигурации приложения:

@SpringBootApplication
@EnableJpaRepositories
@EntityScan("com.example.domain")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

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

  • Асинхронная коммуникация: Apache Kafka для обмена событиями между сервисами.
  • Мониторинг: Prometheus для сбора метрик, Grafana для визуализации.
  • Контейнеризация: Docker, развертывание в Kubernetes-кластере.
  • CI/CD: GitLab CI для автоматизации сборки, тестирования и деплоя.