Anasayfa Bloglar En Sık Sorulan 30 Golang Mülakat Sorusu

En Sık Sorulan 30 Golang Mülakat Sorusu

Yazılım Geliştirme
8 Dakika Okuma Süresi · 19.09.2023
Blog Small Image

Go veya Golang, Google'ın popüler ve açık kaynaklı programlama dilidir. BBC, Netflix, Uber ve büyük teknoloji devleri yüksek performans elde etmek için Golang'ı kullanır. Bu nedenle, Golang bilen yazılımcılara olan ihtiyaç gün geçtikçe artıyor. 

Golang geliştiricisi olarak yeni bir iş arıyorsanız, teknik mülakatlarda Go sorularıyla karşılaşmanız da muhtemel. Ancak, endişelenmeye gerek yok. Bu içeriğimizde sıkça sorulan Golang mülakat sorularını listeledik. 

Bu sorulara çalışarak hayalinizdeki işe kolay bir şekilde ulaşabilirsiniz. O halde Golang mülakat sorularını inceleyelim. 👇


 

En Popüler Golang Mülakat Soruları ve Cevapları 

 

1. Go programlama dili nedir? 

Go, Google tarafından 2009 yılında geliştirilen, hızlı ve güvenli bir şekilde uygulamalar yapmak amacıyla tasarlanan programlama dilidir. Go, C ve Java gibi programlama dillerine benzer bir yapıya sahiptir. Ancak, Golang daha kolay ve anlaşılır bir syntax'e sahiptir. 

Go, multi-threading desteği sunan çoklu iş parçacıklı uygulamalar yapmak için uyumlu bir programlama dilidir. Go'nun en büyük avantajı, yüksek performans sunması ve aynı zamanda kolay bir syntax yapısına sahip olmasıdır. 

Golang, bugünün modern web ve bulut teknolojileri için ideal bir programlama dilidir. Dünya çapında oldukça popülerdir. Google, Dropbox ve Uber gibi büyük teknoloji şirketleri tarafından da kullanılmaktadır. 


 

2. Golang’in avantajları nelerdir? 

  • ✅ Yüksek Performans: Go, C ve Java gibi dillere benzer performans sunar. 
  • ✅ Kolay ve Anlaşılır Syntax: Go'nun syntax'i diğer dillere göre daha kolay ve anlaşılırdır. 
  • ✅ Çoklu İş Parçacıklı Desteği: Go, multi-threading desteği sunan uygulamalar yapmak için idealdir. 
  • ✅ Popüler: Go, oldukça popüler bir programlama dilidir. Büyük teknoloji şirketleri tarafından da kullanılmaktadır. 
  • ✅ Güvenli: Go, güvenli uygulamalar yapmak için idealdir. 


 

3. Golang’in syntax’i nasıldır? 

Golang’in syntax'i, C ve Java gibi dillere benzerdir. Ancak, Golang’in syntax'i diğer dillere göre daha kolay ve anlaşılırdır. Örneğin, değişken tanımlama ve fonksiyon çağrıları Go'da daha kolaydır. Ayrıca Golang, tip dönüşümleri ve paket yönetimi diğer dillere göre daha kolaydır. 

 

  • Production = production_name “=” [ Expression ] 
  • Expression = Alternative { “l” Alternative } 
  • Alternative = Term { Term } 
  • Term = Production_name l token [ “…”token] l Group l Option l Repetition 
  • Group = “ ( “ Expression”)” 
  • Option = “ [ “ Expression “ ]” 
  • Repetition = “ {“ Expression “}” 


 

4. Golang’deki paketler nedir? 

Her Golang programı paketlerden oluşur. Golang’deki paketler, birbirleriyle ilişkili olan fonksiyonlar, değişkenler, türler ve diğer yapıların toplu olarak tanımlandığı ve kullanılabileceği yapıları temsil eder. 

👆 Bu kod kullanılarak, paketler içeri veya dışarı aktarılabilir. 


 

5. GOPATH ortam değişkeni nedir? 

GOPATH, bir ortam değişkenidir. GOPATH, Go programlama dilindeki paket ve kaynak dosyalarının bulunduğu klasör yolunu tanımlar. Paketlerin nasıl bulunacağını ve kullanılacağını belirler. 

GOPATH değişkeni bir veya birden fazla klasör yolunu içerebilir ve her klasör yolu, farklı paketlerin bulunduğu bir paket depolama yeridir. Ayrıca, Golang GOPATH değişkenini ihtiyaca göre ayarlamaya izin verir. Bu, paketlerin kolayca yönetilebilmesi anlamına gelir. 


 

6. Golang'deki GoROOT değişkeni nedir? 

GoROOT, Golang SDK'sının nerede olduğunu belirleyen bir değişkendir. GoROOT, Golang kurulumu sırasında otomatik olarak ayarlanır. Genellikle Golang’in kurulu olduğu dizinde bulunur. Böylece, Golang’i kullanırken kütüphanelere ve araçları kolayca erişilebilir. 


 

7. Golang büyük/küçük harfe duyarlı mı? 

Golang, büyük/küçük harfe duyarlıdır. Değişken isimleri, fonksiyon isimleri ve paket isimleri gibi programlama elemanları için belirlenen adlar büyük/küçük harfe duyarlıdır. Bu nedenle, aynı isimde farklı elemanlar tanımlanamaz. 'ab' ve 'AB' birbirinden farklıdır. 


 

8. Golang hızlı mı? 

Golang'in kolay ve küçük syntax’i Golang'i hızlı bir programlama dili yapar. Golang’in eşzamanlılık özellikleri ve iyi bellek yönetimi, büyük ve kompleks uygulamalar için iyi bir performans sunar. Ayrıca, Golang’i derlemek oldukça hızlıdır. 


 

9. Golang'de Hello World nasıl yazılır?

Golang'de "Hello World!" yazmak için şu kod kullanılabilir 👇: 

 

10. Golang programlamada Fmt nedir? 

Format paketi fmt sembolü ile gösterilir. Standart bir kütüphanedir. Kullanıcılar bu işlevi yazdırma, okuma, dosyaya yazma, dosyadan okuma ve diğer girdi/çıktı işlemleri için kullanır. 


 

11. Golang arayüzleri tam olarak nedir? 

Arayüzler, belirli bir davranışı belirtmek için kullanılır. Go'daki arayüzler diğer dillerdeki arayüzlerden farklıdır. Go arayüzleri, bir veya daha fazla yöntem imzasının bir koleksiyonunu ifade etmek için kullanılan özel bir türdür. 


 

12. Golang'de “Goto” ne anlama gelir? 

Goto ifadesi, Golang'de bir atlama ifadesi anlamına gelir ve kodun etiketlenmiş bir konuma gitmesini sağlar. Goto, program üzerinde belirli bir etiket kontrolü sağlamak için kullanılır. Etiket, bir kod bloğunda tanımlanır. "goto" ifadesi ile etikete erişilir. 


 

13. Golang çöp toplama nedir? 

Çöp toplama, diğer nesneler tarafından kullanılmak üzere bir programa dinamik olarak atanan depolamayı yeniden amaçlar. 

Go programlama dilinde, geliştiricilerin bellek alanını manuel olarak yönetmesine gerek yoktur. Golang çalışma zamanı bellek alanını dinamik olarak yönetir. Kullanılmayan değişkenleri ve nesneleri bellekten otomatik olarak atar. Böylece, hata riskini azaltılır. 


 

14. Go'daki işaretçi ne anlama gelir? 

İşaretçiler, herhangi bir değişkenin adresini tutan değişkenlerdir. Adresteki verileri işlemek için kullanır. İşaretçiler bu verilere direkt olarak erişir. 

 

*: İşaretçi tarafından saklanan adresteki değere erişmek için kullanılır. 

&: Adres operatörü olarak da adlandırılan “& operatörü”, değişkenin adresini almak için kullanılır. 


 

15. Golang'de statik tip değişken bildirimi nedir? 

Statik tip değişken bildirimi, o değişkenin oluşturulduğu andaki veri türünü belirler. Statik tip bildiriminde değişkenin tipi değiştirilemez. 


 

16. Golang'de sabit değişken nedir? 

Sabit değişken, değişkenin değerinin program boyunca aynı olduğu değişken türüdür. Sabit değişken, tanımlanırken değer ataması yapılır. Değer atama işleminden sonra veya programın çalışma süresinde değerler değiştirilemez. 

Sabit değişken tanımı, “const” anahtar kelimesi ile yapılır. Özellikle, program boyunca değişmeyen kuralları belirlemek için de kullanılır. 


 

17. Golang’deki değişkenlerin kapsamı nedir? 

Golang’de, her değişken istatistiksel olarak kapsamlıdır ve iki türe ayrılır: Yerel değişkenler, ya bir işlev içinde ya da bir blok içinde bildirilir. Global değişkenler, fonksiyonun veya bir bloğun dışında bildirilir. 


 

18. Golang kanallarını nedir? 

Kanallar, Goroutine'ler arasında veri paylaşmayı sağlayan araçlardır. Goroutine'ler, kanalları veri göndermek veya almak için kullanır. Kanallar, verilerin güvenli bir şekilde Goroutine'ler arasında iletimini sağlar. 


 

19. Golang'de kanallar nasıl oluşturulur? 

1️⃣ “chan” anahtar kelimesi eklenerek bir kanal oluşturulabilir: 

 

2️⃣ make() işlevi kullanılarak bir kanal oluşturulabilir: 

 

3️⃣Verileri bir kanala göndermek için  <- operatörü kullanılabilir: 

 

4️⃣ Gönderilen verileri geri alabilmek için şu syntax kullanılır: 


 

20. Golang'daki operatörleri listeleyiniz. 

Go dilinde kullanılan bazı operatörler şunlardır: 

 

  1. Aritmetik operatörler: +, -, *, /, % 
  2. Atama operatörleri: =, +=, -=, *=, /=, %= 
  3. Karşılaştırma operatörleri: ==, !=, >, <, >=, <= 
  4. Mantıksal operatörler: &&, ||, ! 
  5. Bitwise operatörler: &, |, ^, &^, &#8203;oaicite:{"index":0,"invalid_reason":"Malformed citation <<, >>"}&#8203; Fonksiyon çağırma operatörleri: ( ) 
  6. Tür dönüştürme operatörleri: type( ). 

 

21. Golang programlama dilinde bir dizi yazdırılmadan önce biçimlendirilebilir mi?

Evet, Go dilinde bir dizi yazdırılmadan önce biçimlendirilebilir (formatlanabilir). 

Sprintf komutunu kullanarak yapılabilir 👇: 

 

22. Golang çalışma alanı nedir? 

Golang çalışma alanı üç dizin içerir ve bu çalışma alanı Go kodunu taşır. Çalışma alanı, Go programının içinde tanımlanmış değişkenlerin, dizilerin, fonksiyonların ve diğer veri yapılarının saklandığı bellek bölgesidir. 

 

  • Paketler halinde düzenlenen kaynak dosya “Src” 
  • "Pkg" paket nesneleri dizinde saklanır 
  • "Bin" yürütülebilir komutlar içerir 


 

23. Birden çok değişken türünü Golang'de tek bir kod satırında nasıl bildirebiliriz? 

var variable1, variable2, variable3 type 


 

24. Golang hangi veri türlerini kullanır? 

  • Method 
  • Boolean 
  • Numeric 
  • String 
  • Array 
  • Slice 
  • Struct 
  • Pointer 
  • Function 
  • Interface
  • Map
  • Channel 


 

25. Golang hangi tip dönüştürmeyi destekler? 

Golang programlama dili, açık tür dönüştürmeyi destekler. Golang’de, tam tamsayıyı kayan noktalı sayıya dönüştürmek için, tam sayı değerinin kayan noktalı sayı türüne atanması yeterlidir.

 

26. Goroutine nedir? Nasıl durdurulur?

Goroutine, özel bir goroutine iş parçacığı kullanarak diğer goroutine'lerin yanında eş zamanlı olarak yürütülen bir işlevdir. 

Goroutine, Go dilindeki temel çoklu iş parçacığı (concurrency) birimidir. Bir fonksiyonun, diğer işlemlerden bağımsız olarak çalışmasını sağlayan hafif ve eşzamanlı bir yapıdır. 

Bir goroutine oluşturmak için, go fonksiyon bildiriminden önce anahtar kelime eklenmesi gerekir. 👇 

 

Goroutine sinyal kanalı gönderilerek durdurulabilir. Goroutine'ler arasında veri iletişimi için kanallar kullanılabilir. Kanallar, bir goroutine'in diğerine veri göndermesine veya almasına olanak tanır. Kanal kapatma ve boşluklu dönüş değerleri kullanılarak goroutine'leri kontrol etmek mümkündür. 

 

27. Golang'de dizeler nasıl birleştirilir? 

Go dilinde dizeleri birleştirmek için + operatörü kullanılır. 

 

28. Go’da unit test yazma nasıl yapılır? 

Go'da unit test yazmak için aşağıdaki adımları takip edebilirsiniz: 

 

✔️ Test dosyası oluşturma: Testlerinizi yazmak için, test edeceğiniz kodun dosya adına _test.go ekleyerek ayrı bir dosya oluşturmanız gerekir. Örneğin, eğer main.go adlı bir kod dosyanız varsa, buna karşılık gelen test dosyasının adı main_test.go olmalıdır. 

✔️ Test fonksiyonu oluşturma: Test edeceğiniz fonksiyonun adının başına Test ön eki ekleyerek test fonksiyonu oluşturabilirsiniz. Test fonksiyonları, *testing.T türünden tek bir parametre almalıdır. 

✔️ t.Run kullanma (isteğe bağlı): Eğer testleriniz farklı senaryolara veya durumlara sahipse, t.Run metodunu kullanarak testlerinizi daha iyi organize edebilirsiniz. t.

✔️ Errorf ile hata raporlama: Test fonksiyonları içinde test başarısızlıklarını tespit ederseniz, t.Errorf yöntemi ile hata mesajını raporlayabilirsiniz. 

✔️ go test komutunu kullanarak testleri çalıştırma: Testleri çalıştırmak için terminalde go test komutunu çalıştırabilirsiniz. Bu komut, test dosyasındaki tüm test fonksiyonlarını çalıştırır ve sonuçları ekrana yazar. 


 

29. Golang'de Lvalue ve Rvalue nedir? 

Golang'de Lvalue ve Rvalue, programlama dilinde değer atama işlemleriyle ilgili kavramlardır. 

 

Lvalue: Bir bellek konumuna atıfta bulunan ifadelere "Lvalue" denir. 

✅ Bir bellek konumuna atıfta bulunur 

✅Bir değişken tanımlayıcısını temsil eder. 

✅ “=” operatörün sol veya sağ tarafında görülebilir. 

Örneğin: x=20 ifadesinde, x bir Lvalue ve 20 bir Rvalue’dur. 

 

Rvalue: Bellekteki bazı adreslerde saklanan bir veri değerini ifade eder. 

✅ Bellekte saklanan bir veri değerini temsil eder. 

✅ Sabit bir değeri temsil eder. 

✅ “=” operatörün sağ tarafında görülebilir. 


 

30. Go'daki döngü yapıları nelerdir? 

Go programlama dilinde sadece for döngüsü bulunur. for döngüsü noktalı virgülle ayrılmış 3 bileşene sahiptir: 

1️⃣ Init > Döngü başlamadan önce yürütülen ifadedir. 

2️⃣ Condition > Döngünün devam edip etmeyeceğini belirlemek için her tekrardan önce Boolean olarak değerlendirilen koşul ifadesidir. 

3️⃣ Post > Her yinelemenin sonunda yürütülen post ifadesidir

İÇERİKLER
Konu içeriği

Önerilen İçerikler

Tüm İçerikler