BankSalad Go Kodlama Konvansiyonları
(blog.banksalad.com)- 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ı
- The Zen of Go
- Her bir ifadenin ayrıntılı açıklaması: The Zen of Go | Dave Cheney
- Korece çeviri Go felsefesi | marsettler.com
- Go Proverbs
- Effective Go | go.dev
- CodeReviewComments · golang/go Wiki | GitHub
- Practical Go | Dave Cheney
- Thanos ekip stil rehberi(Korece, orijinal)
- Uber ekip stil rehberi(Korece, orijinal)
- Ashley McNamara + Brian Ketelsen. Go best practices | YouTube
- Idiomatic Go | Sourcegraph
- Go Style Best Practices | Google
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 sorgularkenokkontrolü / Avoid map loop - String üzerinde loop kurarken
rangekullanımı / String uzunluğu context.TODO()yerinecontext.Background()kullanımı- Early return tercih edin
time.Durationkullanı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ı
importsırası- Tekilde
get, çoğuldalist - Belirsiz kelimelerden kaçınma
constadlandırma- Paket adlandırma
- Proje yapısı
2 yorum
:woman_running:
Güzel yazıyı keyifle okudum. Yurt içinde Go’yu en iyi kullanan iki şirketin BankSalad ile AB180 olduğunu düşünüyorum.