Kural
Aşırı büyük dosyalardan kaçının.
Birden fazla sorumluluğa sahip büyük dosyaların bakımı zordur.
Desteklenen diller: 45+Giriş
Binlerce satıra yayılan dosyalar genellikle birbiriyle ilişkisiz birden fazla konuyu ele alır ve belirli bir işlevselliğin bulunmasını zorlaştırır. 3000 satırlık bir utils.js doğrulama yardımcıları, dize biçimlendirme, tarih işleme ve API araçları içeren dosya, geliştiricilerin ihtiyaç duydukları şeyi bulmak için ilgili olmayan kodları kaydırmasını zorunlu kılar. Büyük dosyalar ayrıca, birden fazla geliştirici aynı anda farklı bölümleri değiştirdiğinde birleştirme (merge) çakışmaları yaratır.
Neden önemli?
Kod sürdürülebilirliği: Büyük dosyalar birbiriyle ilişkisiz işlevleri bir arada tutar; bu da geliştiricilerin tek bir fonksiyonu değiştirmek için yüzlerce satırlık alakasız kodu anlamasını gerektirir. Belirli bir mantığı bulmak, uygun şekilde adlandırılmış bir dosyaya gitmek yerine bir arama egzersizine dönüşür.
Sürüm kontrol çakışmaları: Birden fazla geliştirici aynı büyük dosyadaki farklı özellikler üzerinde çalıştığında sık sık birleştirme çakışmaları (merge conflict) meydana gelir. Daha küçük ve odaklanmış dosyalar, her geliştirici ayrı dosyalarda çalıştığı için paralel geliştirmeyi mümkün kılar.
Kod inceleme verimliliği: Büyük dosyalardaki değişiklikleri incelemek daha fazla bağlam gerektirir. İnceleme yapan kişilerin, yapılan değişikliklerin aynı dosyadaki diğer alakasız kodları nasıl etkilediğini anlaması gerekir. Daha küçük dosyalar değişikliklerin kapsamını açık hale getirerek incelemeleri hızlandırır.
Kod örnekleri
❌ Kural dışı:
// utils.js (1500+ satır)
function validateEmail(email) { /* ... */ }
function validatePhone(phone) { /* ... */ }
function formatCurrency(amount) { /* ... */ }
function formatDate(date) { /* ... */ }
function parseJSON(str) { /* ... */ }
function apiRequest(url) { /* ... */ }
function debounce(fn, delay) { /* ... */ }
function throttle(fn, limit) { /* ... */ }
// ... 100+ diğer alakasız fonksiyon
Neden yanlış: Devasa tek bir dosya; doğrulama, biçimlendirme, ayrıştırma, API çağrıları ve performans yardımcı programlarını barındırır. debounce() Yüzlerce alakasız fonksiyon arasında kaydırma yapmayı gerektirir. Bu dosyayı değiştiren birden fazla takım, sürekli birleştirme çakışmalarına yol açar.
✅ Kurallara uygun:
// validation/email.js
export function validateEmail(email) { /* ... */ }
// validation/phone.js
export function validatePhone(phone) { /* ... */ }
// formatting/currency.js
export function formatCurrency(amount) { /* ... */ }
// formatting/date.js
export function formatDate(date) { /* ... */ }
// api/request.js
export function apiRequest(url) { /* ... */ }
// performance/debounce.js
export function debounce(fn, delay) { /* ... */ }
Neden önemli: Kategorize edilmiş dizinler içinde özel bir dosyada yer alan her yardımcı fonksiyon. debounce() anlamına gelir: performance/debounce.js doğrudan. Farklı araçlar üzerinde çalışan ekipler, ayrı dosyalarda oldukları için birbirleriyle çakışmaz.
Sonuç
Dosyaları mümkün olduğunca 500 satırın altında tutun. Dosyalar bu sınırı aştığında, ayrı modüllere çıkarılabilecek farklı sorumluluklar arayın. Bireysel dosyaları odaklanmış ve sürdürülebilir tutarken yapıyı korumak için ilgili dosyaları dizinler halinde düzenleyin.

