Go, Google Go, isimleriyle de bilinen golang dili 2007 yılında Ken Thompson, Rob Pike ve Robert Griesemer tarafından geliştirilmiş ve günümüz itibariyle Google firmasının destekleyip geliştirmeye devam ettiği açık kaynaklı ve ücretsiz bir yazılım dilidir. Yorumlama özelliği yerine derleme ve statik yazım özelliklerini barındıran golang, C programlama diliyle de benzer özellikler taşımaktadır. Bu programlama dili için ekstra kaynak veya kütüphaneler de yine Google firması tarafından üretilmektedir.
Golang ile Hangi Projeler Geliştirilebilir?
- Golang dilinin ortaya çıkış amacı sistem programlamalarının daha etkili bir şekilde yapılmasıdır. Golang dili sunucu ve sistem geliştirme alanında özellikleri bulunan öğrenmesi kolay bir dildir.
- Golang hızlı ve yüksek performans sağlayan bir dildir. Yüksek kapasiteli web geliştirme projeleri oluşturmanıza olanak tanır.
- Yazılım sektöründe yeni bir dil olduğu için kısıtlı projeleri bulunmasına rağmen mobil platformlarda da geliştirme seçeneği bulunmaktadır. Go dilinde uzmanlaşan kişiler sadece sunucu ve web tarafında yaptıkları geliştirmelerin yanında kendi mobil oyunlarını ve programlarını (Yalnızca Android) bu dil ile geliştirebilecek.
Neden Golang Kullanılmalıdır?
- Sunucu ve sistem geliştirme üzerine bir yazılım dili olduğu için birçok sunucuyla birlikte hatasız bir şekilde çalışabilir.
- Dil, kuralları bakımından diğer dillere göre daha sadedir. Karmaşık sözcük yapılarına sahip değildir.
- Diğer sistemlerle entegre çalışabilme (concurrency) ve statik tipli bir yazılım olması tercih edilme sebeplerinden birisidir.
- Derleme aşaması için tek bir kaynak kullanıyor. Yani bir tane ikili sistemi derleyiciye sokmak yeterli oluyor.
- Geçmişe dönük bir yazılım dilidir. Diğer bir deyişle eski sürümlerde yazılmış bir web projesi güncel sürümlerde de desteklenmektedir.
- Makine diline çevirmek için ekstra programlara ihtiyaç duymayan Galang kullanıcılarının zaman tasarrufunu yapmasını sağlar.
- Golang kendisi için ayrılmış olan bellek ve ram alanını en kaliteli şekilde kullanmak üzerine tasarlanmıştır.
Golang Dilini Kullanan Firmalar
Kullanıcılarına daha hızlı web geliştirme ve internet deneyimi sunan golang, bir çok firma tarafından kullanılmaya başlandı. Golang dilini tercih eden firmalar şunlardır:
- Apple
- Github
- Ubuntu
- Amazon
- Dropbox
- Uber
- Medium
- Trendyol
- Netflix
- Youtube
Golang Yazılımı Nasıl Kurulur?
Golang programlama dili paketlerini bilgisayarınıza indirmek için golang.org resmi sitesini ziyaret edebilirsiniz.
Bilgisayarınıza indirmek için https://golang.org/dl
Yazılım dokümantasyon kaynaklarına erişmek için https://golang.org/doc/
Yazılım dilinde bulunan paketleri görüntülemek için https://golang.org/pkg/
Web üzerinden geliştirme aracını kullanmak için ise https://play.golang.org/ linklerini takip etmelisiniz.
Golang Geliştirme Ortamları (IDE) Nasıl Kurulur?
Golang yazılımını indirdikten sonra sunucu , sistem ya da mobil platform geliştirme işlemlerinizi yapmak için ayrı bir yazılıma ihtiyaç duyacaksınız. En çok kullanılan golang geliştirme ortamları şunlardır:
- Vim : https://www.vim.org/download.php
- Atom : https://atom.io
- Visual Studio : https://visualstudio.microsoft.com/tr/downloads/
- Emacs : https://www.gnu.org/software/emacs/download.html
- Eclipse : https://www.eclipse.org/downloads/
- Intellij: https://www.jetbrains.com/idea/download/
- LiteIDE Metin Editörü : Resmi sitesi liteide.org
- Sublime Text Metin Editörü : Resmi sitesi sublimetext.com
Kurmak istediğiniz geliştirme ortamlarının resmi web sitelerine giderek kişisel bilgisayarınıza uygun olan sürümleri indirebilirsiniz.
En Çok Kullanılan Golang Kütüphaneleri
- ORCA
- Beego
- Gorilla Toolkit
- Gobot
- Martini
Golang ile Yazılım Geliştirme
Println ile Çıktı Almak
Golang yazılım geliştirme için istediğiniz bir geliştirme ortamını kurarak merhaba_dunya.go ismiyle klasör oluşturarak ilk projeniz için kod yazmaya başlayabilirsiniz. Golang dersleri için öğretilen ilk metod ekranda çıktı göstermektir. “Merhaba Dünya” kelimesini kullanıcılara gösterebilmek için şu dize kullanılmalıdır:
Package main
Import “fmt”
Func main () {
Fmt.println(“Merhaba Dünya”)
}
Yukarıdaki örnekte ana paketi ve fmt ön işlemci kütüphanelerini içeri aktardıktan sonra println komutu ile mesajımızın gösterilmesini söyledik. Go dili oldukça hassas bir dildir. Func main ibaresinden sonraki açılan süslü parantez fonksiyonun hemen yanında olmalıdır. Aksi takdirde hata mesajı ile karşılaşabilirsiniz.
CLI Üzerinden Görüntüleme
Yukarıda verilen örnekteki dosya belleğin içerisinde saklanıyor. Bunu komut satırı üzerinden görüntülemek için aşağıdaki ifade kullanılmalıdır:
Go run merhaba_dunya.go
Komutunu çalıştırdığınızda ekrana println alanındaki metin değeri çıkacaktır.
Golang Program Yapısı
Her programlama dilinde olduğu gibi go dilinde de temel bir program yapısı bulunmaktadır. Bu program yapısının içerisinde şunlar bulunur:
Belgeler
Yorum alanları içerisinde oluşturulan ve kullanıcılara gösterilmeyen belgeler içerisinde oluşturulan programın ismi, hangi sürümde oluşturulduğu, programın açıklama alanı , programı kimin yazdığı, ve oluşturulma tarihi gibi ifadeler yer alır.
Önişlemci terimleri
Import “fmt” ile ifade edilen bu bölümde , herhangi bir projeyi derleyici alanına göndermeden önce bu program için olması gereken yazılımların içeriye aktarılması gerektiğini söyler.
Main() fonksiyonu
Her program başlatıldığında kullanılması gereken ana fonksiyondur. Bu fonksiyon olmadığında yapılan projeler hata veya sorunlarla karşılaşarak doğru çalışmaz. Dolayısıyla main fonksiyonu go dilinin beynidir denilebilir.
Yerel değişken
Oluşturulacak fonksiyon içerisinde kullanılacak olan terimlerin önceden tanımlandığı alandır. Daha düzenli kod ve fonksiyon oluşturulabilmesi açısından oldukça önemlidir.
Program yorum alanı
Program yorum alanları, kullanıcılar tarafından görüntülenmesi istenmeyen yapıları içerir. Örneğin yazılan kodun hangi işlevi çalıştırdığı ya da daha sonraki geliştiriciler için bırakılan kısa notlar. Kullanımı şu şekildedir:
/* Burası fonksiyonun başlatıldığı alandır. */
Kullanıcıların yazdığı kod alanları
Belirli bir olayı veya dömgüyü çalıştırmak için main() ana fonksiyonundan sonra gelen tüm alanlardır.
Golang Yazılım Dilinde Kullanılan Veri Türleri
Golang dilinde kullanılan 3 farklı veri türü bulunmaktadır.
Sayılar (Numbers)
Sayılar işaretli ve işaretsiz tam sayılar olmak üzere 2 kategori üzerinde incelenebilir. Bit sayısına göre farklı şekillerde tanımlanan sayıları aşağıda verilen tabloya göre tanımlayabiliriz:
İşaretli Tam Sayılar
Verinin Tipi | Boyutu | Bulunduğu Aralık |
int8 | 8 bit | -128 ile 127 |
int16 | 16 bit | -215 ile 215-1 |
int32 | 32 bit | -231 ile 231-1 |
int64 | 64 bit | –263 ile 263-1 |
İnt | Değişebilir | Değişebilir |
İşaretsiz Tam Sayılar
Verinin Tipi | Boyutu | Bulunduğu Aralık |
uint8 | 8 bit | 0 ile 127 |
uint16 | 16 bit | 0 ile 216-1 |
uint32 | 32 bit | 0 ile 232-1 |
uint64 | 64 bit | 0 ile 264-1 |
Uint | Değişebilir | Değişebilir |
Doğru-Yanlış (Boolean)
Karar vermek için oluşturulan fonksiyonlarda kullanılır. İfade doğruysa true yanlışsa false değerini döndürür.
Kelimeler (String)
Bazı söz dizelerini, kelimeleri ya da özel karakterleri tutmak için kullanılan veri türüdür. “” işareti arasına yazılır.
Golang Değişken Tanımlama
Değişkenler belirli türdeki dosyaları saklamak için kullanılan bellek yapılardır. Her değişken oluşturulduğunda o değişken için bilgisayarın belleğinde yer ayrılır ve çağırma komutu girildiğinde bellekte saklanan değer görüntülenir. Golang dili ile değişken şu şekilde tanımlanmalıdır:
var <değişkenin adı> <değişkenin tipi> = <değişkene eşit olan değer> bu yapıya göre aşağıdaki gibi bir kod yapısı kullanımı doğru olacaktır.
İlgili kütüphaneler dahil edilir. Daha sonra;
Func main() {
var sehirBilgisi string Bu alana değişken tanımlaması yapılır.
sehirBilgisi = “istanbul”
fmt.println(sehirBilgisi)
}
Çıktı olarak fonksiyon içerisinde sehirBilgisi değişkenine eşit olan “İstanbul ” ifadesi bastırılır.
Sabit Değişken
Tanımlandıktan sonra üzerinde güncelleme işlemlerinin yapılamayacağı değişkenlerdir. Kullanımı:
Const <sabit değişken ismi> = sabit değer
Package main
Import “fmt”
Func main() {
const benimMeslegim string = “Web Geliştirme ”
fmt.println(ismim)
}
Aritmetik Operatörler
Golang programlama dili içerisinde yer alan aritmetik operatörler şunlardır:
A=40 B=20 değeri için
+ : İki değişkeni birbiriyle toplar. Çıktı: 60
– : İki değişkenin farkını almak için kullanılır. Çıktı: 20
* : İki değişkeni birbiriyle çarpar. Çıktı: 800
/ : İki değişken arasında bölme işlemi yapar. Çıktı: 2
% : Bölüm sonucunda kalanı göterir. Çıktı: 0
Golang Dili Koşul Yapıları
Oluşturulan fonksiyonlar doğru-yanlış mantığı ile çalışmaktadır. Yani 1. Değer olan if alanına ilerleyen fonksiyon tanımlanan değer ile karşılaştırma yapar sonuç doğruysa fonksiyon yazdırılır. Doğru değilse hemen altındaki if ya da else fonksiyonuna ilerleyerek doğru olan koşulu bulduğunda ekrana yazdırır.
If : Bu blok yalnızca doğru koşullarda çalışmaktadır.
If-Else : En az 1 doğru ve 1 yanlış koşul olduğu durumlarda kullanılan fonksiyon yapısıdır.
İç-içe If : If fonksiyonu içerisinde başka bir if fonksiyonu tanımlanması sonucunda oluşan yapıdır.
Switch : Switch alanları bir durumun birden fazla sonucu olduğunda oluşturulurlar.
Golang Döngüler
Döngüler bir olayın işleyişini kontrol etmek, değiştirmek ya da birden fazla değerin görüntülenmesini istediğimiz durumlarda kullanılan yapılardır. Golang dili içerisinde 3 döngü komutu bulunmaktadır.
- Fonksiyonu kırmak için break
- Fonksiyonu geçmek için continue
- Belirlenen alana ilerlemek için goto komutu kullanılır.
Golang ile Range(Aralık,Dizi) Oluşturma
Range kavramı belirli bir ögeye ait alt kategorileri listelendirmek için kullanılır. Range aralığı oluşturmak için içerisinde yer alan kategoriler for döngüsü içerisinde tutulur.
For key(anahtar) value(değer) := range collection (aralık koleksiyonu) {
// Bu alana sınıflandırmak istediğiniz anahtar kelimeleri yerleştirebilirsiniz.
// Alt çizgi işaretiyle saklamak istemediğiniz anahtar kelimeleri belirterek atlayabilirsiniz.
}
Ana Range yapısı şu şekilde oluşturulmalıdır:
Package main
Import “fmt”
Func main() {
yazilimDilleri := [] string {“HTML” , “CSS” , “Javascript” , “Python” , “PHP” , “Java”}
fmt.println(“Popüler Diller: ”)
for x,y := range yazilimDilleri {
fmt.println(x,y)
}
}
Bu alanda ilk olarak ana paketleri içeriye aktardıktan sonra yazılım dilleri listelendi. Daha sonra Komut satırına yazılacak olan string değeri tanımlandıktan sonra “range” ifadesiyle dizi içerisinde yer alan değerler ekrana yazdırıldı.
Golang Slice Yapısı
Array yapılarına benzerlik gösterir. Aynı sınıfa ait birden çok verinin bir alan içerisinde depolanacağı durumlarda slice komut yapısı kullanılır. Oluşturulan dizi içerisindeki veriler dinamik olarak değişmez. Bir dizinin boyut bilgisini girmeden tanımlamak için “make” ifadesi verilmelidir. Örneğin :
- var numaralar []int /* Büyüklük bilgisi olmayan slice yapısı */
- var numaralar == []int{5,5,5,5,5} /*5 uzunluğa sahip 5 rakamının slice yapısı */
- var numaralar =make([]int,5,5) /*Boyut belirlemeden dizi oluşturma */
Len() ve cap() Fonksiyonunun Slice Yapısında Kullanılması
Slice dizilerinde kapasite ve uzunluk değerlerine erişmek için kullanılan fonksiyonlardır. len() oluşturulan dizinin uzunluğunu cap() ise içerisindeki elemanların kapasite bilgisini verir.
İçerisinde 6 eleman bulunan 9 kapasiteye sahip bir dizi fonksiyonu oluşturalım.
İlk olarak ana fonksiyon olan main ve fmt belirtmeleri yapılır. Daha sonra ;
Func main() {
Var numaralarim = make([]int,6,9)
printSlice(numaralarim)
}
Func printSlice(n [] int){
Fmt.printf(“uzunluk = %d kapasite = %d diziElemanlari = %v\n” , len(n) , cap(n) , n )
}
Yukarıdaki kodların çıktısı şu şekilde görüntülenmelidir:
Uzunluk = 6 kapasite=9 diziElemanlari [0,0,0,0,0,0]
Golang Dilini Öğrenmek İçin Kullanılacak Kaynaklar
İnternet üzerinde bulunan golang dersleri bu dili öğrenmek için en iyi kaynaklardan birisidir. Bu yazılım dilini öğrenmek için en çok kullanılan kaynaklar şunlardır:
- Youtube
- Udemy
- Tour of Golang
- Go by Example
- Coursera Golang Programları
- Tutorials Point – Temel Golang Komutları