Ответ
Имею коммерческий опыт работы со следующим стеком технологий для backend-разработки:
Язык и Core: Java 8-17 (Stream API, Optional, CompletableFuture).
Фреймворки:
- Spring Framework: Boot, MVC, Data JPA, Security, Cloud.
- ORM: Hibernate / JPA.
Архитектура и коммуникация:
- Микросервисы, REST API, gRPC.
- Брокеры сообщений: Apache Kafka, RabbitMQ.
Базы данных:
- Реляционные: PostgreSQL, MySQL.
- NoSQL: MongoDB, Redis (как кэш и key-value хранилище).
Тестирование: JUnit 5, Mockito, Testcontainers.
Инфраструктура и DevOps: Docker, Kubernetes, Jenkins (CI/CD).
Пример кода для REST-контроллера на Spring Boot:
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
// Внедрение зависимости через конструктор (best practice)
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/{id}")
public ResponseEntity<UserDto> getUser(@PathVariable Long id) {
UserDto user = userService.getUserById(id);
return ResponseEntity.ok(user);
}
}