Bloğa geri dön

Go'da Paketler Nasıl İçe Aktarılır

Go'da Paketler Nasıl İçe Aktarılır

Go (Golang olarak da bilinir) açık kaynaklı, statik tipli bir programlama dilidir. İlk olarak Google tarafından geliştirilmiştir. Go'nun öne çıkan bazı özellikleri arasında sadelik, yüksek performans, okunabilirlik ve verimlilik yer alır.

Diğer tüm önde gelen programlama dillerinde olduğu gibi, Go'nun standart kütüphanesi de zengin bir paket seti sunar. Ancak, üçüncü taraf paketleri dahil ederek işlevleri de genişletebiliriz. Bu kılavuz, paketleri içe aktarmayı ve bunları Go projelerinize dahil etmeyi gösterecektir.

Gereksinimler

Bu kılavuzu takip etmek için elinizin altında aşağıdaki bileşenlerin hazır olması gerekir:

Adım 1 – Go Kurulumu

Çekirdek kurulumunu zaten tartışmıştık Ubuntu 20.04 üzerinde Go programlama dili. Ancak, daha kolay alternatif bir yöntem var: g  (hafif bir Go sürüm yöneticisi).

Kullanacak olmamızın nedeni g  Ubuntu’nun paket depolarında veya snap'te bulunan Go sürümlerinin hiçbirinin mevcut en son Go sürümünü içermemesidir (v1.18 bu kılavuzun yazıldığı sırada). Herhangi bir programlama dili paketinin mevcut en son sürümünün kullanılması her zaman önerilir.

Aşağıdaki komut, g  kurulum betiğini çalıştıracaktır:

Import Packages in Go install go

Import Packages in Go installing go 2

Değişikliklerin geçerli olması için kabuk oturumunu yeniden başlatmanız gerekir. Yeniden başlattıktan sonra kurulumu doğrulayın:

Import Packages in Go check go version

Go'yu kurduktan sonra, şunun da kurulması önerilir: gopls . Bu, resmi Go dil sunucusudur. VS Code, Vim, Emacs, Sublime Text, Atom ve çok daha fazlası gibi birçok metin editörüyle uyumludur. Aşağıdaki komutu çalıştırın:

Go programlama ortamımız artık hazır.

Adım 2 – Örnek Bir Go Betiği Oluşturma

Bu kılavuzda gösterilen tüm kodlar tek bir Go betiğine sığacaktır. Örnek bir Go betiği oluşturun:

Betiğe değişiklikleri yaptıktan sonra, aşağıdaki Go komutunu kullanarak çalıştırabiliriz:

Burada, Go derleyicisi kodu yorumlayıcı modunda çalıştıracaktır.

Adım 3 – Standart Kütüphane Paketlerini Kullanma

Go, standart kütüphanesinde devasa bir koleksiyonla birlikte gelir. Çok sayıda paketten oluşur, örneğin:

  • fmt: C dilindekilere benzer işlevlerle biçimlendirilmiş G/Ç (I/O) uygular ( printf  ve scanf ).
  • http: Bu paket, web servisleri oluşturmak, veri göndermek ve almak için işlevler sağlar http  protokolü üzerinden vb.

Herhangi bir paketi bir Go projesine dahil etmek için, bunun import  ifadesi kullanılarak uygulanması gerekir. Bu ifade, import  anahtar kelimesi ve paket adları ile birlikte bildirilir. Örneğin, math/rand  paketini içe aktarmak için import ifadesi şu şekilde görünür:

Aşağıdaki kod, math/rand  paketindeki çeşitli işlevleri uygular:

Bu kod, ekrana 10 rastgele tam sayı (0 ila 24) yazdıran basit bir for döngüsünü gösterir. Burada:

  • rand.Int() : Bu işlev çağrısı rastgele bir tam sayı döndürür.
  • rand.Intn() : Şuna benzer şekilde çalışır: rand.Int()  ancak rastgele tam sayılar için aralığı tanımlayan bir parametre kabul eder (0'dan belirtilen sayıya kadar).

Ardından, kodu çalıştırın:

Çıktı şu şekilde görünecektir:

random number program

Rastgele sayı üretecinin tohumu (seed) varsayılan olarak sabit bir değer olduğundan, çıktının tamamen aynı olacağını unutmayın. Bu durum, bir sözde rastgele sayı üretecinin doğasıdır. Rastgele tohum hakkında daha fazla bilgiyi buradan edinebilirsiniz.

Adım 4 – Birden Çok Paketi İçe Aktarma

Daha büyük ve daha karmaşık projelerin birden fazla paketi dahil etmesi gerekir. Bunları Go kodunuza nasıl aktarırsınız? Geçerli seçeneklerden biri, içe aktarılan her paket için ayrı içe aktarma (import) ifadeleri kullanmaktır. Ancak bu yaklaşım, aşağıdaki içe aktarma yapısına kıyasla verimsizdir:

Burada, tek bir import ifadesi aynı anda birden fazla paketi dahil eder. Bu, okunabilirliği artırırken yazılması gereken kod miktarını azaltır.

Aşağıdaki kod bu özelliği uygulamaya koymaktadır:

Kodu çalıştırın:

Çıktı şuna benzer görünecektir:

importing multiple packages

Adım 5 – Ek Go Kütüphanelerini Kurma

Go'nun standart kütüphanesi çok sayıda kullanışlı paketle birlikte gelir. Bunlar, tasarımları gereği genel amaçlıdır. Geliştiricilerin kendi özel ihtiyaçlarını karşılamak için standart kütüphanenin üzerine kendi paketlerini oluşturmalarına olanak tanır. Resmi Go paket veritabanına göz atın.

Peki ya üçüncü taraf bir Go paketi uygulamanız gerekirse? Go, go install  komutu ile birlikte gelir ( go get  artık kullanımdan kaldırılmıştır). İnternetten herhangi bir üçüncü taraf Go paketini çekebilir.

Göstermek amacıyla, cobra-cli  paketini kuracağız. Aşağıdaki Go komutu gerekli dosyaları indirip kuracak ve paketi Go kütüphane sistemine entegre edecektir:

install cobra cli

The binary of cobra-cli  ikili dosyası aşağıdaki konumda yer almalıdır:

list gopath files

Diğer paket dosyaları aşağıdaki konumda yer almalıdır:

list package files

Go v1.11 sürümünden itibaren, Go modülleri içe aktarmak istediğiniz paketin sürümünü tanımlar. Bu durum burada ayrıntılı olarak açıklanmıştır: Go Modülleri GitHub.

Adım 6 – Paket Takma Adları (Aliases)

Çeşitli durumlarda, yerel paketler ile içe aktarılan paketler arasında çakışan paket adlarıyla karşılaşabilirsiniz. Takma ad kullanmak (aliasing) bu çakışmayı burada çözer. Takma ad yapısı şuna benzer:

Basit Go programımızı, fmt_alias  takma adını şu paket için kullanacak şekilde değiştirelim: fmt :

Şuna dikkat edin: fmt.Printf() kullanmak yerine, şu paket takma adını kullanıyoruz: fmt_alias.Printf() .

Ancak Go, takma adlara pek sıcak bakmaz. İçe aktarma adı çakışmasını önlemek için takma adlar kullanırken, en yerel veya projeye özgü içe aktarmaya takma ad vermeniz önerilir. Örneğin, hem yerel bir strings  paketine hem de bir sistem strings  paketine sahip olmak istiyorsanız, sistem paketine değil, yerel pakete takma ad vermelisiniz.

En iyi pratik, en başta ad çakışmalarından kaçınmaktır.

Adım 7 – İçe Aktarmaları Biçimlendirme

Tüm içe aktarmaları tek bir import  ifadesi kullanarak bildirmeyi öğrendik. Ya birden fazla içe aktarmanız olsaydı? Örneğin:

İçe aktarmaları biçimlendirmek, paketleri belirli bir sıraya koyarak kodun tutarlılığını artırır. Sadece içe aktarmaların sırasını düzenlediği için rastgele commit'leri de önler. Ayrıca gereksiz kod dalgalanmasını ve kafa karıştırıcı kod incelemelerini engeller.

Çoğu modern editör, içe aktarmaları sizin için otomatik olarak biçimlendirecektir. Alternatif olarak, destekledikleri araç: goimports. Sektörde, içe aktarmaları manuel olarak sıralamak yerine goimports  kullanmak yaygın bir uygulamadır. Ek olarak, goimports  koddaki stil değişikliklerini de yansıtır.

İşte import  bloğuna goimports uygulandıktan sonraki görünümü :

Bir kalıp fark ettiniz mi?

  • Öncelikle tüm standart kütüphaneler gruplandırılır.
  • Gruplar boş satırlarla ayrılarak kodun okunabilirliği artırılır.

Son Düşünceler

Go'da içe aktarmalar (imports), Go'da yerleşik olmayan fonksiyonların çağrılmasını sağlayan güçlü bir özelliktir. Standart kütüphane birçok genel amaçlı paket sunarken, Go üçüncü taraf paketleri de destekler. Bu kılavuz, yerleşik ve üçüncü taraf Go paketlerinin nasıl içe aktarılacağını göstermektedir.

Bu kılavuzda, Go programlarımızı yorumlayıcıyı kullanarak çalıştırdık. Ancak, daha iyi performans için kodları bağımsız ikili dosyalara derleyebilirsiniz. Şunun hakkında daha fazla bilgi edinebilirsiniz: Go programlarını buradan derleme. Eğer Nginx ile bir Go web uygulamasını nasıl dağıtacağınızı öğrenmek isterseniz bu eğitime göz atın. Ek olarak, şunları gösteren kılavuzumuza göz atabilirsiniz: kendi Go paketlerinizi nasıl yazacağınızı.

Bir Go geliştiricisi misiniz? CloudSigma, Go API desteği sunuyor projelerinizle sorunsuz entegrasyon için.

Keyifli Kodlamalar!

author

Preslav Dobrev

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.