#claruey #teknik
1. Go'nun harika yanı nedir? - goroutine'ler ve bu işi nasıl yaptığı hakkında düşünmeden çalışmaya izin veren zamanlayıcı.
2. Go'nun eksileri nelerdir? - hata yönetimi
3. Go'ya nasıl geldiniz?
4. Go'nun hafifliğini sağlayan nedir ve neden Go rutinleri daha hızlı geçiş yapar? Bunu işletim sisteminde neden yapamazdık?
5. İşletim sistemi thread'leri yerine goroutine'ler kullanırken ne feda ediyoruz?
6. Eşzamanlılık ve paralellik nedir?
7. net.Listener arayüzü nedir ve metodları nelerdir?
8. Doğrudan ağlar üzerinde mi çalıştınız yoksa frameworkler aracılığıyla mı ve hangileri?
9. TCP ile UDP arasındaki fark nedir ve genellikle ne için kullanılırlar?
10. TCP ve UDP kullanırken riskler nelerdir?
11. bigEndian ve littleEndian nedir?
12. TLS nedir?
13. Mikroservisler arasında veri transferi için hangi yöntemler var (örneğin komutlar/istekler/yanıtlar/dosya transferi)? Burada hangi desenleri veya geliştirme araçlarını seçebiliriz ve bunların incelikleri nelerdir?
14. Ağ üzerinden veri transferi yöntemleri ve avantajları/dezavantajları nelerdir?
15. Hangi veritabanı yönetim sistemleriyle çalıştınız ve hangi araçları kullandınız?
16. Her veritabanı için Go'da hangi kütüphaneyi kullandınız?
17. Geliştirme sırasında veritabanı büyümesini nasıl yönetiyorsunuz?
18. Veritabanı şeması değiştiğinde, eski verileri bozmadan nasıl yönetirsiniz? Göçler hakkında, avantajları ve dezavantajları nelerdir?
19. Üretimde veritabanını nasıl değiştirirsiniz? Bunu yapan kimdi?
20. Veritabanı bileşenini ana mantıktan en iyi nasıl soyutlarsınız ki SQL sorguları ve metodlar kodda dağılmasın? Bunu ayrı bir dizine koyup, bir arayüz geçip, etiketler kullanarak yapar mısınız?
21. İndeksler neden gereklidir ve dezavantajları nelerdir?
22. Projeye ekleyeceğiniz kodu yazma görevi verildiğinde, sonucu nasıl belgelersiniz?
23. Hangi dokümantasyonu kullanırsınız ve ne amaçla + nereye gider? Örneğin, bu arayüz nedir ve ne için kullanılır?
24. go doc'u aktif kullanıyor musunuz ve bu sizin ekibinizde bir uygulama mı?
25. Spesifikasyonları veya markdown dokümantasyonunu eşlik ettiriyor musunuz? Bunu nasıl yapıyorsunuz?
26. İş akışınız nasıldı, kim görevleri verdi ve sonraki adım neydi?
27. Görevleriniz ne kadar detaylı? Sadece erişmek mi gerekiyor yoksa mimari düşünmek ve başkalarına sormak mı?
28. Çok sayıda goroutine içeren bir projeye sahibiz. Tüm goroutine'lerin zarif ve güvenli bir şekilde sona ermesini sağlamak için hangi senkronizasyon araçlarını kullanıyorsunuz?
29. Projede nerede goroutine kullandınız?
30. Bir arayüzü fonksiyon içine geçirirken kaç bayt kaplar?
31. httpHandler nedir, ne alır, hangi yapı ve döndürür, argümanları ve imzası nedir? Ne işe yarar ve nerede kullanılır?
32. Middleware nedir ve nasıl kullanılır? Projenizde nasıldı?
33. Go dilinin hangi özellikleri bu middleware'leri oluşturmaya izin verir ve bu fonksiyon ne alır ve ne verir?
34. Bir fonksiyon başka bir fonksiyon alıyorsa ve çalıştırıldıktan sonra bir goroutine başlatıp callback yapıyorsa ve içine bir yapının metodunu geçiriyorsanız, bu derleme hatası mı olur yoksa başka bir şey? İmzası boş ve bu fonksiyonu bekleyen bir metodunuz var, ama yerine saf bir fonksiyon yerine, bir nesne.metodunu geçtiniz.
35. Bir fonksiyon int32 alıyorsa ve siz ona int16 göndermeye çalışıyorsanız, ne olur ve hangi aşamada?
36. amd64 üzerinde bir dilim (slice) bellekte kaç bayt tutar? 24 bayt, ve veriler kendisi fonksiyona geçirilmez mi?
37. Golang'da bir küme nasıl uygulanır ve farkları ve incelikleri nelerdir?
38. UUID nedir ve projende kullandın mı, nerede ve hangi kütüphaneyi kullandın?
39. 1.000.000 öğe içeren bir haritanız var, ona bir öğe daha eklerseniz ne olur? Olası senaryolar ve veri erişim hızı nasıl değişir?
41. Docker (konteynerler/pods) kullandınız mı? Docker'dan önce başka hangi servisleri kullandınız, örneğin "bir ikiliyi sunucuya nasıl dağıtırsınız"? Kodunuzu derledikten sonra, bu servisin işletim sistemi başlatıldığında başlaması için neye dönüştürülmeli?