Статьи
Короткие разборы по сайтам, ботам, скриптам, серверу и автоматизации. Без академичности: только то, что помогает быстрее понять задачу и принять решение.
Ошибка Access denied в MySQL: причины и пошаговое исправление
Как исправить MySQL Access denied: проверка пользователя, host, пароля, auth plugin, прав, порта, конфигурации приложения и безопасная выдача GRANT.
Читать статью →WordPress: «На сайте произошла критическая ошибка» — что делать
Пошаговое восстановление WordPress после критической ошибки: логи PHP, плагины, тема, память, версия PHP, режим восстановления и безопасный откат.
Читать статью →Пагинация на сайте не работает: как найти и исправить причину
Что проверить, если пагинация не переключает страницы, повторяет записи или ломает фильтры: URL, offset, cursor, SQL, AJAX, canonical и состояние каталога.
Читать статью →Не работает Back Button в Telegram WebApp: диагностика и исправление
Почему кнопка Back Button не появляется или не реагирует в Telegram WebApp: проверка Telegram SDK, обработчиков, маршрутизации SPA и жизненного цикла Mini App.
Читать статью →Клиент не может приложить фотографии к заявке на возврат: форма, лимиты и загрузка файлов
Фото к заявке на возврат не прикрепляются из-за лимитов размера, MIME, прав uploads, мобильного браузера, ajax, CDN и связи файлов с заявкой.
Читать статью →Нужно объединить дубли без потери истории: безопасная дедупликация клиентов и заказов
Объединение дублей требует master-записи, правил совпадения, переноса связей, аудита, отката и проверки истории заказов, оплат и комментариев.
Читать статью →Денежные суммы потеряли точность: float, decimal, округление и ETL
Денежные суммы теряют точность из-за float, неверного округления, валют, ETL, JSON, Excel и разных правил в сервисах. Как найти и исправить ошибку.
Читать статью →Kafka Engine читает одно событие несколько раз: ClickHouse, offset и дубли аналитики
Kafka Engine в ClickHouse может читать событие повторно из-за commit offset, ошибок materialized view, рестартов, consumer group и отсутствия дедупликации.
Читать статью →Mutation выполняется дважды при повторе запроса: идемпотентность в GraphQL
GraphQL mutation может создать дубль при retry, двойном клике, reconnect или повторе клиента. Нужно добавить idempotency key, транзакции и защиту UI.
Читать статью →Одно событие webhook приходит несколько раз: retries, идемпотентность и защита от дублей
Webhook часто доставляется повторно. Если обработчик не идемпотентен, появляются дубли заказов, оплат и уведомлений. Как правильно обработать повторы.
Читать статью →API отдает персональные данные в лишних полях: как закрыть утечку в ответах
REST API может отдавать email, телефон, роли, токены, внутренние ID и лишние поля из модели. Нужно проверить serializers, DTO, scopes и права.
Читать статью →Consumer падает на одном плохом сообщении: retry, DLQ и защита очереди
Consumer RabbitMQ, Kafka или Redis Streams может падать на одном bad message и блокировать всю очередь. Нужно настроить валидацию, retry, DLQ и идемпотентность.
Читать статью →