Aikido

Perché dovresti usare nomi di variabili descrittivi per scrivere codice autodocumentante

Leggibilità

Regola
Utilizzo variabili variabile .
Molto corte variabili nomi rendono il codice poco chiaro.

Linguaggi supportati: 45+

Introduzione

I nomi delle variabili composti da una sola lettera o criptici costringono i lettori a dedurne il significato dal contesto, invece di comprendere il codice a prima vista. Una variabile denominata d potrebbe indicare una data, una durata, una distanza o dei dati, richiedendo uno sforzo mentale per comprenderne lo scopo nel corso della funzione. Nomi descrittivi come dataCreazioneUtente oppure durata della richiesta rendere immediatamente chiaro l'intento senza alcuno sforzo cognitivo.

Perché è importante

Manutenibilità del codice: i nomi delle variabili poco chiari rallentano la comprensione. Gli sviluppatori impiegano tempo a capire cosa rappresentino x, tmp o val, invece di concentrarsi sulla logica vera e propria. Una denominazione inadeguata rende inoltre più difficile l’estensione del codice, poiché non è chiaro dove inserire la nuova logica o come i valori esistenti siano correlati tra loro. Inoltre, i nomi vaghi rendono il codice non ricercabile, dato che la ricerca di “tmp” o “val” non fornisce risultati significativi. Questo problema si aggrava quando si riprende a lavorare sul codice dopo mesi o quando entrano a far parte del team nuovi membri.

Descrizione del bug: I nomi ambigui aumentano il rischio di utilizzare la variabile sbagliata. Quando più variabili hanno nomi simili e poco chiari (d1, d2, d3), gli sviluppatori potrebbero utilizzare quello sbagliato, introducendo bug impercettibili che superano la revisione del codice poiché i nomi non forniscono alcun indizio semantico.

Esempi di codice

❌ Non conforme:

function calcAmt(u, qty) {
    const p = u.prc;
    const d = u.disc || 0;
    const t = p * qty;
    const a = t - (t * d);
    const tx = a * 0.08;
    return a + tx;
}

Perché è inesatto: Nomi di variabili come u, p, d, t, e non rivelano nulla sul loro scopo. I lettori devono seguire la logica di calcolo per capire che p è il prezzo, d è uno sconto, t è il subtotale, e a è l'importo al lordo delle imposte.

✅ Conforme:

function calculateOrderAmount(product, quantity) {
    const price = product.price;
    const discount = product.discount || 0;
    const subtotal = price * quantity;
    const amountAfterDiscount = subtotal - (subtotal * discount);
    const tax = amountAfterDiscount * 0.08;
    return amountAfterDiscount + tax;
}

Perché è importante: Il nome di ogni variabile descrive il suo contenuto. importoDopoSconto indica chiaramente lo stato del calcolo, imposta è inequivocabile, e prodotto e quantità rivelare gli argomenti della funzione senza dover leggere il corpo della stessa.

Conclusione

Utilizzate nomi che rivelino l’intento senza richiedere un contesto. Privilegiate la chiarezza rispetto alla brevità. I caratteri in più in prezzo totale rispetto a tp non comportano alcun costo in termini di esecuzione, ma consentono di risparmiare molto tempo nella comprensione.

Domande frequenti

Hai delle domande?

È mai accettabile utilizzare nomi di variabili composti da una sola lettera?

Sì, in contesti limitati. I contatori di ciclo (i, j, k) sono convenzionali e chiari. I parametri delle funzioni lambda nella programmazione funzionale (x => x * 2) vanno bene quando l'operazione è ovvia. Le operazioni matematiche possono utilizzare nomi convenzionali (x, y per le coordinate). Tuttavia, questi dovrebbero essere limitati a contesti ristretti (poche righe).

Quanto devono essere lunghi i nomi delle variabili?

Abbastanza lungo da essere chiaro, abbastanza breve da essere pratico. "userData" è preferibile a "u" e a "dataAboutTheCurrentUserBeingProcessed". Cerca di limitarti a 2-4 parole. Se ne servono di più, la variabile potrebbe rappresentare un concetto che merita un proprio tipo o una propria classe.

E che dire di abbreviazioni come btn, msg o ctx?

Le abbreviazioni comunemente utilizzate nel proprio ambito sono accettabili. "ctx" per "context", "req" per "request" e "res" per "response" sono ampiamente comprese in JavaScript. Tuttavia, è bene evitare abbreviazioni specifiche del progetto che potrebbero risultare poco chiare ai nuovi membri del team. In caso di dubbio, è preferibile scrivere per esteso.

È opportuno rinominare le variabili quando si rifattorizza del codice vecchio?

Sì, ma in modo strategico. Se si modifica una funzione per altri motivi, è bene cogliere l'occasione per migliorare i nomi delle variabili. Non creare pull request esclusivamente per rinominare le variabili, a meno che i nomi non causino confusione o bug. Utilizza gli strumenti di refactoring dell'IDE per assicurarti che tutti i riferimenti vengano aggiornati correttamente.

Come posso gestire i conflitti con le parole chiave del linguaggio?

Aggiungi specificità: userClass invece di class, itemType invece di type. Oppure usa il contesto: userCategory, productKind. Non aggiungere mai numeri (class1, class2), poiché in questo modo si perde il significato. Spesso il vincolo rivela comunque che è necessario un nome più specifico.

Metti in sicurezza ora

Metti in sicurezza il tuo codice, il cloud e il runtime in un unico sistema centralizzato.
Trova e risolvi le vulnerabilità rapidamente e automaticamente.

Nessuna carta di credito richiesta | Risultati della scansione in 32 secondi.