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

Designing an Endpoint Management Platform

Managing endpoints in enterprise environments is a recurring challenge. As organizations grow, manual operations become unmanageable, visibility decreases, and responding to incidents takes longer...
Erhan Yakut
2 min read

Iterate, Slice, and Deduplicate: Go’s New Tools for Cleaner…

Go keeps evolving — not through radical changes, but through small, elegant additions that make everyday programming smoother. Three of the newest additions to...
Erhan Yakut
1 min read

Retrieving the Correct Hostname on macOS

When dealing with macOS systems, retrieving the correct hostname can be tricky, especially in environments where DHCP and reverse lookup mechanisms are in play....
Erhan Yakut
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *