MAGICZNE LICZBY
Magiczne liczby to jeden ze sposobów pisania czystego kodu.
Witaj przyjacielu, teraz porozmawiamy o ważnej zasadzie, która sprawia, że kod jest łatwiejszy do odczytania i zmiany oraz sprawia, że kod ma przyjemny zapach.
Najpierw wyjaśnijmy, czym jest zapach kodu, zapach kodu jest wskaźnikiem problemów, które można rozwiązać podczas refaktoryzacji, łatwo je wykryć i złapać, a także je naprawić.
załóżmy ze mną, że po ukończeniu zadania kodowania, które zajmuje ci 8 godzin i mówi, że OMG w końcu się skończyło, zajmuje to dużo czasu !!!, I popchnąłeś swój kod, a kilka kodów wygląda tak.
double deductFromStanderdEmployee(JouniorEmployee standerdEmployee){
standerdEmplyee.gross= standerdEmplyee.gross - (3.3 + 2.3) / 100 * standerdEmplyee.gross;
}
teraz lider zespołu musi zmienić świadczenia medyczne na 3,5 procent i każe to zrobić twojemu przyjacielowi.
twój przyjaciel teraz spójrz na kod i jego wrażenie, który numer to podatek od usług medycznych 3,3 czy 2,3 ?️
Więc teraz problem jest bardzo jasny, używasz unikalnej wartości o niewyjaśnionym znaczeniu, czyli magicznej liczby. lepiej jest użyć nazwanej stałej do zidentyfikowania magicznej liczby. Pozwól nam dokonać refaktoryzacji twojego kodu, przyjacielu.
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;
}
teraz pytasz, co z 100, czy to nie jest liczba magiczna?
Powiem nie, to nie jest magiczna liczba, możemy zauważyć, że obliczamy procent, więc jest bardzo wyczyszczony i pozostawiony. to jest jak pętla for na przykład:
for (int i=0;i<n;i++){
//some code here;
}
Podsumowując , zauważyliśmy, że magiczne liczby powodują pewne konflikty, więc musimy to dobrze zauważyć w naszej refaktoryzacji, aby nie wpaść w te błędy.
Dziękuję za przeczytanie Mam nadzieję, że spotkamy się w moim następnym artykule.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































