Herkese selamlar, bugünkü konumuz Go ile Web API Rehberi elimden geldiğince anlatacağım. Tekrardan yeni konumla buradayım iyi okumalar diliyorum. Eleştiriye her zaman açık biri olarak her insan gibi bende hata yapabilirim. konu altından saygı çerçevesinde dile getirirseniz bilgi alış-verişi/beyin fırtınası yapabilirim. :͛)͛
Şimdi öncelikle başlıklarımızdan bahsedeyim;
> Go'nun ilk çıkışı/Nedir.
> Web Geliştirme Uygulamaları ile GO’nun Avantajları.
> Go ile Adım Adım Web Geliştirme.
> Go ile Web Sunucusu Oluşturun.
> GO ‘da Şablonlarla Çalışmak.
> GO’nun Kullanım Alanları.
Şimdi ise fazla vaktinizi çalmadan başlayalım ki sıkılmayın : D
Öncelikle; Her şey 2007 yılında, yazılım dünyasının efsane isimleri Rob Pike, Ken Thompson ve Robert Griesemer’in Google çatısı altında kafa kafaya vermesiyle başlamış. Piyasaya sürülen Golang ( GO programlama dili ) Google tarafından desteklenen ve kullanım kolaylığı ile öne çıkan bir programlama dilidir. 2007 yılında olsada 2009 yılında tam olarak geliştirilmiş bir dil olarak, Çıkış amacı Google’ın kendi içindeki sistemleri daha hızlı, verimli ve güvenli hale getirmekti. Açık kaynaklı olan bu programlama dili C++, Python ve java gibi dillere alternatif olarak tasarlanmış ve eş zamanlı programlama için güçlü destek sunmaktadır. Kullanıcılar GO’da web API geliştirme uygulamaları ile her boyutta ve zorlukta web projeler geliştirebilir.
Statik olarak derlenen GO’nun sunucu tarafında güçlü bir temele sahiptir. Konteynerleştirme, mikro hizmetlerle sağlanan bu temelin yanında güçlü standart kitaplıklara ve yerel http desteğine de sahip bir dildir.
Web Geliştirme Uygulamaları ile GO’nun Avantajları
Hızlı ve iyi performanslı web uygulamaları için en iyi seçenek olan GO dilinin temel kod tabanında HTML, http ve JSON gibi öğeler bulunur. 25 anahtar sözcükten oluşan sade yapısı diğer programlama dillerindeki başarılı yönlerin tümünü kapsar. Özellikle farklı programlama dillerinin eleştirilen yönlerinin çözüldüğü bu uygulama, son zamanların en popüler programlama dilleri arasında yer alıyor.
GO’nun popüler olmasını sağlayan avantajlarını şu şekilde sıralayabiliriz:
- Goroutines ve kanalları sayesinde yerleşik eşzamanlılık desteği sunar. Bu sayede verimli bir şekilde eşzamanlı kodlar yazılabilir. Aynı anda pek çok isteği işlemi alır ve artan trafiğin işlenmesinde kolayca ölçekleme yapabilir. Bu da yüksek performansa sahip web uygulamaları ortaya çıkarır.
- Pascal ve C gibi dillerden esinlense de anlaşılır ve temiz söz dizimi bulunur. Web geliştiricileri bu sayede gereken teknik ve terimleri hızla kavrar.
- GO derlenmiş bir dildir. Bu nedenle dinamik yazılım ve yorumlanan dillerle alakalı yükü azaltır. Performans olarak üst düzen bir deneyim ortaya çıkar. Web uygulamalarında daha düşük kaynak tüketimine karşılık daha yüksek yürütme hızı elde edebilirsiniz.
- Net/ http gibi paketleri içeren kapsamlı bir kitaplığa sahip olan GO, bu yerleşik destek sayesinde üçüncü bir tarafın kitaplıklarına ihtiyaç duymadan web uygulamalarınızı hızlı bir şekilde geliştirmenizi sağlar.
- Sürekli büyüyen ve canlı geliştirici topluluğu ile Go ile web programlama web geliştirme deneyiminizi sürekli geliştirecektir.
- Tek bir yürütülebilir ikili dosyaya yerel derleme desteği sunar. Bu özellik sayesinde Docker gibi konteynerleşme teknolojileri için çok uygun bir taban hazırlar. Web uygulamalarınızı kolay bir şekilde ölçeklendirebilir, dağıtımını yapabilir ve yönetebilirsiniz.
Go ile Adım Adım Web Geliştirme
Pek çok farklı sunucu ile sorunsuz bir şekilde çalışan Go, yüksek performanslı ürünler ortaya çıkarır. Geriye dönük uyumluluğu olması, kullanımı oldukça basit olması gibi pek çok özelliği de web geliştiricilerine farklı avantajlar sağlar. Projelerinizde Go ile web geliştirme için şu adımları takip edebilirsiniz:
- Go kurulumu yapın: Golang.org sitesinden GO programlama dilini indirebilirsiniz. Sayfada Microsoft, Apple ve Linux için programın farklı versiyonları yer alıyor. Kendi sisteminiz için en uygun olan sürümü indirerek kullanmaya başlayabilirsiniz. Site üzerinden kurulum talimatları takip edilerek basit bir şekilde indirme tamamlanabilir. İndirme işlemi bittiğinde GOBIN ve GOPATH ortam değişkenlerini Go belgelerindeki önerileri baz alarak ayarlamalısınız. Kodları yazmak için herhangi İDE kullanılabilir. JetBrains Goland, Visual Studio Code, Atom gibi alternatiflerden birini seçebilirsiniz. Seçtiğiniz IDE için bazı eklentiler gerekli olabilir. Onlarında kurulumu yapılmalıdır.
- Go Programını öğrenin. Go ile web geliştirme yapmak için programa ait temellerinin öğrenilmesi gereklidir. Bunun için çeşitli kitaplar ve yayınlar inceleyebilirsiniz. Oldukça sade bir dil olduğu için karmaşık kodlar öğrenmenize gerek olmadan dili kolayca öğrenebilirsiniz.
- Yerleşik Web Geliştirme Desteğini tanıyın. Web uygulamaları geliştirirken http isteklerini işlemek ve trafiği sunmak için yerleşik paketleri bulunur. Bu paketler ile basit bir şekilde http istemcileri ve sunucuları oluşturabilirsiniz.
- Go Web Çerçevelerini Deneyin. Gin, Revel ve Echo Go web çerçeveleridir. Bu çerçeveler sayesinde çalışmalarınızı geliştirebilirsiniz. Şablonlar ya da ara yazılımlar oluşturabilirsiniz.
- Web Uygulamaları Oluşturma Provası. İhtiyaçlarınıza ve tercihlerinize göre küçük çaplı bir web uygulaması oluşturun. Bu şekilde küçük provalar ile programlama dilinin kalıplarını, en iyi uygulamalarını ve ekosistemini öğrenebilirsiniz.
- Go Topluluğuna Dahil Olun. Go programlama diline ait pek çok konferans, toplantı ve forumlar bulunur. Açık kaynak projeleri olması da hem programlama dilinin hem geliştiricilerinin sürekli kendini yenilemesi anlamına gelir. Bir topluluk içinde çalışmak onların deneyimlerinden faydalanma imkanı verir. Yeni araçlar ve kitaplıklar keşfedebilirsiniz.
Bu adımları takip ederek Go web geliştirme alanında ustalaşabilirsiniz. Sürdürülebilir ve ölçeklendirilebilir web uygulamaları oluşturmak için farklı avantajları bulunan bu dili gelişen ve değişen özellikleri ile kullanabilirsiniz.
Go ile Web Sunucusu Oluşturun
Web sunucusu oluşturma GO dilinin ilk kullanım durumlarından biridir. Basit bir sunucu oluşturmak için ‘net/http’ paketini kullanabilirsiniz. Bu paket içinde tüm temel araçlar yer alır. Temel bir web sunucusu şu şekilde oluşturulur:
Go ile Web Sunucusu Oluşturun
Web sunucusu oluşturma GO dilinin ilk kullanım durumlarından biridir. Basit bir sunucu oluşturmak için ‘net/http’ paketini kullanabilirsiniz. Bu paket içinde tüm temel araçlar yer alır. Temel bir web sunucusu şu şekilde oluşturulur:
- ‘net/http’ paketini içe aktarın. Bu paket http işlevlerine erişmenizi sağlar.
- Rotalarınızı ve bunlarla ilgisi olan işleyici işlevlerini tanımlayın. Bunun için ‘http.HandleFunc()’ işlevi kullanılabilir.
- Web sunucunuzu başlatın. Bunun için ‘http.ListenAndServe()’ kullanabilirsiniz.
Bu başlıkları tamamladığınızda programı çalıştırın. Go proramı web sunucunuzun 8080 numaralı bağlantı kısmında yer alan http isteklerini dinlemeye başlar. Bu şekilde tanımlanan işleyici ve yol eşleşmelerine göre uygun yanıtlar verilir.
Basit web sunucuları oluştururken bu işlemler yeterli olur. Daha büyük ölçekli web uygulamaları için farklı API’den destek alabilirsiniz. Bunun için GO web çerçevelerinden birini kullanabilirsiniz. Bu çerçevelerde web uygulama şablonları, ara yazılımlar ve yönlendirmeler yer alır. Bunlar sayesinde daha gelişmiş web deneyimi elde edebilirsiniz. Popüler GO web çerçeveleri şu şekilde sıralanabilir:
Basit web sunucuları oluştururken bu işlemler yeterli olur. Daha büyük ölçekli web uygulamaları için farklı API’den destek alabilirsiniz. Bunun için GO web çerçevelerinden birini kullanabilirsiniz. Bu çerçevelerde web uygulama şablonları, ara yazılımlar ve yönlendirmeler yer alır. Bunlar sayesinde daha gelişmiş web deneyimi elde edebilirsiniz. Popüler GO web çerçeveleri şu şekilde sıralanabilir:
- Echo: Güçlü bir şablon oluşturma motoruna sahiptir. Ara yazlım destekleri ve kapsamlı API de yer alır.
- Revel: Sezgisel API, esnek ve ölçeklenebilir mimari, yerleşik geliştirme ortamı sunar.
- Gin: Esnek, basit ama yüksek performans odaklı bir çerçevedir. Ara yazılım desteği de vardır.
- Iris: MVC mimarisine sahiptir. Oturum işleme ve web socket desteği ile yüksek performans sağlar.
- Gorilla: Birleştirilebilen yeniden kullanılabilen bileşenleri vardır. Güçlü modüler web araç setleri ile başarılı projeler oluşturur.
Bu çerçevelerden birini seçerken kendi projenizin ihtiyaçlarını baz almanız önemlidir. Kişisel tercihleriniz de seçimlerinize yön verebilir. Minimalist bir tasarım için Gorilla ve Gin önerilirken tam özellikli platformlar için Echo ve Revel gibi çerçeveler daha doğru seçim olacaktır.
GO ‘da Şablonlarla Çalışmak
Web uygulamaları dinamik içerik oluşturma becerisi ile hazırlanmalıdır. Bunun için farklı kaynaklardan şablonlar ile veriler alılar. ‘ html/template ve text/template’ paketleri ile Golang’da web geliştirme uygulamaları içinde şablonlarla çalışmanızı sağlar. Çalışma sırasında gerçek verilerle değiştirilen yer tutuculara sahip şablonları bu paketler sayesinde tanımlayabilirsiniz. Genel anlamda farklı içerikler türlerinde ve kullanıcı girişlerinde dinamik web sayfaları sağlar. GO’da şablonlarla çalışmak için şu başlıklar kullanılabilir:
GO ‘da Şablonlarla Çalışmak
Web uygulamaları dinamik içerik oluşturma becerisi ile hazırlanmalıdır. Bunun için farklı kaynaklardan şablonlar ile veriler alılar. ‘ html/template ve text/template’ paketleri ile Golang’da web geliştirme uygulamaları içinde şablonlarla çalışmanızı sağlar. Çalışma sırasında gerçek verilerle değiştirilen yer tutuculara sahip şablonları bu paketler sayesinde tanımlayabilirsiniz. Genel anlamda farklı içerikler türlerinde ve kullanıcı girişlerinde dinamik web sayfaları sağlar. GO’da şablonlarla çalışmak için şu başlıklar kullanılabilir:
- Şablon dosyası oluşturulur: çift kaşlı ayraçlar içinde yer tutucular içeren HTML dosyasını ya da metni tanımlayabilirsiniz.
- Şablon dosyası ayrıştırılır: ‘template.ParseFiles()’ işlevi kullanılabilir.
- Şablon işlenir: ‘Execute()’ şablon oluşturulur. Şablonun yer tutucular ile verile sağlamasını ve birlikte çıktı alınmasını ‘io.Writer’ ile yapabilirsiniz.
Şablonlarla çalışmak veri odaklı ve dinamik içerikler oluşturmanıza olanak sağlar. Web geliştirme deneyimlerinize önemli avantajlar katar. Özellikle GO’nun yerel şablon desteğini kullanarak farklı içerik türlerini, proje gereksinimlerini ve kullanıcı girdilerini karşılayan esnek web tasarım çalışmaları hazırlayabilirsiniz.
package main import ( "html/template" // Güvenli web çıktısı için html/template kullanırız "os" ) // 'Kullanici' adında bir veri yapısı (struct) tanımlıyoruz type Kullanici struct { Ad string Rol string } func main() { // 1. Şablon dosyasını ayrıştırma (Parse) // 'template.New' ile yeni bir şablon oluşturup içeriğini sağlıyoruz tmpl, err := template.New("kullaniciSayfasi").Parse("<h1>Selam THT, {{.Ad}}!</h1><p>Rolünüz: <strong>{{.Rol}}</strong></p>") if err != nil { panic(err) } // 2. Şablona göndereceğimiz veriyi hazırlama veri := Kullanici{ Ad: "Suskun", Rol: "Moderasyon", } // 3. Şablonu işleme (Execute) ve çıktıyı standarda (os.Stdout) yazma // Şablondaki {{.Ad}} ve {{.Rol}} yer tutucuları, 'veri' içindeki değerlerle değiştirilir. err = tmpl.Execute(os.Stdout, veri) if err != nil { panic(err) } } |
Eğer bu kodu çalıştırırsanız;
<h1>Selam THT, Suskun!</h1><p>Rolünüz: <strong>Moderasyon</strong></p> |
GO’nun Kullanım Alanları
Yüksek performanslı web sunucuları için kullanılabileceği gibi mikro hizmetler geliştirmek içinde tercih edilir. http paketi ve http sunucuları oluşturma alanında oldukça pratik uygulamalar sunar. Bunlar dışında şu alanlarda da GO ile istenilen sonuçlar elde edilebilir:
- Web geliştirme
- Sistem programlama
- Veri tabanı yönetimi
- Dağınık sistemler
- Konteyner yönetimi
- Ağ programlama
- Performanslı arka uç servisleri
- İşletim sistemi araçları
- Gömülü sistemler
- API geliştirme
Özet geçecek olursak aşağıya elimden geldiğince kısa ufak paragraf halinde yazayım;
Go'nun Web API'lerden Kullanım Alanlarına kadar listeledik. Kısacası, Go'nun web dünyasında neden bu kadar değerli bir araç olduğunu elimden geldiğince tüm yönleriyle kavradık diye düşünüyorum. Başka bir konuda görüşmek dileğimle.





