Uzun Metot (ARCH3180)
Anahtar typescript.quality.long-method · Önem info · Kategori quality
Gövdesi belirlenen satır eşiğini aşan fonksiyonlar tek başına çok fazla iş yapar; okunması, test edilmesi ve değiştirilmesi zorlaşır. Mantıksal adımlar ayrı fonksiyonlara çıkarılmalıdır.
Hatalı
Bölüm başlığı “Hatalı”function processOrder(o: Order) { if (!o.items.length) throw new Error("empty"); let total = 0; for (const i of o.items) total += i.price * i.qty; const tax = total * 0.18; const shipping = total > 500 ? 0 : 30; const discount = o.coupon ? total * 0.1 : 0; const grand = total + tax + shipping - discount; saveInvoice(o, grand); sendEmail(o.customer, grand); // ...daha onlarca satır}function processOrder(o: Order) { validate(o); const totals = computeTotals(o); saveInvoice(o, totals.grand); sendEmail(o.customer, totals.grand);}Düzeltme
Bölüm başlığı “Düzeltme”Metodu tek sorumluluğa sahip, küçük yardımcı fonksiyonlara bölün.