Comments 5
Мониторинг must have, получается. Если бы не он, пара небольших ошибок как снежный ком положили бы проект на лопатки
Статьи об увеличении производительности настолько редки, что уже читаю со скупой слезой умиления. Спасибо.
Спасибо за статью!
Здесь в память загружаются абсолютно все привязанные к пользователю токены.
Правильно понимаю, что если этого места не было, и вместо него был бы, например, запрос в базу за конкретным токеном, то lazy-load по связи всё же срабатывал бы при сериализации юзера? Спрашиваю, потому что при code review у меня бы зацепило взгляд именно это место.
Lazy-load здесь не работал, потому что был явный запрос всех токенов. Если бы обращения к полю $this->apiTokens
не было, то и загруженных токенов в памяти не было бы. При сериализации, насколько я понимаю, сохраняется текущее состояние объекта... Но вот лезет ли он при этом в БД за связанными объектами? Я задумался... не помню точно как это работает с lazy связями... возможно и да, нужно проверить. Но в любом случае, мы убрали эту связь из модели, а получение токена реализовали через репозиторий - это позволило не думать о сериализации, т.к. в модели не стало самой связи.
Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы