Как стать автором
Обновить

Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.2K
Всего голосов 26: ↑26 и ↓0+26
Комментарии5

Комментарии 5

Мониторинг must have, получается. Если бы не он, пара небольших ошибок как снежный ком положили бы проект на лопатки

Да, всё верно. Многие этим пренебрегают, и зря.

Статьи об увеличении производительности настолько редки, что уже читаю со скупой слезой умиления. Спасибо.

Спасибо за статью!

Здесь в память загружаются абсолютно все привязанные к пользователю токены.

Правильно понимаю, что если этого места не было, и вместо него был бы, например, запрос в базу за конкретным токеном, то lazy-load по связи всё же срабатывал бы при сериализации юзера? Спрашиваю, потому что при code review у меня бы зацепило взгляд именно это место.

Lazy-load здесь не работал, потому что был явный запрос всех токенов. Если бы обращения к полю $this->apiTokens не было, то и загруженных токенов в памяти не было бы. При сериализации, насколько я понимаю, сохраняется текущее состояние объекта... Но вот лезет ли он при этом в БД за связанными объектами? Я задумался... не помню точно как это работает с lazy связями... возможно и да, нужно проверить. Но в любом случае, мы убрали эту связь из модели, а получение токена реализовали через репозиторий - это позволило не думать о сериализации, т.к. в модели не стало самой связи.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории