Tri stĺpce, ktoré zostali zo systému Stats4U 2
V tomto článku
Hlavná tabuľka počítadiel má tu 166 436 riadkov a viacero stĺpcov, ktoré vyzerajú dôležito. Tri z nich sú lastdomain, firstdomain a userdomain. Obsahujú údaje:
lastdomain | neprázdny v 15 525 riadkoch |
firstdomain | neprázdny v 15 457 riadkoch |
userdomain | neprázdny v 2 982 riadkoch |
Nič do nich nezapisuje. Žiadny príkaz nikde v kóde nenastavuje ani jeden z týchto troch stĺpcov. Hodnoty pochádzajú z predchádzajúcej generácie služby, zmrazené v stave, v akom boli pri jej zastavení, a každý riadok vytvorený odvtedy je prázdny.
Prečo sa napoly vyplnený stĺpec číta ťažšie než prázdny
Úplne prázdny stĺpec je zjavne mŕtvy. Nikto na ňom nestavia, nikto z neho nerobí prehľady, nikto nestrávi popoludnie premýšľaním, čo znamená.
Stĺpec vyplnený pri 9 % riadkov je pasca. Vyzerá ako pole, ktoré je niekedy vyplnené a inokedy nie — čo je pri stĺpci úplne bežné. Každý, kto ho nájde, rozumne usúdi, že existuje pravidlo určujúce jeho nastavenie, a začne ho hľadať. Žiadne neexistuje.
A zastarané hodnoty nie sú odložené v neaktívnych riadkoch, kde by nemohli uškodiť. Z riadkov, ktoré obsahujú lastdomain, patrí 1 613 počítadlám, ktoré sa ešte tento rok aktualizovali. Živé počítadlo s doménou zaznamenanou pred desaťročím vyzerá presne ako živé počítadlo s aktuálnou doménou.
Horšie je, že údaje vyzerajú vierohodne. Sú to domény, vyzerajú ako domény počítadiel a dopyt, ktorý podľa nich spája, vracia riadky. Odpovedal by na otázku o webe, ktorý sa odvtedy posunul ďalej.
Ako to rýchlo zistiť
Vyhľadávajte zápisy, nie názov. Názov stĺpca sa objavuje v zoznamoch SELECT aj vo výpisoch schémy, v starých migráciách, v komentároch — nič z toho nič nedokazuje. Rozhodujúce je, či nejaký INSERT alebo UPDATE tento stĺpec spomína. Také hľadanie trvá minútu a je presvedčivé spôsobom, akým čítanie okolitého kódu nie je.
Druhou kontrolou sú samotné údaje: ak je najnovší riadok s hodnotou roky starý, stĺpec je fosília bez ohľadu na to, čo zdanlivo hovorí kód.
Prečo sú stále tu
Odstránenie stĺpca je lacné, ale nie zadarmo. Každý z týchto riadkov patrí niečiemu počítadlu, niektoré bežia nepretržite od roku 2006, a bezpečným krokom pred zmenou schémy takejto tabuľky je výpis, ktorý bol skutočne aspoň raz obnovený, nie iba vytvorený. Tento nácvik odvtedy prebehol. Kým ich odstránenie nebude stáť za to samo osebe, tri nepoužívané stĺpce nestoja nič okrem chvíľky zmätku a aj tú odstraňuje poznámka opísaná nižšie.
Namiesto toho sú teda zdokumentované. Nie je žiadne zjavné miesto na takúto poznámku — schéma tejto databázy existuje iba v bežiacej databáze, nie v žiadnom súbore repozitára — preto sa dostala tam, kde na ňu niekto naozaj narazí: do triedy, ktorá číta riadok počítadla, priamo tam, kde stĺpce prechádzajú. Poznámka v súbore, ktorý nikto neotvára, nie je dokumentácia. Poznámka zmení pascu na poznámku pod čiarou iba vtedy, keď leží v ceste.