Область: обработка ошибок, backend, REST API Для этого применяют глобальные обработчики исключений, например @ControllerAdvice в Spring. Обработка ошибок выносится за пределы контроллеров, благодаря чему соблюдается…
последовательная очередь обрабатывается в одном потоке, поэтому порядок операций имеет значение deadlock появляется, когда ресурсы взаимно блокируют друг друга для профилактики сокращают пересечения блокировок и…
deadlock: взаимная блокировка ресурсов livelock: бесконечное изменение состояний без продвижения исключать циклические зависимости между ресурсами задавать единый порядок захвата блокировок (lock ordering)…
Как отключить всплытие события в модальном окне? Веб, события, DOM всплытие означает переход события от дочернего элемента к его родителям для прекращения распространения в обработчике клика модального окна вызывают…
ClickHouse — колоночная СУБД, предназначенная для выполнения аналитических нагрузок В системе отсутствует встроенная уникальная индексация, которая автоматически блокировала бы дубликаты Ключевой подход — выполнять…
Как предотвратить отмену задачи (cancel) управлять состоянием задачи с помощью флага или токена отмены не реагировать на сигналы отмены в пределах критической операции выносить важные действия за пределы области…
React Error Boundaries: класс с методом componentDidCatch Перехватывают ошибки дочерних компонентов и не позволяют им разрушить всё дерево Дают возможность отобразить резервный UI вместо компонента с ошибкой…
Как предотвратить падения твинов обеспечьте ошибкоустойчивость на уровне программного кода внедрите heartbeat/health checks для контроля состояния настройте автоматический failover и процедуры восстановления корректно…
кэш — локальное хранилище для быстрого доступа к данным задавать ограничение размера кэша (quota) применять политики замещения: LRU, LFU, FIFO настраивать автоматическую очистку: удалять элементы, которые используются…
Как предотвратить потерю сообщений, которые брокер не отправил? область: брокер сообщений, гарантированная доставка применять протоколы с подтверждением, например AMQP с ACK/NACK настраивать повторные попытки отправки…
управлять ссылками и освобождать объекты сразу после того, как они перестали быть нужны применять WeakMap/WeakSet для хранения слабых ссылок не использовать глобальные переменные без необходимости — они существуют на…
Как предотвратить утечки памяти в escaping-замыканиях? Escaping-замыкание продолжает существовать после завершения вызова, например в callback или async-коде Чаще всего утечку вызывают сильные ссылки на self,…