İçeriğe geç

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.

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)
}

Fonksiyonu anlamlı adımlara bölün ve her birini ayrı, tek sorumluluklu bir fonksiyona çıkarın.