Liczbowe wartości magiczne (ang. magic numbers) to liczby umieszczane w kodzie programu bez wyjaśnienia ich znaczenia, co utrudnia jego zrozumienie i utrzymanie. Używanie takich wartości bez odpowiedniego kontekstu sprawia, że kod staje się mniej czytelny i bardziej podatny na błędy. Magiczne liczby mogą dotyczyć stałych, takich jak limity, współczynniki lub określone wartości, które są bezpośrednio wpisywane w kod, zamiast być zdefiniowane jako zmienne lub stałe o odpowiednich nazwach.

Przykład magicznej liczby:
var wynik = 7 * 24 * 60 * 60
W tym przypadku liczba 7 może być trudna do zrozumienia, bo nie jest jasne, co oznacza bez kontekstu. Może to być liczba dni w tygodniu, ale kod tego nie wyjaśnia. Dlatego lepiej zastąpić te liczby zrozumiałymi stałymi:
const DAYS_IN_WEEK = 7
const HOURS_IN_DAY = 24
const MINUTES_IN_HOUR = 60
const SECONDS_IN_MINUTE = 60
var wynik = DAYS_IN_WEEK * HOURS_IN_DAY * MINUTES_IN_HOUR * SECONDS_IN_MINUTE
Dzięki takiemu podejściu kod jest bardziej czytelny i łatwiejszy do utrzymania. Dodatkowo, w przyszłości, gdyby zmieniła się logika (np. gdyby istniał 8-dniowy tydzień w innej aplikacji), modyfikacja będzie prostsza.
Zastosowanie enum
jako alternatywy dla magicznych liczb:
Zamiast używać liczb w kodzie, które mogą być trudne do zrozumienia, można użyć enum
, aby zdefiniować intuicyjne nazwy dla wartości liczbowych, jak pokazałem w poprzednim przykładzie.
Dodaj komentarz