tgoop.com/itextrapolation/728
Create:
Last Update:
Last Update:
Один из самых показательных и любимых «усложнений» в коде — это минимизация вызова методов на классе. Нет, не вообще вызовов, а тех, которые возвращают данные. Например, вместо того, чтобы на уровне контроллера написать Project.find(params[:id])
у меня появляется конструкция current_user.available_projects.find(params[:id])
, где available_projects
будет методом в классе User
с приблизительно следующей реализацией:
def available_projects
Project.all
end
Технически это будет ровно тот же вызов, стоить он мне будет ноль целых одна сотая джоулей затрат, но потенциального профита через годик это может принести неоценимо много. Ведь теперь все последующие изменения будут опираться на то, что нужно знать текущего пользователя, чтобы найти проект. Поэтому какой-то отдельный сервисный класс нужно будет инициализировать в контексте пользователя. Кому доводилось менять код, в ебенях которого что-то там вызывается снаружи, прекрасно понимают о чём я.
BY Экстраполяция IT
Share with your friend now:
tgoop.com/itextrapolation/728