Yeni bir programlama dili öğrenmeye, genellikle bir gelenek haline gelmiş olan “Hello World!” programını yazarak başlarız. Ben de bu yazımda Go ile yazılmış basit bir “Hello World” uygulamasının perde arkasında nasıl çalıştığına dair yapmış olduğum araştırmaları ve notlarımı sizinle paylaşıyor olacağım.
Run the code
$ go run hello.go
“run” komutu, parametre olarak almış olduğu dosyadaki tüm kodu geçici bir dizinde derler, ardından sonucu çalıştırır ve çalıştırılabilir bir dosya oluşturmaz. Eğer programın sadece derlenmesini ve böyle bir dosyanın oluşturulmasını istiyorsak “build” komutunu kullanmamız gerekir.
$ go build hello.go
$ ./hello
GO CLI’ya bağlı diğer bazı yaygın komutlar:
go fmt → Bulunduğu dizinde her dosyadaki tüm kodu biçimlendirir.
go install → Bir paketi derler ve bin’e ekler.
go get → Başka bir paketin kaynak kodlarını indirir.
go test → Mevcut projeyle ilgili tüm testleri çalıştırır.
Packages
Bu kısımda hello.go dosyasındaki ilk satırdan bahsedeceğim. Package, ortak kaynak kod dosyalarının bir koleksiyonudur.
Package = Project = Workspace
Package içerisinde go uzantısına sahip birçok dosya bulunabilir. Buradaki tek gereksinim her dosyanın ilk satırında ait olduğu package’ın bildirilmesidir. Go’da iki farklı package türü vardır.
Executable type : Yukarıdaki örnekte yaptığımız gibi derlendiğinde çalıştırılabilir veya exe dosyası ortaya çıkarır. Çalıştırabilir bir dosya oluşturmak istiyorsak kodumuza main package’ını ve main fonksiyonunu eklemeliyiz. (package main)
Reusable type : Çalıştırılabilir bir dosya oluşturmak yerine farklı projelerde bazı kodları yeniden kullanmamıza yardımcı olacak kod bağımlılıkları veya helper olarak düşünebileceğimiz package’lardır. (package calculator, package uploader, …)
Import Statements
Bu kısımda hello.go dosyasındaki üçüncü satırdan bahsedeceğim. Import ifadesi o anda yazdığımız kodun, başka bir package içerisinde yazılmış olan koda erişmesini sağlar.
fmt, Go diline dahil olan biçimlendirmeye yarayan standart bir library’dir. Kodumuza “import fmt” satırını eklemek, fmt package’ının içinde bulunan tüm fonksiyonelliğe erişim vermek anlamına gelir. Özetle, kendi package’ımızdan diğerlerine bir bağlantı oluşturmak için import ifadesini kullanırız.
Functions
Kod örneğimizdeki beşinci satırda bulunan “func main” kısmı diğer programlama dillerindeki fonksiyonlarla aynı işlevi görmektedir.
A function must do just one thing, but it must do it damn well.
Fonksiyon , kendi değişkenleri ve akışı olan, açılış ve kapanış parantezleri dışındaki hiçbir şeyi etkilemeyen kod parçasıdır. main() fonksiyonu, Go’daki çalıştırılabilir bir programın giriş noktasıdır.
Basit bir hello world programıyla Go’daki bazı temel konulardan bahsetmeye çalıştım. Vakit ayırıp okuduğunuz için teşekkür ederim. 🥳
Kaynaklar
📚 Go in Practice: Includes 70 Techniques , Matt Butcher and Matt Farina
📚 Go Design Patterns , Mario Castro Contreras
💻 Master the fundamentals and advanced features of the Go Programming Language (Golang) , Stephen Grider