Kural
Kaçınılması gerekenler derin iç içe seviyelerden
Derin iç içe yapıyı kod zor okunmasını okunmasını ve anlaşması zor.
Desteklenen diller: 45+Giriş
Dört, beş veya altı seviyeli iç içe geçme içeren kod, geliştirme sürecini yavaşlatan bilişsel bir yük oluşturur. Her iç içe geçme seviyesi, aktif koşulları, hata yollarını ve iş mantığını takip etmeyi zorlaştırır. Aşırı iç içe geçme, genellikle soyutlamaların eksik olduğunu ya da erken dönüşlerin ve koruma koşullarının kullanılma fırsatlarının kaçırıldığını gösterir.
Neden önemli?
Kodun bakım kolaylığı ve hata riskleri: Derin iç içe geçme, mantığı ekranın dışına iten ve kod incelemesini yavaşlatan “ok kodu” oluşturur. Geliştiriciler, iç içe geçmiş kodu değiştirirken karşılanması gereken tüm koşulları göremeyerek sınır durumlarını gözden kaçırırlar. Tek başına doğru görünen değişiklikler, birkaç seviye yukarıda yapılan varsayımları bozabilir.
Test ve hata ayıklama karmaşıklığı: Her iç içe geçme düzeyi, kapsam için gereken test senaryolarının sayısını ikiye katlayarak katlanarak artan yol patlamasına yol açar. Hatalardan kaynaklanan yığın izleri, bu duruma hangi koşulların yol açtığını göstermez; bu da hataların yeniden üretilmesini zorlaştırır.
Kod örnekleri
❌ Uygun değil:
function processOrder(order) {
if (order) {
if (order.items && order.items.length > 0) {
if (order.customer) {
if (order.customer.address) {
if (order.paymentMethod) {
if (validatePayment(order.paymentMethod)) {
return submitOrder(order);
}
}
}
}
}
}
return { error: 'Invalid order' };
}
Neden yanlış: Altı kademeli iç içe geçme, en altta gizlenmiş olan asıl iş mantığını (sipariş gönderimi) görmeyi zorlaştırıyor. Her koşul kontrolü, girintiye bir katman daha ekliyor ve hangi doğrulama işleminin başarısız olduğu belirtilmediği için hata işleme süreci net değil.
✅ Uygunluk:
function processOrder(order) {
if (!order) {
return { error: 'Order is required' };
}
if (!order.items || order.items.length === 0) {
return { error: 'Order must contain items' };
}
if (!order.customer?.address) {
return { error: 'Customer address is required' };
}
if (!order.paymentMethod || !validatePayment(order.paymentMethod)) {
return { error: 'Invalid payment method' };
}
return submitOrder(order);
}
Bunun önemi: Erken dönüş içeren koruma koşulları, iç içe geçme yapısını tek bir düzeye indirger. Her bir doğrulama işlemi açıkça belirtilir ve belirli bir hata mesajı döndürür. Sorunsuz senaryo (sipariş gönderimi), herhangi bir iç içe geçme olmaksızın en sonda görülebilir. Kod, kendi kendini açıklayıcıdır ve mevcut koşulları bozmadan kolayca değiştirilebilir.
Sonuç
Mümkün olduğunca iç içe geçme düzeylerini üç veya daha azda tutun. Derin iç içe geçmiş yapıları düzleştirmek için erken dönüşler, koruma koşulları ve yardımcı işlevler kullanın. Üç düzeyin ötesinde iç içe geçmeyle karşılaştığınızda, bu durum yöntemleri ayırarak, koşulları tersine çevirerek veya yaklaşımı yeniden gözden geçirerek yeniden düzenleme yapmanız gerektiğinin bir işaretidir. Düz kod, derin iç içe geçmiş alternatiflere kıyasla okunması, test edilmesi, hata ayıklanması ve bakımı daha kolaydır.

