38 puan yazan winterjung 2023-09-15 | 2 yorum | WhatsApp'ta paylaş
  • BankSalad ekibinin 4 yıl boyunca Go’yu aktif olarak kullanırken yaşadığı çeşitli hatalar ve deneme-yanılmalar sonucunda belirlediği kodlama konvansiyonları

Önceden okumakta fayda olan kaynaklar

Bir kez okunmasını önerdiğimiz çeşitli konvansiyon rehberleri ve best practice kaynakları

Kodlama pratikleri

  • Don't panic
  • Panic üretebilen fonksiyonlara must öneki eklemek / Panic vs Fatal
  • Panic-safe goroutine / Concurrent-safe şekilde sonuç toplama
  • Error stacking / Error handling / Error logging
  • No named return
  • HTTP client ayarları / HTTP connection yeniden kullanımı
  • Slice tanımlarken len, cap ayarlama / Nil slice vs Empty slice
  • Bool map ve struct{} map / Map sorgularken ok kontrolü / Avoid map loop
  • String üzerinde loop kurarken range kullanımı / String uzunluğu
  • context.TODO() yerine context.Background() kullanımı
  • Early return tercih edin
  • time.Duration kullanımı / Saat dilimi
  • Table-driven test / No monkey patch / Deterministic test
  • Avoid reflect
  • Functional options

Kodlama stili

Burada anlatılan içerik BankSalad ekibinin stilidir; her maddeyi olduğu gibi uygulamaktan ziyade, kendi organizasyonunuza uygun şekilde değerlendirilmesi önerilir

  • Fonksiyon argümanlarının sırası
  • Test fonksiyonu adlandırma
  • Dosya içi bildirim sırası
  • import sırası
  • Tekilde get, çoğulda list
  • Belirsiz kelimelerden kaçınma
  • const adlandırma
  • Paket adlandırma
  • Proje yapısı

2 yorum

 
zxgdot 2023-09-15

:woman_running:

 
secret3056 2023-09-15

Güzel yazıyı keyifle okudum. Yurt içinde Go’yu en iyi kullanan iki şirketin BankSalad ile AB180 olduğunu düşünüyorum.