Avatar ·

Go में कॉन्फ़िगरेशन के साथ सही तरीके से कैसे काम करें: ENV, JSON, YAML या फ़्लैग?

सभी को नमस्कार! मैं एक शुरुआती Go डेवलपर हूँ, अपना पहला माइक्रोसर्विस ऑर्डर प्रोसेसिंग के लिए लिख रहा हूँ। मुझे एक समस्या का सामना करना पड़ा: मैं समझ नहीं पा रहा हूँ कि कॉन्फ़िगरेशन पैरामीटर (सर्वर पोर्ट, DB कनेक्शन स्ट्रिंग, बाहरी API URL, टाइमआउट आदि) को सही तरीके से कैसे स्टोर किया जाए। अभी मैंने सब कुछ main.go में हार्डकोड कर दिया है: ```go package main import ( "fmt" "net/http" ) func main() { port := ":8080" dbConn := "postgres://user:pass@localhost:5432/orders?sslmode=disable" apiURL := "https://api.example.com" fmt.Println("Starting server on", port) http.ListenAndServe(port, nil) } ``` मैं समझता हूँ कि यह भयानक है: एनवायरनमेंट (dev/staging/prod) बदलने पर बाइनरी को रीकंपाइल करना पड़ता है, और कोड में पासवर्ड रखना सुरक्षा के लिए आपदा है। मैंने देखा है कि Go में विभिन्न दृष्टिकोणों का उपयोग किया जाता है: कमांड-लाइन फ़्लैग, एनवायरनमेंट वेरिएबल, JSON/YAML/TOML फ़ाइलें। लेकिन कौन सा चुनें? कई स्रोतों को कैसे जोड़ें? कॉन्फ़िगरेशन को टाइप-सेफ कैसे बनाएं?