Как устранить проблему N+1 для связанных сущностей? Проблема N+1: вместо одного выполняется множество запросов Причина: отложенная (lazy) загрузка связанных данных Базовое решение: жадная загрузка (eager loading)…
Как устранить проблемы "волшебных чисел"? область разработки и качество кода "волшебные числа" — необъяснимые статические константы, напрямую записанные в коде усложняют чтение и сопровождение программы создают риск…
Как устроен HashMap? За счёт чего достигается константный поиск структура данных формата ключ → значение (хеш-таблица) для ключа вычисляется хеш-код (число) по хеш-коду быстро определяется индекс бакета в бакете…
структура данных для хранения пар ключ → значение внутри представляет собой хеш-таблицу ключ обязан быть comparable (поддерживать операцию ==) поиск, добавление и удаление выполняются в среднем за ~O(1) для обработки…
Автоматически освобождает память, выделенную JVM Находит объекты, на которые больше нет ссылок и которые стали недостижимыми Организует кучу по поколениям: Young, Old и Permanent (метаданные) Базовый подход:…
Как работает CAS внутри Atomic-классов CAS — это низкоуровневый механизм атомарного обновления значения в памяти Он сопоставляет текущее значение с ожидаемым (compare) При совпадении значение заменяется новым (swap)…
Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…
Как устроена FIFO-очередь в RabbitMQ? RabbitMQ представляет собой брокер сообщений, работающий с очередями В стандартной очереди сообщения доставляются по принципу FIFO (First In, First Out) Сначала в очередь попадают…
Сеть Pod — фундаментальный сетевой уровень Kubernetes отвечает за связь между Pod внутри кластера каждому Pod назначается собственный IP-адрес без NAT — обмен данными выполняется напрямую по IP создаётся с помощью…
Устройство очередной архитектуры и назначение нескольких очередей и экшенджей В основе архитектуры лежит асинхронная обработка событий, при которой задачи распределяются по приоритету и функциональному назначению.…
PostgreSQL — реляционная БД с поддержкой репликации В режиме master-slave репликация бывает асинхронной или синхронной WAL (Write-Ahead Log) передаётся на слейв Слейв доступен для чтения, но не принимает запись данных…
JWT (JSON Web Token) — стандарт компактных и безопасных для URL токенов аутентификации Формат токена включает header (тип и алгоритм), payload (данные и claims) и signature (подпись) Для проверки подлинности подпись…