Aleksander Frolov

с 16.08.2026

Senior/Staff Backend Engineer · PHP Highload · Symfony · Architecture · Team Lead · frolov.guru

0 подписчиков
2 подписки
4343 зелёных теста и 150 лишних запросов: как я делал детектор N+1 для PHPUnit

Один open-source тайм-трекер на Symfony имеет 4343 теста, и все они проходят. При этом каждое сохранение записи времени отправляет в базу три дополнительных SELECT-запроса: ставку самой записи, ставку проекта и ставку активности. Если в одном flush() 50 записей, а столько строк показывает страница массового редактирования, только за ставками уходит…

Один CAST, и view в PostgreSQL дороже в тринадцать раз. Я поднял MySQL 8.4 и PostgreSQL 17 и всё померил

На одном собеседовании меня спросили про VIEW. Ответил честно: в живых проектах они мне почти не попадались, для агрегатов надёжнее держать отдельную таблицу. Один из собеседников сказал: "Ничего ты не понимаешь во VIEW" - и все посмеялись.

Работая с PHP, испытываешь постоянную необходимость поддерживать документацию в актуальном состоянии. В последнее время PHP-проекты — это API-first, когда бек на PHP, а фронт собирается отдельно.

Тут у нас два пути:

Онлайн-аукцион на понижение выглядит просто: участники предлагают цену ниже текущей, кто меньше всех — победитель. Но как только аукцион становится «живым» — с таймером на экране и ставками, которые обязаны дойти до всех мгновенно, — простая задача превращается в связку из четырёх нетривиальных проблем: реалтайм, гонки, деньги и доверие.

Я выложил п…