Был ли ваш последний проект desktop-приложением?

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

Ответ

Нет, последний проект был веб-приложением с архитектурой на основе микросервисов. Мы использовали Spring Boot для backend (REST API) и React для frontend.

Пример backend-контроллера (Spring Boot):

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

    @GetMapping
    public ResponseEntity<List<OrderDTO>> getAllOrders(
            @RequestParam(defaultValue = "0") int page,
            @RequestParam(defaultValue = "20") int size) {
        Page<OrderDTO> orders = orderService.findAll(page, size);
        return ResponseEntity.ok(orders.getContent());
    }

    @PostMapping
    public ResponseEntity<OrderDTO> createOrder(@Valid @RequestBody OrderCreateRequest request) {
        OrderDTO createdOrder = orderService.create(request);
        return ResponseEntity.status(HttpStatus.CREATED).body(createdOrder);
    }
}

Ключевые технологии проекта:

  • Backend: Spring Boot, Spring Data JPA (Hibernate), PostgreSQL, Spring Security (JWT).
  • Frontend: React, Redux Toolkit, TypeScript.
  • Инфраструктура: Docker, Kubernetes, GitLab CI/CD.

Хотя у меня есть опыт разработки desktop-приложений на JavaFX и Swing, в последние годы фокус сместился на облачные и веб-решения.