Mi az a magic number?
Szerintem ha egy konstanst egyetlen egy helyen használunk, akkor nem érdemes kiemelni névvel ellátni, akár külön fájlba tenni stb. Pont ugyanakkora fáradság megkeresni a kódban a használatát - sőt akár egyszerűbb is, mivel ha baj van vele, akkor ebből az irányból fogunk rálelni - mint megkeresni a definiálás helyét. A definiálás több sor, plusz egy ugrás, pazarlás az emberi felfogóképességgel szemben.
Éppen ezért akár magic numbereket is írjunk bele nyugodtan a kódba! Pont azért írtam le ezt a véleményemet, mert fél évszázados hittel megy szembe, ami szerint ezeket mindig el kell nevezni, ki kell emelni, stb.
Ha már töbször használjuk, akkor van értelme elnevezni: nem csak azért, hogy meg lehessen változtatni - van ami tényleg soha nem változik meg - hanem hogy keresővel gyorsan lássuk mit függenek össze.
Ellenben első használatkor ha nem tudjuk, hogy lesz több használat, akkor ne emeljük ki, mert ha nem lesz, akkor fölösleges erőfeszítés. Ha meg lesz, akkor is előfordulhat, hogy aki másodszorra használja, az nem veszi észre, hogy már van, és felveszi újra. Ilyet is láttam, ahol ugyanaz a konstans ki volt emelve többször különböző neveken. Mert a probléma ugye az, hogy felismerjük, hogy ez ugyanaz ami már egyszer szerepelt. És ezt bizony észből kell felismerni, a rendszer kevés segítséget ad - bár lehetne ilyen funkció, ami megkeresi az egyező konstansokat és végigvezeti a programozót rajtuk.