безопасность API при передаче данных необходима, чтобы предотвратить их утечку и подмену Для защиты канала связи используют HTTPS — протокол с шифрованием TLS, который предотвращает перехват данных и MITM-атаки…
Защита приложения от MITM сетевой контекст и безопасность передачи данных шифрование каналов с помощью TLS/SSL проверка сертификатов (PKI) с использованием pinning принудительное применение HTTPS через HSTS контроль…
Контекст: защита аутентификации и токенов доступа Access-токены имеют короткий срок действия — обычно от нескольких минут до нескольких часов Refresh-токены действуют дольше и предназначены для выпуска новых…
ускорение чтения за счёт сокращения числа JOIN рост производительности запросов применение в аналитике и OLAP-системах кэширование предварительно рассчитанных агрегатов увеличение избыточности и риска рассогласования…
Как из сервиса вернуть доменную ошибку и отдать корректный HTTP-код? Контекст: обработка ошибок в backend-сервисах и API Для представления доменных ошибок применяю исключения (exceptions) либо error objects В…
Как исключить повторную отправку отложенных писем при горизонтальном масштабировании? область: распределённые системы, messaging ключевая проблема: конкуренция при отправке между несколькими инстансами решение 1 —…
Идемпотентность операций: повторный вызов не должен менять итоговый результат Присвоение запросам уникальных идентификаторов — идемпотентных ключей На стороне клиента: временно отключать кнопку повторной отправки или…
Как обновлять захардкоженный список наград без передеплоя приложения? конфигурация через properties — файл входит в состав билда и связан с ним для внесения изменений требуется рестарт/деплой приложения внешний сервис…
Управление состоянием в React В классовых компонентах состояние находится в this.state Для изменения применяется this.setState: метод асинхронный и объединяет обновления В функциональных компонентах состояние задаётся…
Как изменяется стек при вызове функции? в стек помещается контекст вызова функции формируется фрейм стека (Stack Frame), где хранятся параметры, локальные переменные и адрес возврата выполнение переключается на тело…
Управлять окружением с помощью виртуальных сред (virtualenv, venv, conda) Использовать Docker-контейнеры, чтобы отделить системные и библиотечные зависимости Явно закреплять версии в файлах вроде requirements.txt,…
Как выполнить «инверсию» зависимости между микросервисами? Сервис A обращается к сервису B напрямую, поэтому между ними возникает жесткая связь — tight coupling Инверсия зависимости достигается за счет асинхронного…