كيفية إدارة التهيئة في Go بشكل صحيح: env، flags أم ملفات؟
مرحبًا بالجميع! أنا مبتدئ في Go وأحاول فهم كيفية تخزين إعدادات التطبيق بشكل صحيح. بدأت في كتابة خادم ويب صغير، وواجهت مشكلة: أريد أن يكون التطبيق قابلاً للتكوين دون إعادة ترجمة — تغيير المنفذ، سلسلة اتصال قاعدة البيانات، مستوى التسجيل.
حاليًا أفعل ذلك: أنشئ حزمة config، حيث أقرأ متغيرات البيئة في init(). لكن هذا يبدو حلاً مؤقتًا، خاصة عندما يكون هناك العديد من الإعدادات (حوالي 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 ببساطة. لكن هذه متغيرات عامة، ومن الصعب إعادة تعريفها في الاختبارات.
أرشدوني، كيف يتم إدارة التهيئة في Go بشكل معتاد؟