Muhit o‘zgaruvchilari bilan ishlash
Muhit o‘zgaruvchisi (environment variable) — operatsion tizim jarayonga nom va qiymat ko‘rinishida uzatadigan konfiguratsiya. Port, ish rejimi yoki tashqi xizmat manzili kabi qiymatlarni koddan ajratish uchun undan foydalaniladi.
os paketi
Go muhit o‘zgaruvchilarini standart os paketi orqali o‘qiydi. os.Getenv faqat qiymatni qaytaradi. os.LookupEnv esa qiymat bilan birga o‘zgaruvchi mavjudligini ham bildiradi.
PowerShell orqali qiymat berib dasturni ishga tushirish mumkin:
O‘zgaruvchi berilmasa yoki bo‘sh bo‘lsa, dastur 8080 standart qiymatidan foydalanadi. LookupEnv bo‘sh qiymat bilan umuman mavjud bo‘lmagan o‘zgaruvchini ajratish kerak bo‘lgan holatlarda ayniqsa foydali.
Qiymatni tekshirish va turga o‘tkazish
Muhit o‘zgaruvchilarining barchasi matn sifatida keladi. Son kerak bo‘lsa, uni ochiq konvertatsiya qilish va ruxsat etilgan oraliqni tekshirish lozim.
Bu tekshiruv abc, 0 yoki 70000 kabi yaroqsiz qiymatlarning server sozlamasiga o‘tib ketishiga yo‘l qo‘ymaydi. Haqiqiy loyihada konfiguratsiyani dastur boshlanishida bir marta o‘qib, tekshirilgan qiymatlarni alohida Config tuzilmasida saqlash qulay.
Qiymat yozish va o‘chirish
os.Setenv joriy jarayon va undan keyin ishga tushirilgan ichki jarayonlar uchun qiymat o‘rnatadi. os.Unsetenv uni olib tashlaydi. Bu chaqiruvlar terminalning yoki operatsion tizimning doimiy sozlamasini o‘zgartirmaydi.
.env fayli nima?
.env — KEY=value yozuvlarini saqlash uchun ishlatiladigan oddiy matn fayli. U Go yoki operatsion tizimning maxsus formati emas. Go standart kutubxonasi .env faylini avtomatik o‘qimaydi: qiymatlarni shell orqali yuklash yoki maxsus tashqi paketdan foydalanish kerak.
Warning
Parol, token va API kalitlarini repozitoriyga commit qilmang. .env faylini .gitignorega kiriting, lekin kerakli nomlarni maxfiy qiymatlarsiz .env.example faylida hujjatlashtirish mumkin. Ishlab chiqarish muhitida maxfiy ma’lumotlar boshqaruvchisi (secret manager) afzal.
Keng tarqalgan xatolar
os.Getenvqaytargan bo‘sh satrni doim “o‘zgaruvchi yo‘q” deb qabul qilish. Bu farq muhim bo‘lsa,os.LookupEnvishlating.- Son va mantiqiy qiymatlarni tekshirmasdan ishlatish.
strconv.Atoiyokistrconv.ParseBoolxatosini tekshiring. - Maxfiy qiymatni logga chiqarish. Xato xabarida o‘zgaruvchi nomini ko‘rsatish yetarli.
- Dastur ishlayotgan paytda muhit o‘zgaruvchisi o‘zgarsa, konfiguratsiya avtomatik yangilanadi deb o‘ylash. Jarayon odatda qiymatni ishga tushish vaqtida o‘qiydi.
Xulosa
Muhit o‘zgaruvchilari konfiguratsiyani koddan ajratadi. Go’da ular os.Getenv yoki os.LookupEnv bilan o‘qiladi. Tashqaridan kelgan har qanday konfiguratsiya singari, qiymatni ishlatishdan oldin turini va ruxsat etilgan oralig‘ini tekshirish kerak.