Kontaktovat podporu

Odpovíme e-mailem, obvykle do dvou dnů.

Google reCAPTCHA kontroluje toto odeslání kvůli ochraně před zneužitím; data se přitom předávají společnosti Google. Skript se načte až při otevření tohoto formuláře.

← Všechny články

Tři sloupce, které zbyly po Stats4U 2

Hlavní tabulka počítadel tu má 166 436 řádků a řadu sloupců, které vypadají důležitě. Tři z nich jsou lastdomain, firstdomain a userdomain. Obsahují data:

lastdomainneprázdné v 15 525 řádcích
firstdomainneprázdné v 15 457 řádcích
userdomainneprázdné v 2 982 řádcích
řádky počítadel: 166 436lastdomain15 525firstdomain15 457userdomain2 982166 436

Nic je nezapisuje. Žádný příkaz nikde v kódu nenastavuje ani jeden z těch tří. Hodnoty pocházejí z předchozí generace této služby, zamrzlé na tom, čím byly, když přestala běžet, a každý od té doby vytvořený řádek je prázdný.

Proč se napůl plný sloupec čte hůř než prázdný

Zcela prázdný sloupec je zjevně mrtvý. Nikdo na něm nestaví, nikdo z něj nevykazuje, nikdo nestráví odpoledne přemýšlením, co znamená.

Sloupec vyplněný u 9 % řádků je past. Vypadá jako pole, které je někdy vyplněné a někdy ne – což je u sloupce naprosto běžná věc. Kdo na něj narazí, rozumně usoudí, že existuje pravidlo, kdy se nastavuje, a začne ho hledat. Žádné není.

A zastaralé hodnoty nejsou schované v nečinných řádcích, kde by nemohly škodit. Z řádků, které mají vyplněný lastdomain, patří 1 613 počítadlům, která se letos ještě aktualizovala. Živé počítadlo s doménou zapsanou před deseti lety vypadá úplně stejně jako živé počítadlo s aktuální.

Horší je, že data jsou věrohodná. Jsou to domény, vypadají jako domény počítadel a dotaz, který přes ně spojuje tabulky, vrací řádky. Odpověděl by na otázku o webu, který se mezitím pohnul dál.

Jak to rychle poznat

Hledejte zápisy, ne název. Název sloupce najdete v příkazech SELECT i jinde: ve výpisech schématu, ve starých migracích, v komentářích – a nic z toho nic nedokazuje. Rozhoduje jen to, zda ho nějaký INSERT nebo UPDATE zmiňuje. Takové hledání trvá minutu a je průkazné tak, jak čtení kódu kolem nikdy není.

Druhou kontrolou jsou samotná data: je-li nejnovější řádek s hodnotou roky starý, je sloupec zkamenělina bez ohledu na to, co kód zdánlivě říká.

Proč tam pořád jsou

Odstranit sloupec je levné, ale ne zadarmo. Každý z těchto řádků patří něčímu počítadlu, některá běží nepřetržitě od roku 2006, a bezpečným krokem před změnou schématu takové tabulky je výpis, který byl skutečně jednou obnoven, ne jen vytvořen. Toto cvičení už mezitím proběhlo. Dokud se jejich odstranění nevyplatí samo o sobě, stojí tři nepoužívané sloupce jen chvilku zmatku, a poznámka popsaná níže odstraní i tu.

Proto jsou místo toho zdokumentované. Pro takovou poznámku neexistuje žádné zřejmé místo – schéma této databáze existuje jen v běžící databázi, ne v žádném souboru v repozitáři – a tak skončila tam, kde o ni někdo skutečně zakopne: ve třídě, která čte řádek počítadla, přesně tam, kde sloupce procházejí. Poznámka v souboru, který nikdo neotevře, není dokumentace. Z pasti udělá poznámku pod čarou jen tehdy, když leží na cestě.

Reklama