在代码中间要求有优势吗?
Is there advantage in requiring in the middle of the code?
仅在必要时加载 Ruby 文件,我在项目中这样做:
XController ...
...
if(!user.last_ip_country_id || user.last_login > Date.today - 1.week)
require 'ip_to_country.rb'
想想 Ruby on Rails 是如何运行的,这样做有意义吗?它应该在顶部吗?或者,仅在需要时才需要文件(如延迟加载)是否有任何优势?
如果那部分代码在一开始就执行一次,那么这样做是有意义的。事实上,有真正的代码可以做到这一点。典型的例子是当你想根据你的环境需要不同的 gems 或本地文件时。
此外,当要加载的文件有自己的名称 space 且不与代码的其他部分交互时,您可以在代码中的任意位置进行延迟加载。
否则,即如果该部分代码在使用过程中被重复执行,并且要加载的文件可能与其余代码交互(例如通过猴子修补通用类),那么它这样做不是一个好主意,因为如果在特定时间在代码中间加载代码,则更难考虑代码与 gem 的交互。
仅在必要时加载 Ruby 文件,我在项目中这样做:
XController ...
...
if(!user.last_ip_country_id || user.last_login > Date.today - 1.week)
require 'ip_to_country.rb'
想想 Ruby on Rails 是如何运行的,这样做有意义吗?它应该在顶部吗?或者,仅在需要时才需要文件(如延迟加载)是否有任何优势?
如果那部分代码在一开始就执行一次,那么这样做是有意义的。事实上,有真正的代码可以做到这一点。典型的例子是当你想根据你的环境需要不同的 gems 或本地文件时。
此外,当要加载的文件有自己的名称 space 且不与代码的其他部分交互时,您可以在代码中的任意位置进行延迟加载。
否则,即如果该部分代码在使用过程中被重复执行,并且要加载的文件可能与其余代码交互(例如通过猴子修补通用类),那么它这样做不是一个好主意,因为如果在特定时间在代码中间加载代码,则更难考虑代码与 gem 的交互。