Kdy testování přestává chránit a začíná jen zdržovat

Z Mazovia


Mezi typické chyby patří ukládání tokenů do localStorage, odkud je může snadno přečíst jakýkoli skript při XSS útoku. Bezpečnější je krátkodobý přístupový token v paměti a obnovovací token v httpOnly cookie s příznakem Secure a SameSite. Další častou chybou je příliš dlouhá platnost přístupového tokenu. Měl by platit minuty, ne hodiny. Obnovovací token naopak může žít déle, ale musí být možné ho kdykoli odvolat, například při odhlášení nebo změně hesla.

Než napíšeš jediný řádek, projdi seznam otevřených problémů a hledej štítek označující vhodný úkol pro nováčka. Takový štítek obvykle znamená, že úkol je ohraničený a že u něj někdo ochotně poradí. Přečti si celou diskusi, ne jen první zprávu. Často se v ní dozvíš, že se řešení už někdo věnuje nebo že se od původního plánu upustilo. Pokud si nejsi jistý, napiš krátký komentář a zeptej se, zda je úkol stále volný. Tím se vyhneš práci, která by se zahodila.

První unit test vzniká nejčastěji tak, Isowindows.Net že si vývojář otevře testovací soubor, napíše název metody a pak dlouho kouká na prázdné tělo. Chyba nebývá v testovacím frameworku ani v nedostatku zkušeností. Chyba je v tom, že se testuje příliš mnoho najednou. První test má ověřit jednu konkrétní věc, kterou lze popsat jednou větou. Should you loved this short article and you want to receive more info regarding podrobnosti assure visit our webpage. Pokud tu větu nedokážeš napsat, test ještě nemá být napsaný.

Jak vypadá první příspěvek, který projde Rozdělej si změnu na malé části. Jeden pull request by měl řešit jednu věc. Když opravíš překlep a zároveň přepíšeš celý modul, správce to buď odmítne, nebo bude trvat dlouho, než se tím prokouše. Před odesláním si spusť testy a linter přesně tak, jak to popisuje dokumentace projektu. Pokud testy neprojdou, doplň je nebo oprav svůj kód, ne testy. Do popisu pull requestu napiš, co měníš a proč, a připoj odkaz na související problém. Bez toho bude recenze zbytečně zdlouhavá.

Testovací pokrytí je číslo, které mnoho týmů sleduje, ale málokdo si u něj položí základní otázku: chrání mě před chybami, nebo mě jen uklidňuje? Rozdíl je zásadní. Pokrytí vzniká měřením řádků, větví nebo funkcí, které testy spustily. Jenže spuštěný řádek neznamená ověřenou logiku. Test může kód zavolat, projít skrz něj a přesto netvrdit nic o tom, zda výsledek odpovídá očekávání. Pokud v testu chybí assertion, pokrytí roste a ochrana ne.

Typické chyby, které lidi odrazují: https://Crabcodex.com/index.php/Když_commit_zpráVa_šetří_čas_při_hledání_viníka_změny posílání obrovských změn bez předchozí domluvy, ignorování stylu kódu, mazání cizích změn při slučování větví a urážlivé reakce na kritiku. Kód v open source prochází veřejnou kontrolou a připomínky nejsou útok na tvou osobu. Ber je jako technickou zpětnou vazbu. Když s něčím nesouhlasíš, vysvětli proč a navrhni alternativu. Věcná argumentace funguje lépe než tvrzení, že to tak dělá každý jinde.
Přispívání do open source nezačíná tím, že si otevřeš editor a začneš psát kód. Začíná tím, že pochopíš, jak projekt funguje a co od přispěvatelů očekává. Každý repozitář má obvykle soubor s pravidly, často pojmenovaný CONTRIBUTING, a k tomu kodex chování. Tyto dokumenty nejsou formalita. Určují, jakým stylem se vede komunikace, jak se pojmenovávají větve, jak zařídit malou kuchyni vypadá formát commitů a co se stane, když někdo pravidla nedodrží. Pokud je přeskočíš, tvá práce může skončit bez reakce, i když bude technicky správná.

Typická chyba začátečníků je nahrávat do repozitáře velké binární soubory, obrázky z produkce nebo celé složky s nahranými soubory od uživatelů. Tyto soubory se špatně verzují, nafukují historii a při klonování projektu zdržují každého. Stejně problematické je potvrzovat změny s hesly, klíči a přístupovými údaji. Pokud se tak stane, nestačí soubor smazat v dalším potvrzení — zůstane v historii. Řešením je klíče okamžitě zneplatnit a historii přepsat, což je nepříjemné, ale nutné.

Dalším krokem je větev pro hlavní vývoj. Většina týmů dnes používá jednu hlavní větev, ze které se odvozují krátkodobé větve pro jednotlivé úkoly. Větev pro úkol by měla žít hodiny až dny, ne týdny. Čím déle ji držíš oddělenou, tím bolestivější bude její sloučení. Před sloučením si vždy stáhni aktuální stav hlavní větve a vyřeš konflikty lokálně. Konflikt neznamená chybu, jen dvě změny na stejném místě. Nikdy neřeš konflikt tak, že jeden z zápisů slepě smažeš — nejdřív si přečti obě verze a rozhodni, která logika má platit.

Moduly nahrazují dřívější globální proměnné a vzory s okamžitě volanými funkcemi. Exportovat lze pojmenovaně i jako výchozí hodnotu, ale kombinace obou přístupů v jednom souboru mate. Držte se jednoho stylu. Dále mějte na paměti, že importy jsou statické a musí být na začátku souboru; dynamické načítání řeší až funkce import(). Asynchronní funkce s async a await zjednodušují práci s promisemi, ale nezapomeňte na try/catch. Neodchycená chyba v asynchronní funkci jinak skončí jako neobsloužené odmítnutí promise.