На самом деле я не проверял, работает ли он таким образом, и я не смог найти исчерпывающую документацию о том, как .hrl и горячая перезагрузка кода взаимодействуют, поэтому убедитесь, что дважды проверили это, прежде чем использовать его.
ужно распространять какую-то статическую конфигурацию через мое приложение. Как лучше всего это делать?
Я вижу три варианта:
Вызовapplication:get_env
непосредственно всякий раз, когда модуль требует получить значение конфигурации.Плюс: проще, чем другие варианты.Минус: как протестировать такие модули, не поднимая все приложение?Минус: как запустить определенный модуль с другой конфигурацией (если требуется)?Передайте конфигурацию (получено изapplication:get_env
), к прикладным модулям при запуске.Плюс: модули проще тестировать, вы можете запускать их с другой конфигурацией.Минус: много шаблонного кода. Изменение формата конфигурации требует исправления нескольких мест.Держите конфигурацию внутри отдельного процесса конфигурации.Плюс: более или менее безопасное обращение типа. Проще отследить, где используется определенный параметр и изменить эти места.Минус: нужно запустить процесс настройки перед запуском модулей.Минус: как запустить определенный модуль с другой конфигурацией (если требуется)?