Döngüsel karmaşıklık, kodunuzun yeniden yapılandırılması gerekip gerekmediğini belirlemenin bir yoludur. Kod analiz edildi ve karmaşıklık sayısı belirlendi. Karmaşıklık, dallanma ile belirlenir (eğer ifadeler, vb.) Karmaşıklık, döngülerin vb.
Numara, yöntem seviyesinde kullanışlıdır. Daha yüksek seviyelerde sadece bir sayıdır.
17,754 sayısı, çok fazla bir anlamı olmayan proje düzeyinde karmaşıklığı (toplam kod) gösterir.
Sınıf ve yöntem düzeyinde karmaşıklığı delmek, kodun daha küçük yöntemlere yeniden yansıtılması veya karmaşıklığı ortadan kaldırmak için yeniden tasarlanması gereken alanları belirler.
CASE
Bir yöntemde 50 durumlu bir ifade düşünün . Belki her devletin farklı iş mantığı vardır. Bu, 50'lik bir döngüsel karmaşıklık yaratacaktır. 50 karar noktası var. CASE ifadesinin, dallanma mantığından kurtulmak için bir fabrika modeli kullanılarak yeniden tasarlanması gerekebilir. Bazen yeniden ateşleyebilir (yöntemi daha küçük parçalara böler) ve bazı durumlarda sadece yeniden tasarım karmaşıklığı azaltabilir.
Genel olarak, yöntem düzeyinde karmaşıklık için:
- <10 bakımı kolay
- 11-20 bakımı zor
- Yeniden düzenleme / yeniden tasarım için 21+ Aday
Ayrıca daha yüksek karmaşıklıkların kodu birim testine zorlaştırdığını da göz önünde bulundurun.
Tek bir yöntemde gördüğüm en yüksek karmaşıklık 560'dı. Bir yöntemdeki if ifadelerinin yaklaşık 2000 satırıydı. Temelde sürdürülemez, denenemez, potansiyel hatalarla dolu. Dallanma mantığı için gerekli tüm birim test durumlarını düşünün! İyi değil.
Tüm yöntemleri 20'nin altında tutmaya çalışın ve daha az karmaşık hale getirmek için herhangi bir yöntemi yeniden düzenlemenin bir maliyeti olduğunu fark edin.