Uzun Metot (ARCH5180)
Anahtar go.quality.long-method · Önem info · Kategori quality
Çok uzun fonksiyonlar birden fazla iş yapar, okunması ve test edilmesi zordur. Mantıksal adımları ayrı fonksiyonlara çıkarın.
Hatalı
Bölüm başlığı “Hatalı”func ProcessOrder(o Order) error { // doğrulama, fiyatlandırma, stok, ödeme, bildirim... 80+ satır if o.ID == "" { return errInvalid } total := 0.0 for _, i := range o.Items { total += i.Price * float64(i.Qty) } // ... onlarca satır daha return nil}func ProcessOrder(o Order) error { if err := validate(o); err != nil { return err } total := priceOrder(o) return finalize(o, total)}Düzeltme
Bölüm başlığı “Düzeltme”Fonksiyonu anlamlı adımlara bölün ve her birini ayrı, tek sorumluluklu bir fonksiyona çıkarın.