Комментарии 11
«он позволяет отделять приложения от системы», однако «они могут быть заданы на системном уровне». Два экземпляра приложения с разной конфигурацией через переменные окружения? Конфликт имен переменных? Явный конфиг лучше неявных переменных.
+1
А как вы управляете конфигурацией в вашем приложении?
Через конфиг файлы, например json, в GO же есть прям из коробки отличная возможность описать структуру и замапить ее.
0
Да, существуют пакеты, предлагающие готовое решение для конфигурации вашего приложения
А то что у вас используется "github.com/joho/godotenv"
это несчитово?
Мы используем например "github.com/crgimenes/goconfig"
0
Использую переменные окружения для указания пути к файлам конфигурации. Такой вариант хорош, кроме всего прочего, и кроссплатформенностью — не приходится зашивать в код пути к файлам, которые могут зависеть от ОС.
0
Есть еще простенькая библиотека https://github.com/caarlos0/env. Она позволяет мапить переменные окружения на структуру в стиле encoding/json
+1
сначала вносил конфигы через ясон и хмл, потом пытался через флаги, потом пытался как переменные окружения…
по моему, если бы разрешалось вносить параметры извне в соответствии с некоторым локальным файлом — это бы упростило жизнь и избавило бы от многих дискуссий.
по моему, если бы разрешалось вносить параметры извне в соответствии с некоторым локальным файлом — это бы упростило жизнь и избавило бы от многих дискуссий.
0
Если это утилита, github.com/urfave/cli удобная библиотека для разруливания конфигурации.
0
Переменные окружения сами собой не появятся. Вопрос: а как вы устанавливаете переменные окружения? Как вы отслеживаете и храните историю изминений переменных окружения?
0
В go-awesome списке целая пачка библиотек для конфигурации через ENV-переменные, но фаворит вроде github.com/caarlos0/env
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Практичный гайд по переменным окружения в Go