Wszyscy wiemy, że magiczne liczby (wartości zakodowane na stałe) mogą siać spustoszenie w twoim programie, szczególnie gdy nadszedł czas na modyfikację części kodu, która nie ma komentarzy, ale gdzie wytyczasz linię?
Na przykład, jeśli masz funkcję, która oblicza liczbę sekund między dwoma dniami, czy zastępujesz
seconds = num_days * 24 * 60 * 60
z
seconds = num_days * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE
W którym momencie zdecydujesz, że jest całkowicie oczywiste, co oznacza wartość zakodowana na stałe, i zostaw to w spokoju?
TimeSpan.FromDays(numDays).Seconds;
HOURS_PER_DAY will never need to be altered
) nigdy nie będziesz kodować oprogramowania wdrażanego na Marsie. : P
seconds = CALC_SECONDS(num_days);