Все публикации
93 материалаЗагрузка файла в PHP: проверяем ошибку и выбираем своё имя
Принимаем текстовый файл в PHP: проверяем ошибку загрузки, размер и сохраняем файл под серверным именем.
SEOПереезд адресов: карта соответствий до включения редиректов
Готовим карту старых и новых URL, настраиваем постоянные переходы и проверяем, что читатель попадает в нужную статью.
MySQLВнешний ключ InnoDB: политика удаления должна быть явной
Что произойдёт с заказами при удалении клиента: разбираем RESTRICT, CASCADE и требования внешнего ключа InnoDB.
JavaScriptlocalStorage: читаем настройки как недоверенные данные
Как безопасно прочитать настройки из localStorage и сохранить работоспособность страницы при ошибке хранения.
SEOИзображения в мобильной версии: сохраняем смысл и доступность
Как сохранить схемы и иллюстрации на телефоне, подобрать alt и проверить загрузку изображений.
MySQLВзаимоблокировка InnoDB: повторяем транзакцию целиком
Что делать при deadlock в InnoDB, как повторить транзакцию и почему нельзя бездумно повторять любой запрос.
SEOНастоящий 404 и soft 404: проверяем ответ страницы
Почему текст «страница не найдена» должен сопровождаться HTTP 404 и как проверить ответ сервера.
PHPcomposer.lock: воспроизводим состав зависимостей приложения
Чем отличаются composer install и update и как composer.lock помогает установить одинаковые версии библиотек.
PostgreSQLAutovacuum в PostgreSQL: наблюдаем прежде, чем менять настройки
С чего начать проверку autovacuum: мёртвые версии строк, длинные транзакции и различия VACUUM, ANALYZE и FULL.
JavaScriptДата без сюрпризов: ISO для хранения и Intl для отображения
Как хранить момент события, не путать его с календарной датой и показывать время в нужном часовом поясе.
