Rewrite in rust! </Humor>
Peklo, když se člověku něco takového stane, ale tyhle post-mortem jsou vždycky moc zajímavé!
Díky za článek!
Keby tak na to bolo riesenie ako rust... (Vidim, ze humor, ale aj tak)
Tento vypadok ako vela inych ma na zodpovednosti sprava kvot. To je najslabsie miesto celeho Googlu a vlastne lubovolneho riesenia.
Totiz to musi vediet ovplyvnit vsetko, co to chrani. To je skoro vzdy globalne alebo aspon regionalne.
Nespravne sa pushne mensia kvota a niekomu to prestane fungovat. Pushne sa vacsia a nemusi to vydrzat cielovy system - alebo ked to vydrzi a uzivatelia ju zacnu realne vyuzivat vdaka autoscalingu v ich systemoch, tak nahle obmedzenie moze sposobit vypadky. Nepushne sa kvota a autoscaling nefunguje.
Navrhy tam su, ale vela z nich sa realizuje tazko. Ked som robil so spravou kvot, tak tam bolo 10x viac LoC v testoch ako v kode. Bola snaha testovat vsetky code path - ale to sa nie vzdy podarilo. Napriklad ako je tu napisane, pri prazdnych fieldoch.
Psst: Úplně by stačilo používat exceptions. Jenže v Google je v C++ nepoužíváme (z důvodů interoperability, performance a historických).
A když pak máte ve funkci přidat kód jehož správnost závisí na vnějším předpokladu, který sice jde lokálně checknout, jenže z té funkce nejde vrátit nějaká chyba, aniž byste předělávali její signaturu, tak prostě programátora, od přírody líného tvora, napadnou různé věci. No a roboti všechno nezachytí.
Tahle úvaha je čistě hypotetická a nevztahuje se k žádné konkrétní události.