Size: a a a

Saint P Ruby Community

2020 May 14

AD

Anton Davydov in Saint P Ruby Community
мапит все что есть в ENV на структуру описанную, а потом используй как хочешь + не надо париться с дефолтными значениями
источник

IN

Ivan Nemytchenko in Saint P Ruby Community
Ну anyway там не только проблема env-ов решается, это только часть
источник

AD

Anton Davydov in Saint P Ruby Community
ну и проверить все настройки можно до старта приложения проверить
источник

A

Alex in Saint P Ruby Community
интересно, надо глянуть
источник

AD

Anton Davydov in Saint P Ruby Community
кстати, для рельсы вот такое есть

https://github.com/rubyconfig/config
источник

IN

Ivan Nemytchenko in Saint P Ruby Community
Ivan Nemytchenko
Ну anyway там не только проблема env-ов решается, это только часть
А, собссно готовую реализаю можно здесь подглядеть: https://github.com/zzet/persey

Я только не беру часть про подгрузку из внешних файлов.
источник

A

Alex in Saint P Ruby Community
зачем оно нужно, если есть dotenv:)
источник

A

Alex in Saint P Ruby Community
Проблематика, описанная в persey кажется весьма странной. Особенно та часть, которая касается хранения сенситив данных в репозитории и разных конфигураций для разных окружений.
источник

AD

Anton Davydov in Saint P Ruby Community
Alex
зачем оно нужно, если есть dotenv:)
так ты все в дотэнве не можешь держать, желательно уметь настройки из разных конфигов подгружать (ENV, yaml, volt, etc) и уметь с дефолтами/окружениями работать. ну и лично мой загон - уметь типизировать все
источник

A

Alex in Saint P Ruby Community
Зачем?
источник

AD

Anton Davydov in Saint P Ruby Community
ну смотри, локально у меня конфиги в одном месте, в проде в другом + есть библиотеки которые зависят от yaml файлов и так далее
источник

AD

Anton Davydov in Saint P Ruby Community
зачем работать с дефолтом и окружением - потому что для каждого окружения свой дефолт может быть, а типизация позволяет сразу все проверить и подогнать в нужный тип
источник

A

Alex in Saint P Ruby Community
Все конфиги сложить в одно место, конфиги библиотек, которые зависят от ямлов, json-ов, непонятно чего, запроцессить встроив в них нужные данные из единого dotenv, все сложить в репозиторий. Разработчикам позволить опционально переопределить ключи локальной версией енв-файла, разные окружения раскатывать ансиблом.
источник

AD

Anton Davydov in Saint P Ruby Community
так тебе придется все это руками писать и настраивать каждый раз
источник

A

Alex in Saint P Ruby Community
В итоге все лежит в репозитории, все унифицировано минимум различий между окружениями, все централизовано деплоится.
источник

A

Alex in Saint P Ruby Community
Anton Davydov
так тебе придется все это руками писать и настраивать каждый раз
ну а так подключать гем, конфигурировать его, добавлять различные сорсы настроек, заморачиваться с дефолтами, еще и думать про то, как деплоить всю эту кухную:) в чем профит?)
источник

AD

Anton Davydov in Saint P Ruby Community
источник

A

Alex in Saint P Ruby Community
добавляем уровень абстракции, увеличиваем сложность в итоге получаем адаптер, который в общем и целом не выполняет полезной работы
источник

A

Alex in Saint P Ruby Community
ну может быть делает код немного красивее т.к. не нужно делать ENV['UPPER_CASED_PARAM_NAME']
источник

A

Alex in Saint P Ruby Community
ну да, имхо, конечно же
источник