Как работать с тестовыми стендами? окружения Dev, QA и Prod отличаются уровнем стабильности и правами доступа Dev предназначен для локальной разработки и быстрых изменений, поэтому часто бывает нестабильным QA…
Паттерн, обеспечивающий наличие только одного экземпляра класса Для хранения объекта применяется статическая переменная Закрытый или приватный конструктор не позволяет создавать объект напрямую Метод доступа…
Область: обработка ошибок, backend, REST API Для этого применяют глобальные обработчики исключений, например @ControllerAdvice в Spring. Обработка ошибок выносится за пределы контроллеров, благодаря чему соблюдается…
ClickHouse — колоночная СУБД, предназначенная для выполнения аналитических нагрузок В системе отсутствует встроенная уникальная индексация, которая автоматически блокировала бы дубликаты Ключевой подход — выполнять…
Как предотвратить отмену задачи (cancel) управлять состоянием задачи с помощью флага или токена отмены не реагировать на сигналы отмены в пределах критической операции выносить важные действия за пределы области…
В SQL конструкция WHERE отбирает строки до группировки Оператор GROUP BY формирует агрегированные группы WHERE не работает с результатами агрегации Для фильтрации агрегатов используется HAVING HAVING выполняется после…
Жизненный цикл веб-запроса в Laravel/Yii2 (Nginx → PHP-FPM → контроллер → JSON) Nginx принимает HTTP-запрос и передаёт его PHP-FPM по FastCGI PHP-FPM запускает PHP-скрипт, точкой входа которого служит public/index.php…
Принцип работы @Transactional при вызове из метода без аннотации @Transactional — аспект Spring AOP, предназначенный для управления транзакциями Аннотация помещает метод в транзакционный контекст и автоматически…
Как работает BULK INSERT и чем он отличается от INSERT INTO? операции добавления данных в SQL BULK INSERT — массовая загрузка данных из файла в таблицу высокая скорость достигается пакетной обработкой и сокращением…
инструмент для исследования SQL-запроса выводит план выполнения запроса показывает последовательность операций (Seq Scan, Index Scan и т.п.) содержит оценку стоимости и предполагаемое число строк позволяет находить…
архитектурный паттерн для интеграции микросервисов сохранение изменений и событий в отдельной таблице (outbox) в рамках одной транзакции с бизнес-операцией асинхронная отправка событий из outbox в очередь или шину…