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.
Hatalı
Bölüm başlığı “Hatalı”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);}Düzeltme
Bölüm başlığı “Düzeltme”Metodu tek bir işi olan daha küçük yardımcı metotlara bölün; her adım kendi adıyla niyetini anlatsın.