Size: a a a

Saint P Ruby Community

2020 April 24

EM

Eugene Maslenkov in Saint P Ruby Community
зависит от того, как ты валидируешь при сохранении. По факту пользователь может из формы любое значение прокинуть, даже не подходящее по типу. Permitted params ограничивает только ключи/аргументы.
источник

f🤔

focusshifter 🤔 in Saint P Ruby Community
Marat Safin
Почему бы просто не использовать дискорд?
дискорд не умеет в 100+ участников канала и в 50+ участников видео, а видео для всех участников в канале (не стримы) они начали выкатывать только неделю назад
источник

IM

Igor Morozov in Saint P Ruby Community
ну чо, митап в VR Chat?
источник

EM

Eugene Maslenkov in Saint P Ruby Community
Тут про tb спрашивали, сегодня обнаружил, что в нашем проекте он занимает 30% времени от загрузки окружения :). (14-16сек :Е)

UPD: как оказалось в процессе ресерча - это больше завязано на конфигурирование, по факту траейлблейзер прелоадил все модели, что в случае прогона одиночного теста не нужно и эта опция отключаемая - config.trailblazer.enable_loader = false
источник

A

Arkady in Saint P Ruby Community
Eugene Maslenkov
Тут про tb спрашивали, сегодня обнаружил, что в нашем проекте он занимает 30% времени от загрузки окружения :). (14-16сек :Е)

UPD: как оказалось в процессе ресерча - это больше завязано на конфигурирование, по факту траейлблейзер прелоадил все модели, что в случае прогона одиночного теста не нужно и эта опция отключаемая - config.trailblazer.enable_loader = false
существенно
источник

m

max in Saint P Ruby Community
Eugene Maslenkov
Тут про tb спрашивали, сегодня обнаружил, что в нашем проекте он занимает 30% времени от загрузки окружения :). (14-16сек :Е)

UPD: как оказалось в процессе ресерча - это больше завязано на конфигурирование, по факту траейлблейзер прелоадил все модели, что в случае прогона одиночного теста не нужно и эта опция отключаемая - config.trailblazer.enable_loader = false
не будьте голословным, приложите результаты и способы замеров - остальное домыслы =)
сам фреймворк не может грузится столько, если только у вас диск не помер
источник

EM

Eugene Maslenkov in Saint P Ruby Community
max
не будьте голословным, приложите результаты и способы замеров - остальное домыслы =)
сам фреймворк не может грузится столько, если только у вас диск не помер
источник

EM

Eugene Maslenkov in Saint P Ruby Community
max
не будьте голословным, приложите результаты и способы замеров - остальное домыслы =)
сам фреймворк не может грузится столько, если только у вас диск не помер
источник

EM

Eugene Maslenkov in Saint P Ruby Community
max
не будьте голословным, приложите результаты и способы замеров - остальное домыслы =)
сам фреймворк не может грузится столько, если только у вас диск не помер
источник

EM

Eugene Maslenkov in Saint P Ruby Community
max
не будьте голословным, приложите результаты и способы замеров - остальное домыслы =)
сам фреймворк не может грузится столько, если только у вас диск не помер
источник

EM

Eugene Maslenkov in Saint P Ruby Community
max
не будьте голословным, приложите результаты и способы замеров - остальное домыслы =)
сам фреймворк не может грузится столько, если только у вас диск не помер
источник

EM

Eugene Maslenkov in Saint P Ruby Community
к сожалению такой разницы по времени добиться не получилось, здесь мы видим примерно 12%; при этом на скриншотах stack-prof конкретно заметно, как после отключения trailblazer секция с датабейз клинером становится жирнее, что как бы намекает на то, что какая-то жирная секция "ушла".
источник

EM

Eugene Maslenkov in Saint P Ruby Community
тест "пустой"
источник

EM

Eugene Maslenkov in Saint P Ruby Community
все что я сделал - закомментировал trailblzer gem-ы в gemfile,  прогнал bundler и перезапустил спеки.
источник

m

max in Saint P Ruby Community
Trailblazer::Railtie.load_concepts делает require_dependency /app/models/**/*.rb
это вы мне показываете сколько времени надо что бы загрузить все ваши модели =)
источник

EM

Eugene Maslenkov in Saint P Ruby Community
max
Trailblazer::Railtie.load_concepts делает require_dependency /app/models/**/*.rb
это вы мне показываете сколько времени надо что бы загрузить все ваши модели =)
Супер! А то я уже думал, как его выпилить?! Значит буду просто смотреть, как сделать, что бы он в тестах не грузил все мои модели! Простите за простыню, но отлично, что от этого это будет польза!
источник

m

max in Saint P Ruby Community
тогда кто-то вместо него будет делать эти require
require может быть написан в нескольких местах, но реальная загрузка произойдет только 1 раз, и именно этот первый момент вы увидите в flamegraph
по умолчанию, рельса < 6 лениво загружает эти require и делает это она не очень хорошо, поэтому они перешли на zeitwerk
в проде же обычно включен eager_load и рельса будет делать приблизительно то же самое что сейчас у вас делает trailblazer-loader

вроде бы есть настройка config.trailblazer.enable_loader, отключающая такое поведение
возможно для тестов вам подойдет
источник

EM

Eugene Maslenkov in Saint P Ruby Community
Да, меня не смущает загрузка в проде или когда я делаю rails s, но вот запуск тестов, особенно одного... (да, я использую bootsnap и zeus, но все равно иногда с zeus не удобно, и тогда приходится ждать эти 30 секунд, а когда что-то грузит проц то и все 40-50)
---
попробовал config.trailblazer.enable_loader и это работает!
Спасибище!!! 🎉🎉🎉 (жалье, что это всего 12% 😂)
источник

TL

Tab Loid in Saint P Ruby Community
К слову, trailblazer-loader уже не рекомендуется к использованию
источник

TL

Tab Loid in Saint P Ruby Community
И еще один момент, мы недавно на CI включили eager_load для приложения, оказывается codecoverage (simplecov) считается по разному для загруженных и незагруженных файлов
источник