Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

Go Programlama Dili (Golang) ile Ayar Dosyası Kullanımı

1 min read

Golang Configuration File

Her projenin olmazsa olmazıdır ayar (konfigürasyon) dosyaları. Son zamanlarda bu maksatla .env (dotenv) kullanımı yaygınlaşmış olsa da, ben özellikle Go Programlama Dili ile oluşturduğum projelerde JSON kullanmayı tercih ediyorum. Bu yazıya temel olması için hazırladığım goconf mini projesinde de go ile json kullanımını göstermeye çalıştım.

Go ile Dosya Okuma

Ayar dosyası adı üstünde bir dosyadır (file). Demek ki buradaki mesele JSON formatındaki bir dosyadan verileri go projesine çekmek. Aslında go ile dosya işlemlerini zaten anlatmıştım. İlgili yazıda belirtilen konuları burada pratiğe döktüğümüzü görebilirsiniz.

JSON Ayar Dosyası

Ayar dosyamızın (conf.json) içeriği şu şekilde:

{
    "Animal"    : "Elephant",
    "Fruits"    : ["Apple", "Banana"],
    "Quantity"  : 100
}

Bilerek 3 farklı değişken tipi kullandım. Görebileceğiniz gibi Animal string, Fruits string’lerden oluşan bir dizi ve Quantity integer tipinde değişkenlerdir.

Go ile JSON Dosya İçeriğini Çekme

Go ile json dosyasını okuduğumuz ve buradaki verileri projede kullanılabilir hale getirdiğimiz kodlarımız şu şekildedir:

package main

import (
	"encoding/json"
	"fmt"
	"os"
)

// Conf struct to handle variables
type Conf struct {
	Animal   string
	Fruits   []string
	Quantity int
}

func main() {

	file, _ := os.Open("conf.json")
	defer file.Close()
	decoder := json.NewDecoder(file)
	conf := Conf{}
	err := decoder.Decode(&conf)
	if err != nil {
		panic(err)
	}

	fmt.Println("Animal   :", conf.Animal)
	fmt.Println("Fruits   :", conf.Fruits)
	fmt.Println("Quantity :", conf.Quantity)

	/* Output

	Animal          : Elephant
	Fruits          : [Apple Banana]
	Quantity        : 100

	*/

}

Özetlemek gerekirse burada şunları yapıyoruz:

  • Ayar dosyamızdaki değişkenlere uygun bir struct (Conf) oluşturuyoruz.
  • Open ve json methodları yardımıyla json dosyamızdaki verileri Conf struct’ına atıyoruz. Hepsi bu kadar.

Github Sayfası ve Son Sözler

Yine bir Go Programlama Dili yazısının sonuna geldik. Özetleyecek olursak bu yazıda go projelerinizde kullanabileceğiniz json formatındaki bir ayar dosyasının nasıl kullanılabileceğimizi görmüş olduk.

goconf ismini verdiğim mini projenin kodlarında github sayfasından ulaşabilrsiniz.

Burada anlatmış olduğum konu konfigürasyon dosyaları için başlangıç düzeyinde olup, hazır paket olarak gelişmiş bir çözüm arıyorsanız viper, nispeten daha sade ve basit bir çözüm arıyorsanız joshbetz/config paketini tavsiye edebilirim.

Sevgiler, saygılar…

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

Go’da Empty Struct Karşılaştırma Problemi

Yazılım geliştirirken bazen anlam veremediğimiz durumlarla karşılaşırız. Her programlama dilinde olduğu gibi Go’da da özenle işlenmesi ve açıklanması gereken konular vardır. Bunlardan birisi de...
Erhan Yakut
2 min read

Go Programlama Dili Kaynakları

Her gün çevremde Go Programlama Dili‘ni merak eden ama nasıl ve nereden başlayacağını bilemeyen birçok kişiyle karşılaşıyorum. Twitter mesaj kutum da bu konuların sorulduğu...
Erhan Yakut
4 min read