Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…
Как устроен цикл событий (event loop) и как он выполняет асинхронный код? механизм организации асинхронности в JavaScript и средах его выполнения функционирует до тех пор, пока в очереди остаются задачи работает со…
Сеть Pod — фундаментальный сетевой уровень Kubernetes отвечает за связь между Pod внутри кластера каждому Pod назначается собственный IP-адрес без NAT — обмен данными выполняется напрямую по IP создаётся с помощью…
Как устроена асинхронность в JavaScript? событийная модель выполнения (event loop) call stack — стек, в котором исполняются синхронные функции message queue — очередь задач для асинхронных колбеков Web APIs — таймеры,…
Как устроены некластеризованные индексы? База данных использует индекс для поиска записей в таблице Индекс представляет собой самостоятельную структуру, например B-дерево В нём хранятся ключи и ссылки на строки данных…
Хранение крупных бинарных данных (BinaryField) в Postgres Для бинарных данных Postgres предоставляет тип bytea его предельный размер составляет примерно 1 ГБ на одну строку для более объемных файлов целесообразно…
Работа с БД/Оптимизация: Применять пагинацию либо потоковое чтение (cursor/stream), разделяя выборку на управляемые части Извлекать только нужные поля, а не всю строку целиком (projection) Выделять память для данных…
SQL и оптимизация запросов Сначала точно определить ключи соединения — PK и FK. Для обязательных связей применять INNER JOIN, а для необязательных — LEFT JOIN. Сокращать объем промежуточных данных, выполняя фильтрацию…
HTTP-методы создания и изменения ресурсов В REST API HTTP-методы позволяют управлять ресурсами и выполнять операции над ними. POST — предназначен для создания нового ресурса: данные передаются на сервер, который часто…
Сетевой уровень: TCP устанавливает соединение, обеспечивает надежность и контролирует поток данных; UDP работает без установления соединения, отличается высокой скоростью, но не гарантирует доставку. HTTP — текстовый…
Аннотации Spring для компонентов и бинов Spring представляет собой контейнер для управления зависимостями @Component — универсальная аннотация, предназначенная для регистрации компонента в контексте Spring @Service —…
Архитектурные паттерны для производительности и отказоустойчивости CQRS: разносит операции чтения и записи, позволяя отдельно оптимизировать каждую из них Шардирование: горизонтально распределяет данные, чтобы…