
События в браузере: клики, формы и делегирование в JS
Как обрабатывать клики и отправку форм, почему обработчик на каждой кнопке ломается на динамическом списке и как одно событие на родителе решает проблему делегированием.

Как обрабатывать клики и отправку форм, почему обработчик на каждой кнопке ломается на динамическом списке и как одно событие на родителе решает проблему делегированием.

Как искать узлы в DOM правильными методами и менять их так, чтобы браузер не пересчитывал раскладку на каждой строке цикла. Разбор приёмов и их цены.

Асинхронность, this и передача объектов по ссылке ломают привычки бэкендера сильнее, чем синтаксис. Разбираем, где интуиция из PHP и Python подводит в JavaScript.

Вы уже пишете на PHP или Python и решили добавить JavaScript. Разбираем, что перенесётся из старого опыта без боли, а что придётся выучить заново — и с чего начать, чтобы не переучиваться потом.

Синхронный слушатель, который на демо отрабатывал за миллисекунды, добавляет 400 мс к каждому HTTP-запросу в проде. Разбираем, почему EventDispatcher в Symfony молча тормозит и что ломается первым.

Запрос отдаётся за 800 мс, а бизнес-логика в нём — 30 мс. Разбираем, как Symfony Profiler и Blackfire показывают, куда уходит остальное время, и на какие цифры смотреть в первую очередь.

Под нагрузкой ORM превращается в узкое место: N+1, распухший UnitOfWork и hydration съедают память и время. Разбираем, что ломается первым и как это мерить.

Почему контейнер Symfony не читает конфиги на каждый запрос, как он превращается в один PHP-класс и что случается, когда вы забываете про lazy-сервисы под нагрузкой.

Приложение на Symfony 6.4 начало отдавать ответы по 3-4 секунды под нагрузкой при нормальном CPU. Разбираем, как искали причину без Web Profiler и что оказалось виновато.

Профилировщик Symfony по умолчанию не работает в prod, а blackfire включают не всегда. Разбираем, где искать реальные тормоза без dev-профайлера и какие паттерны ловить на ревью.

Batch-скрипт на Doctrine ORM съедает гигабайты и падает с Allowed memory size exhausted на десятках тысяч сущностей. Разбираем, почему EntityManager держит всё в памяти и как это лечить.

Symfony-приложение отдаёт 502 на пиковой нагрузке, а локально всё летает. Разбираем, где реально уходит время под трафиком и чем профилировать прод без остановки сервиса.