Go में कॉन्फ़िगरेशन को सही तरीके से कैसे प्रबंधित करें: env, फ़्लैग या फ़ाइलें?
सभी को नमस्ते! मैं Go में नया हूँ और एप्लिकेशन सेटिंग्स को सही तरीके से स्टोर करने का तरीका समझने की कोशिश कर रहा हूँ। मैंने एक छोटा वेब सर्वर लिखना शुरू किया, और मुझे एक समस्या आई: मैं चाहता हूँ कि एप्लिकेशन को बिना रीकंपाइल किए कॉन्फ़िगर किया जा सके — पोर्ट, DB कनेक्शन स्ट्रिंग, लॉगिंग लेवल बदलना।
अब तक मैं ऐसा कर रहा हूँ: मैं config पैकेज बनाता हूँ, जहाँ init() में मैं environment variables पढ़ता हूँ। लेकिन यह एक कामचलाऊ उपाय लगता है, खासकर जब सेटिंग्स बहुत हों (लगभग 20)। साथ ही, मुझे नहीं पता कि डिफ़ॉल्ट वैल्यू कैसे सेट करें और कॉन्फ़िग को अन्य पैकेजों में आसानी से कैसे पास करें।
यह रहा मेरा वर्तमान कोड:
```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"
}
}
```
फिर main.go में मैं बस config.Port का उपयोग करता हूँ। लेकिन ये global variables हैं, और tests में इन्हें ओवरराइड करना मुश्किल है।
कृपया बताएँ, Go में कॉन्फ़िगरेशन प्रबंधित करने का सही तरीका क्या है?