İçeriğe geç

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.

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

Metodu tek sorumluluğa sahip, küçük yardımcı fonksiyonlara bölün.