Le coeur perdu – Paris

Čím se řídit, když klient tlačí na termín dodání?

Lottery manNejčastější začátečnická chyba je začít nástroji. Tým koupí nebo rozjede několik služeb, postaví první pipeline a čeká, že se kultura změní sama. Jenže DevOps stojí na dohodách: kdo schvaluje změny, kdo nese odpovědnost za incident, jak dlouho smí běžet neúspěšný build, než se začne řešit. Bez těchto domluv je automatizace jen rychlejší způsob, jak vyrábět chaos. První krok proto není instalace, ale krátká schůzka, na které se sepíše, jak dnes změna putuje od nápadu do produkce a kde se zdržuje.

Než začnete mluvit o datu, zjistěte, co klient skutečně potřebuje. Často nejde o přesný den, ale o to, aby něco stihl dřív než jeho vlastní zákazník, aby se vešel do rozpočtového cyklu, nebo aby měl čas na testování. Když znáte ten skutečný důvod, můžete nabídnout varianty: dodat menší funkční celek dřív a zbytek později. Tím se vyhnete buď planému slibu, nebo zbytečnému odmítnutí.

Nakonec počítej s tím, že první nabídka nemusí být vysněná. Pomůže i pozice v podpoře, na helpdesku nebo manuální testování jednoduchých změn. Každý měsíc, kdy něco skutečně testuješ, se počítá. Rozhoduje ochota učit se a doložitelná práce, ne délka života bez praxe.

Růst codebase se projeví nejdřív na testech. Sada, která běžela dvě minuty, najednou trvá dvacet a padá z důvodů, které nesouvisí s kódem. Většina týmů reaguje přidáním dalších testů, čímž problém zhorší. Řešení není víc testů, ale jasné rozdělení odpovědností mezi jednotkovou a integrační vrstvou.

Kdy je lepší nechat rozhodnutí na nástroji Extrakce metody nebo konstanty je další častý refaktorovací krok. Označte blok kódu, spusťte příkaz pro extrakci a prostředí vytvoří novou metodu s odpovídajícím podpisem a nahradí původní blok voláním. U konstant to funguje stejně — z literálu se stane pojmenovaná konstanta. Pozor na jeden typický problém: pokud extrahujete kód, který používá lokální proměnné, nástroj je musí předat jako parametry. Zkontrolujte, zda výsledný podpis dává smysl a zda se některé parametry nedají sloučit. Automatika ne vždy odhadne nejčistší podobu.

Async akce bez sítě: thunk, fake dispatch a fake getState U asynchronních akcí jde o to izolovat okolí. Thunk je funkce, která dostane dispatch a getState. V testu jim předáte vlastní implementace. Dispatch může být jednoduchá funkce, která ukládá volání do pole, a getState vrací předpřipravený stav. Tím odpadá potřeba skutečného store i integračního prostředí. Pokud thunk uvnitř volá API klienta, nahraďte ho stubem, který vrací resolved promise s daty, nebo rejected promise s chybou. Testujte obě varianty, protože chybová větev bývá v produkci ta, která bolí nejvíc.

Základní test vypadá tak, že zavoláte reducer s výchozím stavem a akcí a porovnáte výsledek s očekávaným objektem. Pište testy pro každou větev přepínače zvlášť. Typická chyba je testovat jen šťastnou cestu a zapomenout na neznámou akci, na prázdné pole nebo na chybějící klíč. Další častá chyba je sdílení jednoho stavového objektu mezi testy. Pokud reducer vrací stejnou referenci, kterou dostal, a vy si ji uložíte do konstanty, další test ji může omylem mutovat. Vždy začněte od čerstvé kopie výchozího stavu.

Zvláštní pozornost věnujte chybám. Async akce by měla při selhání odeslat akci s chybou a případně nezměnit stav. Otestujte, že se stav nezměnil, a že se odeslala očekávaná chybová akce. Častá chyba je zapomenout na finally blok a nechat v testu viset promise, která nikdy nedoběhne. Pokud používáte časovače, nahraďte je fake implementací a posouvejte čas ručně. Jinak testy trvají zbytečně dlouho a jsou náchylné k výkyvům. Bez integračního prostředí se dá ověřit většina logiky. Skutečné síťové chování a middleware řetězec patří do samostatných testů, které spouštíte méně často.

Testování reducerů je nejjednodušší část celého Reduxu, protože reducer je čistá funkce. Dostane stav a akci, vrátí nový stav. Žádné HTTP, žádné časovače, žádné závislosti. Pokud váš reducer sahá na Date.now(), Math.random() nebo na globální konfiguraci, přestává být čistý a testy začnou být křehké. Nejprve tyto závislosti vytáhněte do akce nebo do argumentu. Teprve pak má smysl psát testy, které něco ověřují.

Dalším pomocníkem jsou strukturální výběry a navigace. Místo ručního hledání textu použijte skok na definici, na implementaci nebo na všechny reference. Tím získáte přehled o tom, co všechno bude refaktorování ovlivňovat. Pokud nástroj nabízí i přeuspořádání parametrů nebo změnu podpisu metody, použijte ji — upraví všechna volání konzistentně. Ručně byste na některé zapomněli.

If you have any queries regarding in which and how to use http://www.xiaodingdong.Store/home.php?mod=space&uid=421422, you can call us at the web-page.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

0
    CARRELLO
    Il tuo carrello è vuoto!Torna allo shop