Как устроена асинхронность в JavaScript? событийная модель выполнения (event loop) call stack — стек, в котором исполняются синхронные функции message queue — очередь задач для асинхронных колбеков Web APIs — таймеры,…
Как устроена балансировка нагрузки в gRPC? взаимодействие поверх HTTP/2 с поддержкой мультиплексирования клиентская балансировка с подключаемыми load balancer, например round-robin применение DNS-based discovery для…
Как работает многопоточность в Java? Java обеспечивает параллельное выполнение с помощью потоков (Threads) Поток — отдельный исполняемый поток команд в рамках процесса Для создания потоков применяют классы Thread и…
Иерархия исключений Python Все исключения наследуются от базового класса BaseException Ключевым классом для ошибок служит Exception: от него производятся все пользовательские исключения Подклассы Exception объединены…
NavigationStack и NavigationView в SwiftUI SwiftUI: пользовательский интерфейс и навигация от Apple NavigationView: устаревающий контейнер для иерархической навигации NavigationStack: современный и гибкий навигатор,…
PostgreSQL — реляционная БД с поддержкой репликации В режиме master-slave репликация бывает асинхронной или синхронной WAL (Write-Ahead Log) передаётся на слейв Слейв доступен для чтения, но не принимает запись данных…
Как работает формат соединения WebSocket? протокол для двунаправленного обмена данными поверх TCP соединение начинается с HTTP/HTTPS рукопожатия (handshake) клиент отправляет HTTP-запрос с заголовком Upgrade:…
JWT (JSON Web Token) — стандарт компактных и безопасных для URL токенов аутентификации Формат токена включает header (тип и алгоритм), payload (данные и claims) и signature (подпись) Для проверки подлинности подпись…
Как устроены wait() и notify() и где их разрешено вызывать? средства синхронизации в Java, основанные на объектном мониторе wait() — освобождает монитор и переводит поток в режим ожидания notify() — будит один поток,…
появились в ES6 и используют синтаксис function* вместе с yield это итератор, выполнение которого можно приостанавливать и возобновлять метод .next() возвращает объект вида {value, done} yield передаёт наружу…
Как устроены миграции БД? Практика реализации миграций Позволяют управлять изменениями схемы БД во времени Фиксируют последовательность изменений DDL Миграции представляют собой версионируемые скрипты для создания,…
Как устроены некластеризованные индексы? База данных использует индекс для поиска записей в таблице Индекс представляет собой самостоятельную структуру, например B-дерево В нём хранятся ключи и ссылки на строки данных…