Коллекции в Java на практике Коллекции представляют собой наборы объектов с удобными средствами для их хранения и обработки К основным интерфейсам относятся List, Set и Map — каждый задаёт свою структуру и гарантии…
Как создавать и применять кастомные запросы в Hibernate? Hibernate — ORM для Java, который упрощает взаимодействие приложения с базой данных. Кастомные запросы применяю, когда нужную сложную выборку нельзя выразить…
Подключение тестирования к CI/CD через GitLab GitLab CI/CD — встроенный инструмент для автоматизации сборки и деплоя, который поддерживает работу с пайплайнами Тесты оформляются как джобы в .gitlab-ci.yml, а этапы…
Интеграция с security-слоем заказчика (Централизованный логин, токены) security-слой выступает централизованным сервисом аутентификации и авторизации для входа применяются протоколы OAuth2/OpenID Connect после…
Как из сервиса вернуть доменную ошибку и отдать корректный HTTP-код? Контекст: обработка ошибок в backend-сервисах и API Для представления доменных ошибок применяю исключения (exceptions) либо error objects В…
Обмен данными выполняется по асинхронному протоколу Для передачи используются очереди (queue) либо топики (publish-subscribe) Микросервисы отправляют сообщения в брокер и подписываются на нужные события Поддерживаются…
Как корректно настроить http.Server.Shutdown для воркеров и ресурсов Контекст: graceful shutdown HTTP-сервера в Go http.Server.Shutdown выполняет плавную остановку: прекращает приём новых соединений и ожидает…
распределённая архитектура, в которой сервисы работают независимо обмен данными по сети через HTTP/REST, gRPC или message brokers синхронное взаимодействие через REST/gRPC и асинхронное — через RabbitMQ, Kafka…
Apache Kafka представляет собой распределённую платформу для обмена сообщениями и асинхронного взаимодействия сервисов Производитель (producer) публикует сообщения в тематические очереди, которые называются топиками…
Аннотационная конфигурация Spring Аннотации в Spring позволяют упростить настройку приложения и отказаться от XML Основная аннотация для классов конфигурации — @Configuration @Bean применяется для ручной регистрации…
логирование с помощью фреймворков: Log4j2, SLF4J, Logback настройка уровней: ERROR, WARN, INFO, DEBUG вывод данных в файлы, консоль, удалённые сервисы (например, ELK, Splunk) структурирование сообщений:…
многопоточность, защита данных выбирать lock-free структуры данных, например ConcurrentHashMap заменять блокировки на атомарные операции (atomic variables), где это возможно сводить критические секции к минимально…