NUMERI MAGICI

Mar 04 2023
I numeri magici sono uno dei modi per scrivere un codice pulito. Benvenuto amico mio, ora parleremo di un principio importante che rende il codice più facile da leggere e da modificare e fa sì che il codice abbia un buon odore.

I numeri magici sono uno dei modi per scrivere codice pulito.
Benvenuto amico mio, ora parleremo di un importante principio che rende il codice più facile da leggere e da modificare e fa sì che il codice abbia un buon odore.

Innanzitutto spieghiamo cos'è l'odore del codice, l'odore del codice è un indicatore di problemi che possono essere risolti durante il refactoring, è facile individuarlo e catturarlo anche risolverli.

supponiamo con me che dopo aver terminato l'attività di codifica che ti richiede 8 ore e dica che OMG alla fine è finito, ci vuole molto tempo !!!, E hai spinto il tuo codice e un mucchio di codice è così.

double deductFromStanderdEmployee(JouniorEmployee standerdEmployee){
 standerdEmplyee.gross= standerdEmplyee.gross - (3.3 + 2.3) / 100 * standerdEmplyee.gross;
}

ora il caposquadra deve cambiare i servizi medici al 3,5% e ordina al tuo amico di farlo.
il tuo amico ora guarda il codice e la sua impressione quale numero è la tassa sui servizi medici 3.3 o 2.3 ?️

Quindi ora il problema è molto chiaro, usi un valore univoco con un significato inspiegabile che è un numero magico. è meglio usare una costante nominata per identificare il tuo numero magico, facciamo un po' di refactoring al tuo codice amico mio.

const double GOVERNMENTAL_TAXES_PERSENTAGE=3.3;
const double MEDICAL_SERVICES_TAXES_PERSENTAGE=2.3;
double deductFromStanderdEmployee(JouniorEmployee standerdEmployee){
 standerdEmplyee.gross= standerdEmplyee.gross - (GOVERNMENTAL_TAXES_PERSENTAGE + MEDICAL_SERVICES_TAXES_PERSENTAGE) / 100 * standerdEmplyee.gross;
}

ora stai chiedendo che ne dici di 100 non è un numero magico?
Dirò di no, non è un numero magico, possiamo notare che calcoliamo la percentuale quindi è molto chiara e bloccata. è come un ciclo for per esempio:

for (int i=0;i<n;i++){
    //some code here;
}

In sintesi , abbiamo notato che i numeri magici creano alcuni conflitti, quindi dobbiamo notarlo bene nel nostro refactoring per non cadere in quegli errori.

Grazie per aver letto Spero di incontrarti nel mio prossimo articolo.