Avatar ·

Comment gérer correctement la configuration en Go : env, flags ou fichiers ?

Bonjour à tous ! Je suis nouveau en Go et j'essaie de comprendre comment stocker correctement les paramètres de l'application. J'ai commencé à écrire un petit serveur web, et j'ai rencontré un problème : je veux que l'application puisse être configurée sans recompilation — changer le port, la chaîne de connexion à la base de données, le niveau de logging. Pour l'instant, je fais comme ça : je crée un package config, où dans init() je lis les variables d'environnement. Mais cela semble être une solution de fortune, surtout quand il y a beaucoup de paramètres (environ 20). De plus, je ne sais pas comment définir des valeurs par défaut ni comment passer facilement la configuration à d'autres packages. Voici mon code actuel : ```go package config import "os" var Port string var DBHost string func init() { Port = os.Getenv("PORT") if Port == "" { Port = "8080" } DBHost = os.Getenv("DB_HOST") if DBHost == "" { DBHost = "localhost" } } ``` Ensuite, dans main.go, j'accède simplement à config.Port. Mais ce sont des variables globales, et dans les tests, il est difficile de les redéfinir. Dites-moi, comment gère-t-on cela en Go ?