5 věcí, které musíte znát, než začnete s DevOps

From Wiki BridgeTI
Jump to navigation Jump to search


Častým zdrojem zmatku je klíčové slovo this. V konzoli se jeho hodnota mění podle toho, jak zařídit malou kuchyni funkci voláte. V panelu Scope si proto vždy zkontrolujte, čemu this skutečně odpovídá. Další pasti je tichý převod typů: 0 == '0' vrátí true, ale 0 === '0' false. Pro ladění používejte striktní porovnání, předejdete překvapením. Pokud se hodnota neaktualizuje podle očekávání, ověřte, zda pracujete s kopií pole nebo objektu. Metody jako slice vracejí nové pole, kdežto splice mění původní.

Ruční testování v konzoli spočívá v tom, že po každé úpravě kódu znovu a znovu spouštíte stejné vstupy a kontrolujete výstupy. U malé funkce to jde, u pěti modulů se to zvrtne. pytest dělá totéž, jen místo vás: zapíšete očekávané chování jednou a spustíte ho stokrát. Rozdíl není v tom, že by pytest „našel" chyby sám, ale v tom, že vás donutí pojmenovat, co má kód dělat.
Typické chyby se opakují. Lidé si pletou DevOps s jedním konkrétním nástrojem a myslí si, že jeho instalací je hotovo. Nebo přesunou odpovědnost za provoz na jednoho „DevOps inženýra", který se stane novým silosem. Další chybou je automatizace chaotického procesu — výsledkem je jen rychlejší chaos. A konečně, ignorování bezpečnosti a přístupů: kdo může co nasadit a kam, osvětlení v obýváku musí být jasné od začátku, ne až po prvním incidentu.

Testování mobilních aplikací se od testování webu liší v několika zásadních věcech. Aplikace běží na konkrétním hardwaru, má omezenou paměť, různou velikost obrazovky a musí zvládat přerušení, jako je příchozí hovor nebo ztráta signálu. Prvním krokem je proto rozhodnout, co budete testovat automaticky a co ručně. Automatizace se vyplatí u opakujících se scénářů – přihlášení, navigace mezi obrazovkami, ověření výpočtů. Ruční testování naopak odhalí problémy s ovládáním, čitelností nebo chováním při přerušení, které automatický skript jen těžko simuluje věrně.

Odhadování je další místo, kde se ztrácí energie. Zapomeňte na převod bodů na hodiny. Story pointy slouží jen k porovnání velikosti práce v rámci jednoho týmu. Pokud se vaše odhady rozcházejí s realitou, neupravujte čísla, ale rozdělte příběhy na menší části. Příběh, který nejde dokončit do konce sprintu, je příliš velký a má se rozřezat, ne odhadnout vyšším číslem. Stejně tak retrospektiva nemá být stížnostní hodinka. Vybírejte jedno zlepšení na příští sprint a ověřte, jestli skutečně pomohlo.

Breakpointy místo hádání Mnohem silnější nástroj než výpisy jsou breakpointy v panelu Zdroje neboli Sources. Kliknutím na číslo řádku zastavíte běh skriptu přesně v místě, které vás zajímá. Poté můžete krok za krokem procházet kód tlačítky Step over, Step into a Step out. V každém kroku sledujte panel Scope, kde jsou vidět aktuální hodnoty lokálních i globálních proměnných. Typická chyba je, že vývojář nastaví breakpoint na řádek, který se nikdy nevykoná kvůli špatné podmínce. Pokud se běh nezastaví, ověřte, zda je skript skutečně načtený a zda v daném místě nekončí dřív, než se k němu dostanete.

Měřte, co se zlepšilo. Sledujte, jak často nasazujete, jak dlouho trvá cesta změny z vývojářova počítače do produkce a kolik nasazení skončí opravou. Tyto údaje ukážou, zda se skutečně posouváte, nebo jen přidáváte nástroje. Počítejte s tím, že první měsíce budou pomalé a že odpor přijde i od zkušených lidí, kterým současný stav vyhovuje. Vytrvejte u malých kroků a u jednoho problému najednou.

DevOps není nástroj ani konkrétní pozice. Je to způsob, jakým lidé, kteří vyvíjejí software, a lidé, kteří ho provozují, spolupracují na jednom cíli: dostávat změny do produkce rychle, bezpečně a opakovaně. V praxi to znamená, že se vývojář nestará jen o to, aby kód fungoval na jeho počítači, ale i o to, jak poběží na serveru. Provozní tým zase není jen hasič poruch, ale partner, který pomáhá už při návrhu. Pokud tohle zní jako kultura, ne jako seznam technologií, chápete to správně.

Pro asynchronní kód se hodí podmíněné breakpointy. Pravým tlačítkem na číslo řádku zvolte Add conditional breakpoint a napište výraz, například i === 5. Skript se zastaví jen tehdy, když je podmínka splněna. To šetří čas při procházení dlouhých cyklů. U funkcí, které se volají mnohokrát, můžete také použít debugger; přímo v kódu. Prohlížeč se zastaví na tomto příkazu, pokud jsou otevřené vývojářské nástroje. Pozor ale na to, abyste debugger; omylem nenechali v produkční verzi – zbytečně to zpomalí běh a uživatele to zmate.

Ladění JavaScriptu v prohlížeči začíná otevřením vývojářských nástrojů. Ve Firefoxu i Chromiu je otevřete klávesou F12, případně pravým tlačítkem myši a volbou Prozkoumat. Přepněte se do panelu Konzole, kde uvidíte chyby i výpisy z kódu. Pokud se nic nezobrazuje, zkontrolujte, zda je zaškrtnuté zobrazení všech úrovní – výchozí filtr často skrývá informační hlášky. Do kódu pak vkládejte console.log() s jasným popisem, například console.log('stav košíku', kosik). Vyhnete se tak situaci, kdy v konzoli vidíte pět čísel a nevíte, které patří které proměnné.

If you loved this write-up and you would such as to receive even more info relating to crabcodex.Com kindly see the internet site.