定义从不同库调用的静态方法(例如“generate_random_string”、“generate_random_user_agent”)最优雅的方式是什么?
最佳实践是什么?
定义从不同库调用的静态方法(例如“generate_random_string”、“generate_random_user_agent”)最优雅的方式是什么?
最佳实践是什么?
我见过的最佳实践包括:
module
一个/lib/
计划它们,就好像您可能在某个时候想要将它们分离到自己的 gem 中,或者可能在某个时候将它们作为服务提供。这并不意味着从一开始就将它们设计为单独的服务,但一定要确保它们不依赖于应用程序中的任何其他代码。
一些基本代码可能类似于:
module App::Services
def generate_random_string
# ...
end
def generate_random_user_agent
# ...
end
end
然后在您的模型或控制器代码(或任何地方)中,您可以像这样包含它们:
class MyModelClass < ActiveRecord::Base
include App::Services
def do_something_here
foo = random_string
# whatever...
end
def random_string
generate_random_string
end
end
请注意,我将调用隔离generate_random_string
在它自己的方法中,因此它可以在模型类中使用,但可能很容易被其他方法切换出来。(这可能比您想要的多一步。)