Size: a a a

Saint P Ruby Community

2021 March 02

GG

Gleb Grishakov in Saint P Ruby Community
Vyacheslav Alexeev
а колбэки для установки глобальных переменных для CRUD всю жизнь были и все понимают как они себя ведут
это весомый довод, тут абсолютно согласен.
источник

NB

Nikita Bulai in Saint P Ruby Community
Vyacheslav Alexeev
а колбэки для установки глобальных переменных для CRUD всю жизнь были и все понимают как они себя ведут
эм ну очень такое

1) никогда не знаешь из action, доступна ли тебе переменная или нет (выполнился ли твой load_user или нет)
2) никогда не знаешь имя этой самой переменной - может @user, а может @current_user. а ведь и @current_admin может быть. Постоянно надо лазить по этим самым коллбэкам и проверять что там вообще и для каких экшенов вызываются
3) Если есть наследование контроллеров, то это превращается в ещё болший ад

Гораздо проще сделать чёткое и всем ясное

def index
 @user = User.find() # ок, если есть логика - вынесите в метод
 # ...
end

Никуда идти не надо, всё перед глазами, всё супер явно. О боже, на пару строк кода стало больше, рельсовики этого так не любят 😢

Но да, согласен, некоторые коллбэки реально очень useful - как та же аутентификация (а-ля before_action :authenticate_user! )
Но совать в них всё подряд - имхо такое
источник

VA

Vyacheslav Alexeev in Saint P Ruby Community
Nikita Bulai
эм ну очень такое

1) никогда не знаешь из action, доступна ли тебе переменная или нет (выполнился ли твой load_user или нет)
2) никогда не знаешь имя этой самой переменной - может @user, а может @current_user. а ведь и @current_admin может быть. Постоянно надо лазить по этим самым коллбэкам и проверять что там вообще и для каких экшенов вызываются
3) Если есть наследование контроллеров, то это превращается в ещё болший ад

Гораздо проще сделать чёткое и всем ясное

def index
 @user = User.find() # ок, если есть логика - вынесите в метод
 # ...
end

Никуда идти не надо, всё перед глазами, всё супер явно. О боже, на пару строк кода стало больше, рельсовики этого так не любят 😢

Но да, согласен, некоторые коллбэки реально очень useful - как та же аутентификация (а-ля before_action :authenticate_user! )
Но совать в них всё подряд - имхо такое
++ я в общем согласен
источник

АД

Антон Дьячук... in Saint P Ruby Community
Gleb Grishakov
мнения бывают разные) я выслушал обе точки зрения, и обе для меня звучат достаточно правдоподобно)
за неимением опыта, решил поинтересоваться тут через голосовалку 🤔
А почему одно исключает другое?
источник

GG

Gleb Grishakov in Saint P Ruby Community
Антон Дьячук
А почему одно исключает другое?
Мож и нет)
Я и пришел, чтоб узнать)
источник

АД

Антон Дьячук... in Saint P Ruby Community
Gleb Grishakov
Мож и нет)
Я и пришел, чтоб узнать)
Статья плохая
источник

GG

Gleb Grishakov in Saint P Ruby Community
Короче, в итоге победила мемоизация, энивэй. Закрываю)
Всем благодарен)
источник

f🤔

focusshifter 🤔 in Saint P Ruby Community
Антон Дьячук
Статья плохая
+
источник

AP

Andrew Putintcev in Saint P Ruby Community
📌Online Ruby Meetup №13
Уже ставшая традицией встреча Рубистов пройдет в 13-ый раз!

Программа:

19:00 Григорий Петров - Почему Ruby медленный?
19:45 Евгений Фатеев - Learning to Rank вместе с Ruby
20:30 Андрей Молчанов - Краткая история кеширования
21:15 Дмитрий Цепелев - Как ускорить GraphQL API

📆 Дата: 11.03.2020
🌎 Формат online
🆓 Участие бесплатное
💌 Регистрация
источник

m

max in Saint P Ruby Community
А ещё лучше не использовать инстанс переменные в контроллере, а явно передавать их во вьюху через locals
источник

m

max in Saint P Ruby Community
Тогда и мемоизация не нужна
источник

VD

Vla Dem in Saint P Ruby Community
max
А ещё лучше не использовать инстанс переменные в контроллере, а явно передавать их во вьюху через locals
Это вершина мастерства)
источник

m

max in Saint P Ruby Community
Коллбэки неплохо использовать для чего-то "глобального" типа authenticate_user, который не зависит от текущего контролёра/других инстанс переменных объявленныхв нем
источник

VD

Vla Dem in Saint P Ruby Community
max
Коллбэки неплохо использовать для чего-то "глобального" типа authenticate_user, который не зависит от текущего контролёра/других инстанс переменных объявленныхв нем
Другими словами, коллбеки, не меняющие состояние
источник

АД

Антон Дьячук... in Saint P Ruby Community
Колбяки неплохо использовать тогда когда их нужно использовать
источник

w

wi11son in Saint P Ruby Community
Антон Дьячук
Колбяки неплохо использовать тогда когда их нужно использовать
лучше быть богатым и здоровым, чем бедным и больным
источник

VD

Vla Dem in Saint P Ruby Community
Хотя я лично сторонник «ресурсных» коллбеков (before_action :set_user). Если использовать консистентно и не злоупотреблять, то выходит удобно.
В идеале бы хотелось использовать не instance переменные, а некоторый state со структурой (или даже схемой).
источник

VD

Vla Dem in Saint P Ruby Community
wi11son
лучше быть богатым и здоровым, чем бедным и больным
Лучше гипс и палатка, чем гранит и оградка
источник

AD

Anton Davydov in Saint P Ruby Community
Vla Dem
Хотя я лично сторонник «ресурсных» коллбеков (before_action :set_user). Если использовать консистентно и не злоупотреблять, то выходит удобно.
В идеале бы хотелось использовать не instance переменные, а некоторый state со структурой (или даже схемой).
Я смог согласиться в своей голове только на колбэк с аунтификацией. С ресурсными я так и не увидел хорошего примера
источник

NB

Nikita Bulai in Saint P Ruby Community
Anton Davydov
Я смог согласиться в своей голове только на колбэк с аунтификацией. С ресурсными я так и не увидел хорошего примера
This 👍
источник