AzLearn

تمرين إعادة البناء

Env Config Reader

أعد كتابة برنامج Go يقرأ إعدادات من متغيرات البيئة.

go ~20 دقيقة متوسط
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
package main

import (
	"fmt"
	"os"
	"strconv"
	"time"
)

type Config struct {
	AppName string
	Port    int
	Debug   bool
	Timeout time.Duration
}

func envString(key, fallback string) string {
	value := os.Getenv(key)
	if value == "" {
		return fallback
	}
	return value
}

func envInt(key string, fallback int) int {
	value, err := strconv.Atoi(os.Getenv(key))
	if err != nil {
		return fallback
	}
	return value
}

func envBool(key string, fallback bool) bool {
	value, err := strconv.ParseBool(os.Getenv(key))
	if err != nil {
		return fallback
	}
	return value
}

func loadConfig() Config {
	return Config{
		AppName: envString("APP_NAME", "azlearn"),
		Port:    envInt("PORT", 8080),
		Debug:   envBool("DEBUG", false),
		Timeout: time.Duration(envInt("TIMEOUT_SECONDS", 5)) * time.Second,
	}
}

func main() {
	os.Setenv("APP_NAME", "rebuild")
	os.Setenv("DEBUG", "true")

	config := loadConfig()
	fmt.Printf("%+v\n", config)
}
اكتب هنا