Co potřebujete znát, než začnete vyvíjet pro Android?
Co se týče samotných testů, měly by být deterministické a izolované. To znamená, že každý test používá vlastní databázi, vlastní soubory a nemá žádné skryté závislosti na pořadí spuštění. V praxi to vypadá tak, že si testovací běh vytvoří čisté prostředí, spustí migrace, naplní data a po skončení vše smaže. Jestliže některý test občas selže a občas projde, máte problém. Pipeline, která produkuje nekonzistentní výsledky, ztrácí důvěru týmu a vývojáři začnou výsledky ignorovat.
Když testy začnou brzdit vývoj, je čas je rozdělit do vrstev Praktickým krokem je rozdělení testů do tří skupin podle rychlosti a spolehlivosti. Rychlé testy (jednotkové) spouštějte při každé změně kódu, ideálně před commitem. Pomalejší integrační testy přesuňte do samostatného kroku úložné prostory v malém bytě CI, který běží na vyžádání nebo při každém pull requestu, ale s vědomím, že čekání je únosné. Testy, které komunikují s externími službami, nastavte tak, aby se spouštěly jen v noci nebo po explicitním potvrzení – jejich časté selhání kvůli vnějšímu prostředí demotivuje celý tým.
Častou chybou je psát integrační testy, které vlastně testují jen připojení k databázi, ale nechovají se jako integrační. Například test, který zavolá endpoint a zkontroluje, že odpověď má status 200, ale neověřuje obsah ani vedlejší efekty, je k ničemu. Podobně jednotkové testy, které používají reálné objekty a databázi, jsou ve skutečnosti integrační testy maskované za jednotkové. To vede k tomu, že sada běží pomalu a každá sebemenší změna v schématu rozbije stovky testů. Řešením je u jednotkových testů používat falešné objekty (fakes, stubs) a u integračních testů se zaměřit na skutečné interakce, ale s kontrolovaným prostředím.
Když codebase roste, nevyhnete se ani nutnosti testovat legacy kód. Zde platí pravidlo: nejprve zabezpečete nejrizikovější místa pomocí charakterizačních testů, které zachovají stávající chování, a teprve poté rekonstrukce koupelny krok za krokemčnete psát nové jednotkové testy. Nezkoušejte pokrýt všechno najednou – vyberte si moduly, které se mění nejčastěji, a tam postupně zvyšujte hustotu testů. Nezapomínejte, že testy také potřebují údržbu. Pokud test selže jen kvůli špatné konfiguraci, opravte to hned, jinak vás tým přestane testy brát vážně.
Pro vývoj budete potřebovat vývojové prostředí. Zvolte si přednastavené IDE, Miklagaard.No které podporuje Android – stáhněte si ho z oficiálního zdroje. Při instalaci věnujte pozornost verzi Java Development Kitu, kterou vyžaduje. Častou chybou začátečníků je použití nesprávné verze, If you loved this report and you would like to obtain extra facts relating to Rekonstrukce Koupelny krok za krokem kindly take a look at our own web site. kvůli které se projekt nepřeloží. Dále si nastavte emulátor nebo si připravte fyzické zařízení. Emulátor je pomalejší, ale umožňuje testovat různé velikosti obrazovek. Fyzické zařízení zase ukáže reálný výkon. Vyzkoušejte obojí – minimálně na jednom z nich budete aplikaci spouštět denně.
Dále si dejte pozor na délku textů. Překlad z angličtiny do češtiny bývá obvykle o 20–30 % delší, němčina může být ještě delší. Rezervujte proto v rozvržení dostatek místa, aby se text neofezával. Pro kontrolu používejte tzv. pseudo-lokalizaci: automaticky prodlužte všechny řetězce o náhodné znaky a otestujte, zda se rozložení nerozbije. Tento postup odhalí problémy dříve, než je uvidí koncoví uživatelé.
Typická past: test asynchronní akce skončí dřív, než se vyřeší Promise. Vždy používejte async/await a před ukončením testu počkejte na všechny microtasky. Pokud testujete chybový stav, mockujte API tak, aby vracelo zamítnutý Promise, a ověřte, že akce typu failure obsahuje správnou chybovou zprávu. Nezapomeňte na to, že getState musí také vracet konzistentní data – pokud thunk čte z něj nějakou hodnotu, mějte ji připravenou v mocku.
Kdy se JWT stává slabým místem místo ochrany? Jednou z nejčastějších chyb je ukládání citlivých údajů do payloadu. JWT je sice podepsaný, ale ne šifrovaný, takže každý, kdo token získá, si může přečíst jeho obsah. Pokud do payloadu vložíte e-mail, roli uživatele nebo dokonce ID relace, vystavujete tato data riziku odposlechu. Místo toho do tokenu patří pouze minimum informací, jako je identifikátor uživatele a čas expirace. Vše ostatní si API může dohledat v databázi podle ID.
Když píšete testy pro Redux, nejčastější chybou je spoléhat na to, že komponenta propojená přes poskytovatele store udělá všechnu práci za vás. Takový test je pomalý, křehký a po každé změně API ho musíte přepisovat. Mnohem lepší je testovat reducery a async akce izolovaně, bez renderování komponent. Získáte tím rychlost, stabilitu a okamžitou zpětnou vazbu, kde přesně problém nastal.
등록된 댓글이 없습니다.