Šest generací adres počítadla a všechny stále fungují
Adresa, kterou pro počítadlo dokumentujeme, je /c/<number>-<design>.png. Dne 30. srpna o ni bylo požádáno 156krát.
Adresa z roku 2006 — /index.php?action=pic&s4uid=… — byla vyžádána 80 499krát, a to 761 různými počítadly.
Šest generací, všechny stále běží
Když se těch 80 499 požadavků roztřídí podle parametrů, které nesou, vyjde šest odlišných tvarů a každý z nich je něčí živá stránka.
Největší, 55 503 požadavků, neposílá skoro nic: akci a číslo počítadla. Pak 10 026 s úplným popisem stylu — barvy, písma, režim pozadí, jedenáct pozic pro prvky, až 57 parametrů v jedné adrese. 5 898 přidává odkazující stránku a aktuální stránku, což je generace, díky níž byly vstupní stránky a cesty vůbec možné. 4 544 posílá souřadnice myši, pozůstatek funkce z roku 2015. 2 533 nese příznak js — jeho význam jsem musel dohledat — a 1 995 vzor.
Žádný z nich není rozbitý. Server odpovídá všem šesti, protože parametry nikdy nebyly odstraněny — jen se je přestalo generovat.
Proč je nová adresa tichá
Protože značku <img> vloženou do stránky v roce 2011 nic nepřepíše.
To je celé vysvětlení a stojí za to ho říct otevřeně, protože je snadné číst těch 156 jako selhání nové adresy. Není. Nová adresa je kratší, dá se ukládat do mezipaměti, je čitelná a používá ji každé počítadlo vytvořené od doby, kdy existuje. Jen jich není mnoho ve srovnání s instalovanou základnou a instalovaná základna se sama neaktualizuje.
Pro kód to znamená trvalý závazek, ne vadu. Šest tvarů musí dál fungovat, včetně toho s 57 parametry a toho, který posílá, kde byla myš. Každý je cesta, která musí zůstat správná, a pět z nich nelze vyzkoušet tím, že se podíváte, co generuje současný průvodce — současný průvodce je negeneruje. Pojmenuje je log, a proto se čte dřív, než se na té cestě na cokoli sáhne.
Co jsme změnili a co ne
Nic. Znalost rozložení nevytváří žádný úkol: nemůžeme požádat 761 majitelů webů, aby upravili své HTML, a rozbít starou adresu, abychom je donutili, by vyřadilo fungující počítadla jen kvůli úklidu směrovací tabulky.
Mění to ale, kam se upírá péče. Refaktoring, který se dotkne počítací cesty, není refaktoring jedné adresy; je to refaktoring šesti, a ta, na které v dokumentaci záleží nejméně, je v logu nejdůležitější.
Co z toho plyne obecně
Dokumentované rozhraní a používané rozhraní jsou dvě různé věci a jen jedna z nich je v logu. Kód zaznamenává, k čemu byl navržen. Přístupový log zaznamenává, co si lidé skutečně nainstalovali, někdy před patnácti lety, a je jediným zdrojem, který dokáže určit, která ze šesti cest v kódu nese provoz.
Zjistit to stojí jeden příkaz. Dokud ho nikdo nespustí, vypadá nejnovější adresa v dokumentaci jako ta hlavní.