Jump to content

Jak zrychlit načítání webu bez zbytečných zásahů

From Dusty Ways: Rebirth

Dalším krokem je komprese textových souborů. Server může posílat HTML, CSS a JavaScript ve zmenšené podobě, prohlížeč je pak automaticky rozbalí. Toto nastavení najdete v konfiguraci webového serveru. Nevhodné je ale vše komprimovat – moderní formáty obrázků jsou často už samy komprimované a další stlačení jim nepomůže. Také si dejte pozor, abyste nekomprimovali soubory, které jsou už tak malé, protože to jen zbytečně zatěžuje procesor.

Pokrytí testy je metrika, která ukazuje, kolik řádků, větví nebo funkcí kódu je pokryto automatizovanými testy. Měření je jednoduché: spustíte testy s nástrojem, který sleduje provádění kódu, a na konci získáte procento. Najdete ho v nástrojích jako Istanbul pro JavaScript, JaCoCo pro Javu nebo Coverage.py pro Python. Tato čísla vám řeknou, kolik kódu bylo skutečně spuštěno, ale neřeknou vám nic o kvalitě testů. Proto je důležité chápat, že pokrytí je pouze jeden z mnoha ukazatelů kvality testování.

Na co se zaměřit při testování SQL podpory Při testování se zaměřte na tři oblasti: editaci dotazů, prohlížení výsledků a správu schémat. V editoru by mělo fungovat automatické dokončování tabulek a sloupců, ale ne jen podle názvu – důležité je, aby rozumělo kontextu, tedy které aliasy a které databáze jsou v dotazu aktivní. Dále si vyzkoušejte, jak se zobrazují výsledky. Užitečná je možnost řadit sloupce kliknutím, filtrovat data a exportovat do CSV nebo Excelu. Pokud často upravujete strukturu tabulek, oceníte vizuální editor, kde lze měnit sloupce a indexy bez ručního psaní ALTER příkazů.

Na závěr si ověřte, jakým způsobem IDE spravuje připojení. Mělo by umožnit více paralelních spojení, ať už pro různé databáze, nebo pro testovací a produkční prostředí. Užitečná je také možnost ukládat připojení s hesly do šifrovaného trezoru, abyste je nemuseli zadávat pokaždé znovu. Tím se vyhnete časté chybě, kdy si uložíte heslo do nešifrovaného souboru. Pokud budete tyto aspekty testovat předem, vyhnete se tomu, že si pořídíte nástroj, který sice vypadá skvěle, ale v běžné práci vás bude spíše brzdit.

Kdy zvolit GraphQL a na co si dát pozor GraphQL se hodí pro aplikace s bohatým datovým modelem, třeba e-shopy nebo sociální sítě. Umožňuje klientovi definovat strukturu odpovědi, čímž eliminuje over-fetching i under-fetching. Typická chyba začátečníků je ale vytvoření jednoho obřího dotazu, který stáhne celou databázi. To způsobí zbytečnou zátěž serveru a zpomalení. Vždy kontrolujte maximální hloubku dotazu a povolené množství vrácených záznamů. K tomu slouží limity a mechanismy jako paginace nebo throttling.

Scrum není o tom, že budete dělat víc věcí za kratší dobu. Je o tom, že budete dělat ty správné věci a budete mít zpětnou vazbu dřív. Pro české týmy je klíčové, aby si ujasnily role, definici hotového a hlavně aby se nebály říct managementu, že něco nestihnou. Začněte malým pilotním projektem, ne celou organizací. Až uvidíte první výsledky, rozšiřte působnost. Jinak skončíte s byrokratickým monstrem, které nemá s agilitou nic společného.

Další pastí je cacheování. U REST můžete snadno použít HTTP cache, protože každá URL je jednoznačný identifikátor. U GraphQL se to komplikuje, protože všechny dotazy obvykle míří na jeden endpoint. Musíte proto implementovat cache na úrovni resolverů nebo použít nástroje pro persisted queries. Pokud to podceníte, výkon se zhorší a klienti budou čekat. Naopak výhodou je, že GraphQL vám umožní verzování bez nutnosti měnit endpointy – stačí upravit schéma a klienti si přizpůsobí dotazy.

Při výběru integrovaného vývojového prostředí (IDE) se často soustředíte na jazyky, které plánujete používat, a na vzhled prostředí. To je ale jen polovina úspěchu. Pokud pracujete s databázemi, je podpora SQL nástrojů klíčová. Než se rozhodnete, zkuste si odpovědět na otázku, jaké databázové systémy používáte – MySQL, PostgreSQL, SQL Server, nebo třeba Oracle. Každé IDE má jinou úroveň integrace a ne vždy to, co vypadá dobře v prezentaci, funguje bez problémů v praxi.

Při výběru se tedy řiďte třemi kritérii: složitost dat, potřeba flexibility a zkušenosti týmu. Pokud je váš tým zvyklý na SQL a má rád strukturu, GraphQL mu sedne. Pokud preferujete jednoduchost a jistotu, zvolte REST. Můžete také kombinovat obojí – použít REST pro veřejné API a GraphQL pro interní aplikace. Důležité je vyhnout se tomu, abyste GraphQL použili jen proto, že je moderní, bez jasného důvodu. Vždy měřte výkon a zátěž, ať se rozhodnete jakkoli.

Kdy se vyplatí pokrytí měřit a kdy už ne Měření pokrytí má smysl zejména v projektech s velkou, kritickou kódovou základnou, kde hrozí, že se některé části kódu přestanou testovat. Pravidelné sledování pokrytí vám pomůže odhalit nepokryté větve, které mohou vést k chybám. Typickým chybám se vyhnete, když nebudete měřit pokrytí na úrovni řádků, ale zaměříte se na větve a podmínky. Řádkové pokrytí může být vysoké, ale pokud netestujete obě větve podmínky, stále riskujete. Další častou chybou je honba za stoprocentním pokrytím za každou cenu — to vede k psaní testů, které jen potvrzují, že kód funguje, ale neodhalují skutečné nedostatky.