Regola
Evita un uso eccessivo grandi file troppo grandi.
File di grandi file con responsabilità responsabilità
sono difficili da gestire.
Lingue supportate: 45+Introduzione
I file composti da migliaia di righe trattano in genere argomenti diversi e non correlati tra loro, rendendo difficile individuare funzionalità specifiche. Un file di 3000 righe utils.js Un file contenente funzioni di validazione, formattazione delle stringhe, manipolazione delle date e utilità API costringe gli sviluppatori a scorrere codice non pertinente per trovare ciò di cui hanno bisogno. I file di grandi dimensioni generano inoltre conflitti di unione quando più sviluppatori modificano contemporaneamente sezioni diverse.
Perché è importante
Manutenibilità del codice: i file di grandi dimensioni contengono funzionalità non correlate tra loro, costringendo gli sviluppatori a comprendere centinaia di righe di codice irrilevante per modificare una singola funzione. Individuare una logica specifica diventa un esercizio di ricerca, anziché una semplice navigazione verso un file con un nome appropriato.
Conflitti nel controllo di versione: quando più sviluppatori lavorano su funzionalità diverse all’interno dello stesso file di grandi dimensioni, si verificano spesso conflitti di unione. File più piccoli e mirati consentono lo sviluppo parallelo, poiché ogni sviluppatore lavora su file separati.
Efficienza della revisione del codice: la revisione delle modifiche apportate a file di grandi dimensioni richiede un contesto più ampio. I revisori devono comprendere in che modo le modifiche influiscano su altre parti di codice non correlate presenti nello stesso file. I file più piccoli rendono più evidente l'ambito delle modifiche, accelerando così il processo di revisione.
Esempi di codice
❌ Non conforme:
// utils.js (oltre 1500 righe)
funzione validateEmail(email) { /* ... */ }
funzione validatePhone(phone) { /* ... */ }
funzione formatCurrency(importo) { /* ... */ }
funzione formatDate(data) { /* ... */ }
funzione parseJSON(str) { /* ... */ }
funzione apiRequest(url) { /* ... */ }
funzione debounce(fn, delay) { /* ... */ }
funzione throttle(fn, limite) { /* ... */ }
// ... oltre 100 funzioni non correlate
Perché è sbagliato: Un unico file di grandi dimensioni contiene utilità per la convalida, la formattazione, l'analisi sintattica, le chiamate API e le prestazioni. Trovare debounce() richiede di scorrere centinaia di funzioni non correlate. Il fatto che più team modifichino questo file genera continui conflitti di unione.
✅ Conforme:
// validation/email.js
export funzione validateEmail(email) { /* ... */ }
// validation/phone.js
export funzione validatePhone(phone) { /* ... */ }
// formatting/currency.js
export funzione formatCurrency(importo) { /* ... */ }
// formatting/date.js
export funzione formatDate(date) { /* ... */ }
// api/request.js
export funzione apiRequest(url) { /* ... */ }
// performance/debounce.js
export funzione debounce(fn, delay) { /* ... */ }
Perché è importante: Ogni funzione di utilità è contenuta in un file dedicato all’interno di directory suddivise per categoria. Ricerca debounce() significa andare su performance/debounce.js direttamente. I team che lavorano su diverse utilità non entrano in conflitto tra loro poiché si trovano in file separati.
Conclusione
Quando possibile, mantenere i file al di sotto delle 500 righe. Quando i file superano tale limite, individuare le funzionalità distinte che possono essere estratte in moduli separati. Organizzare i file correlati in directory per mantenere la struttura, garantendo al contempo che i singoli file rimangano mirati e facilmente gestibili.

