Архитектура настроек в PHP: почему константы — тупик, и почему JSON?

Рано или поздно любой модульный проект на PHP обрастает десятками настроек и превращается в минное поле из «магических строк» или гигантских классов-помоек с сотнями констант. В эт…

Безопасные миграции БД при деплое: паттерн Parallel Change и блокировки в проде

Классический сценарий аварии при выкатке: релизный пайплайн прошел, тесты зеленые, миграция применилась за 40 миллисекунд. Через 10 секунд мониторинг взрывается пятисотыми ошибками…

Cursor: когда имеет смысл запуск в облаке и почему агенты сжигают баланс

Кнопка запуска задач в облаке (Cloud Agents) выглядит привлекательно: нажал, закрыл крышку ноутбука, а через полчаса забрал готовый Pull Request. На практике большинство разработчи…

Cursor под капотом: куда пропал Reindex, как устроен Instant Grep и работа с AI-скиллами

Разработчики, открывающие настройки свежих версий Cursor в поисках кнопки «Resync» или статуса переиндексации проекта, обнаруживают, что привычных тумблеров больше нет ни в меню ID…

Cursor под капотом: изоляция чатов, ловушки кастомных моделей и удаление соавтора из Git

При ежедневной разработке в Cursor с использованием чатов и фоновых агентов разработчик неизбежно упирается в неочевидную механику самого редактора: контекст переполняется старыми…

Pest 5: разбираем breaking changes, параллельные кэши и почему старые костыли отправляются в архив

При запуске параллельных тестов и проверки покрытия типов в крупных PHP-проектах на связке Pest + PHPStan разработчики часто сталкиваются со странными падениями. Самый яркий пример…