Konvensi Coding Go di BankSalad
(blog.banksalad.com)- Tim BankSalad telah aktif menggunakan Go selama 4 tahun, sambil mengalami berbagai kesalahan dan trial-and-error, lalu menetapkan konvensi coding ini.
Referensi yang layak dibaca
Berbagai panduan konvensi dan materi best practices yang direkomendasikan untuk dibaca setidaknya sekali
- The Zen of Go
- Penjelasan detail untuk tiap kutipan: The Zen of Go | Dave Cheney
- Terjemahan bahasa Korea Filsafat Go | marsettler.com
- Go Proverbs
- Effective Go | go.dev
- CodeReviewComments · golang/go Wiki | GitHub
- Practical Go | Dave Cheney
- Panduan style tim Thanos(bahasa Korea, dokumen asli)
- Panduan style tim Uber(bahasa Korea, dokumen asli)
- Ashley McNamara + Brian Ketelsen. Go best practices | YouTube
- Idiomatic Go | Sourcegraph
- Go Style Best Practices | Google
Praktik coding
- Don't panic
- Fungsi yang dapat memunculkan panic diberi prefix must / Panic vs Fatal
- Panic-safe goroutine / Mengumpulkan hasil yang concurrent-safe
- Error stacking / Error handling / Error logging
- No named return
- Pengaturan HTTP client / Reuse koneksi HTTP
- Saat mendeklarasikan slice, atur len dan cap / Nil slice vs Empty slice
- Bool map dan struct{} map / Cek ok saat lookup map / Avoid map loop
- Gunakan range saat loop string / Panjang string
- Gunakan
context.Background()daripadacontext.TODO() - Sering gunakan early return
- Gunakan
time.Duration/ Zona waktu - Table-driven test / No monkey patch / Deterministic test
- Avoid reflect
- Functional options
Gaya coding
Isi yang dijelaskan adalah gaya tim BankSalad, dan tiap item disarankan untuk dipertimbangkan sesuai kebutuhan masing-masing organisasi alih-alih diikuti mentah-mentah.
- Urutan argumen fungsi
- Penamaan fungsi test
- Urutan deklarasi dalam file
- Urutan import
- Bentuk tunggal menggunakan get, bentuk jamak menggunakan list
- Hindari kata yang ambigu
- Penamaan const
- Penamaan package
- Struktur proyek
2 komentar
:woman_running:
Saya menikmati membaca tulisan yang bagus ini. Saya rasa dua perusahaan di dalam negeri yang paling baik memanfaatkan Go adalah BankSalad dan AB180.