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

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

Ответ

Стек технологий проекта на основе Spring Boot:

  • Бэкенд: Java 11/17, Spring Boot (Core, MVC, Data JPA, Security), Hibernate.
  • Базы данных: PostgreSQL (основная), Redis (кэширование).
  • Тестирование: JUnit 5, Mockito, Testcontainers.
  • Сборка и управление зависимостями: Gradle (или Maven).
  • Контроль версий: Git (GitLab).
  • CI/CD: Jenkins (или GitLab CI) для сборки, тестирования и развертывания.
  • Контейнеризация и оркестрация: Docker, Kubernetes (K8s).
  • Мониторинг и логирование: Prometheus (метрики), Grafana (дашборды), ELK Stack (логи).
  • Межсервисное взаимодействие: REST API, Apache Kafka (асинхронная коммуникация).
  • Инфраструктура: Конфигурация через Spring Cloud Config, API Gateway.

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

@SpringBootApplication // Автоконфигурация, сканирование компонентов
@EnableJpaRepositories // Включение репозиториев Spring Data JPA
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args); // Запуск встроенного контейнера
    }
}