Rozklad odhadu času, který ničí sprint: chyba v každém plánování

Z Mazovia


Než zvolíte GraphQL, projděte si tři konkrétní kroky. Nejprve změřte, kolik volání dnes dělá nejnáročnější obrazovka a jaká část odpovědí se zahazuje. Potom ověřte, zda tým zvládne resolver vrstvu, N+1 problém a dataloadery. Nakonec nastavte autentizaci a autorizaci na úrovni polí, ne jen na vstupu do schématu. Častá chyba je otevřené schéma bez limitů: klient si vyžádá tisíce uzlů a server padne. Druhá chyba je ponechat REST endpointy i GraphQL nad stejnou databází bez společných pravidel – vznikají nekonzistentní data a dvojí logika.

První praktický krok je oddělit závislosti aplikace od zbytku systému. Do obrazu patří interpret, knihovny a nástroje, které aplikace potřebuje ke svému běhu. Data, konfigurace a přihlašovací údaje tam nepatří. Ty se předávají při spuštění přes proměnné prostředí nebo přes připojené svazky. Pokud do obrazu zabudujete heslo k databázi, dostane se do historie vrstev a při dalším sestavení už ho jen těžko odstraníte.

Dynamicky generovaná data v čase znamenají, že vstupní hodnoty nejsou pevně dané, ale vznikají za běhu podle aktuálního času, časového pásma, časovače nebo intervalu. Testovat takovou aplikaci nelze spolehlivě opakovat, pokud si nejdřív neoddělíte zdroj času od zbytku logiky. Prvním krokem je najít v kódu všechna volání systémového času a nahradit je rozhraním, které lze v testech podstrčit. Aplikace pak nesahá přímo na hodiny operačního systému, ale ptá se abstrakce. Teprve pak můžete simulovat dopředu i dozadu.

Začněte tím, že si připravíte sadu testovacích dat. Vytvořte soubory nebo parametry s „v" na začátku, uprostřed i na konci. Zkuste varianty jako „v1", „v2.0", „verze_v3", „V4" a „osvětlení v obýváku". Potom spusťte aplikaci a sledujte, zda se chová podle očekávání. Typická chyba je, že aplikace ignoruje velikost písmen, takže „v1" a „V1" považuje za totéž. To může vést k přepsání dat nebo k načtení špatné konfigurace.

Pracujte s referenčními příběhy a časovým limit

Nezapomeňte testovat i prázdný vstup a hodnoty s diakritikou. „v" s háčkem nebo čárkou může způsobit problémy v kódování. Otestujte různé znakové sady, například UTF-8 a Windows-1250. Pokud aplikace zobrazuje místo „v" otazníky, je chyba v kódování. Dále sledujte, zda se „v" správně ukládá do databáze a zda se nevrací zpět s jiným znakem. To se stává, když se zapomene na escapování.
Praktický postup: vezměte původní odhad a napište, co konkrétně bude na konci sprintu fungovat. Z toho odvoďte tři až pět kroků, které k tomu vedou. Každý krok by měl mít jasnou podmínku dokončení – ne „hotovo, když to jde", ale třeba „hotovo, když test projde a kolega to zkontroluje". Tím se z odhadu stane měřitelný seznam.

Písmeno „v" v názvu souboru nebo parametru často znamená verzi, variantu nebo vstup. Když testujete aplikaci, dokončení interiéru která pracuje s těmito hodnotami, musíte ověřit každou kombinaci. Nejde jen o to, že soubor existuje. Jde o to, zda aplikace správně rozliší verzi 1.2 od 1.20, zda neplete malá a velká písmena a zda umí pracovat s prázdnou hodnotou.

Rozdělujte podle výstupu, ne podle aktivity Nejčastější chyba je rozklad na činnosti: analýza, kódování, testování. To vypadá jako pokrok, ale neříká nic o tom, co je hotové. Mnohem lepší je dělit odhad podle konkrétních výstupů. If you liked this information and you desire to acquire more info with regards to Crativ.Co.Kr i implore you to visit the page. Místo „implementace vyhledávání" vytvořte položky jako „vyhledávací pole vrací výsledky pro jeden znak", „výsledky se řadí podle relevance" a „prázdný dotaz zobrazí nápovědu". Každá z těchto položek se dá dokončit a ověřit během jednoho dne. Když se zaseknete, přesně víte, která část vázne.

Častou chybou je také to, že vývojáři zapomenou na více „v" za sebou. Například „vv1" nebo „v v 1". Otestujte i tyto případy. Zjistíte, zda aplikace používá regulární výraz, nebo jen kontroluje první znak. Pokud jen první znak, může přijmout i „vabc", což je špatně. Dále zkuste, co se stane, když je „v" na konci řetězce. „1v" by mělo být odmítnuto, pokud se očekává formát „v" na začátku.

Každý sprint začíná stejně: tým se sejde, odhady jsou hotové, plán vypadá realisticky. Po dvou týdnech zjistíte, že polovina úkolů není hotová a nikdo nechápe proč. Příčina většinou není v rychlosti práce, ale v tom, jak jste odhad rozložili. Pokud odhad zůstane jako jedna velká položka, nikdo během sprintu nevidí, že se něco zaseklo. Rozložení na menší úkoly není byrokracie, je to nástroj, jak odhalit problém dřív, než spálí celý sprint.

Posledním krokem je automatizace. Napište jednoduchý skript, který projde všechny kombinace a porovná výstupy. Bez automatizace se na některé případy zapomene. Výsledky si zapisujte, abyste viděli, které varianty selhaly. Testujte nejen na vývojovém stroji, ale i v prostředí, kde běží produkce. Různé verze knihoven mohou mít odlišné chování. Pokud aplikace používá „v" jako oddělovač, ověřte, že se neplete s jinými oddělovači. A hlavně: testujte opakovaně, protože chyby s „v" se často projeví až při delším běhu.