İçeriğe geç

Long method (ARCH702)

Anahtar dotnet.codequality.long-method · Önem warning · Kategori codequality · İlke Kiss

Çok uzun metotlar birden fazla sorumluluk taşır, okunması ve test edilmesi zorlaşır. Mantıksal adımları ayrı metotlara ayırmak gerekir.

public void ProcessOrder(Order order)
{
// doğrulama
if (order is null) throw new ArgumentNullException();
if (order.Items.Count == 0) throw new InvalidOperationException();
foreach (var i in order.Items) { /* ... */ }
// fiyatlandırma
decimal total = 0;
foreach (var i in order.Items) { total += i.Price * i.Qty; }
// vergi, kargo, indirim, kayıt, e-posta... (onlarca satır daha)
}
public void ProcessOrder(Order order)
{
Validate(order);
var total = CalculateTotal(order);
Persist(order, total);
NotifyCustomer(order);
}

Metodu tek bir işi olan daha küçük yardımcı metotlara bölün; her adım kendi adıyla niyetini anlatsın.