всем привет. вопросец такой. из опыта, я пришел к тому, что устанавливать какие-то значения конфигурации
бизнес-логики через ENV нельзя в виде class-level констант, т.к. их невозможно будет замокать в тестах. конфигурацию рантайма устанавливать ОК (типа RAILS_MAX_THREADS).
то есть, так плохо
class MyController
MY_SETTING = ENV.fetch('MY_SETTING', 42).to_i
end
а так - лучше
class MyController
private
def my_setting
@my_setting ||= ENV.fetch('MY_SETTING', 42).to_i
end
end
мне интересно, какие еще тут могут быть идеи, может быть, есть какой-то паттерн или известный де-факто стандартный подход, описывающий такое в целом, типа "no config-related initialization at evaluation time but only at execution time"