Jak zrychlit databázové dotazy a snížit zátěž serveru
Praktický příklad je k nezaplacení. Místo suchého výpisu parametrů ukažte kompletní JSON s reálnými hodnotami. Uveďte i příklady s hraničními hodnotami – prázdný seznam, null, dlouhý text. Frontend pak vidí, co může očekávat, a nemusí hádat. Pozor ale na citlivé údaje: v příkladech nikdy nepoužívejte skutečná osobní data nebo tokeny. Stačí fiktivní e-maily typu "jmenoprijmeni" – nikdy ne skutečná adresa.
Klíčové části, které musí dokumentace obsahovat Kromě seznamu endpointů a jejich metod (GET, POST, PUT, DELETE) nezapomeňte na podrobný popis datových struktur. If you have any inquiries pertaining to where and how you can make use of více o tom, you can contact us at our webpage. Pro každý typ objektu uveďte povinná a nepovinná pole, jejich typy a příklady hodnot. Věnujte pozornost i tomu, jak vypadá odpověď při úspěchu, ale hlavně při chybě – popište strukturu chybové odpovědi, kódy a možná nápravná opatření. Frontend pak může na chyby reagovat předvídatelně, místo aby hádal podle statusu HTTP.
Důležitý je také způsob přenosu. Token nesmí být součástí URL – dostane se do logů serveru a barvy stěn do obýváku historie prohlížeče. Používejte hlavičku Authorization s typem Bearer, a pokud přenášíte token v JavaScriptu, ukládejte ho v paměti proměnné, ne do localStorage nebo sessionStorage. Tyto úložiště jsou přístupné skriptům, takže riziko XSS útoku se tím výrazně zvyšuje. Pro webové aplikace je nejbezpečnější varianta kombinace httpOnly cookie pro refresh token a krátkodobý JWT v paměti.
Praktickým pomocníkem je udržovat dokumentaci vždy aktuální. Vytvořte si jednoduchý automatizovaný test, který porovná dokumentaci se skutečným chováním backendu. Často se používá generování dokumentace přímo z kódu, ale to není univerzální řešení – vyžaduje, aby backend uměl sám sebe popsat. U menších projektů stačí, když si obě strany určí jednoho „vlastníka" dokumentace, který má na starosti její aktuálnost a pravidelně kontroluje, že odpovídá realitě. Vyhnete se tak rozporům, které vedou k časovým ztrátám a frustraci.
TypeScript je nadstavba JavaScriptu, která do vašeho kódu přidává statické typování. Pokud jste zvyklí psát v JavaScriptu, první setkání s TypeScriptem může být příjemné překvapení – většina syntaxe zůstává stejná, ale najednou máte k dispozici nástroje, které vám pomohou chytat chyby dříve, než se dostanou do prohlížeče. Nemusíte hned přepisovat celý projekt; stačí začít u nových souborů a postupně rozšiřovat pokrytí.
Jednotkové testy jsou nedílnou součástí kvalitního kódu. Framework NUnit patří mezi nejpoužívanější nástroje pro testování v ekosystému .NET. Než začnete psát první test, ujistěte se, že máte v projektu nainstalovaný balíček NUnit a NUnit3TestAdapter. Testy píšete do samostatné třídy, která je obvykle označena atributem [TestFixture]. Každá testovací metoda pak nese atribut [Test]. Základem je, aby testy byly nezávislé, rychlé a hlavně vypovídající. Pokud test selže, mělo by být okamžitě jasné, která část kódu je rozbitá.
Když se webová aplikace zpomaluje, první podezření padá na špatně napsané SQL dotazy. Než začnete přidávat další servery nebo měnit architekturu, projděte si pomalé dotazy v logu. Většinu problémů vyřešíte úpravou indexů, struktury tabulek nebo samotného dotazu. Níže najdete konkrétní postupy, které mají okamžitý efekt.
Největší síla TypeScriptu spočívá v definici rozhraní (interface) a typů (type). Místo toho, abyste si pamatovali, jaký tvar má objekt, který vám někdo předá, si ho nadefinujete. Například funkce pro zpracování uživatele by měla přijímat objekt s vlastnostmi id: number a name: string. Pokud do funkce předáte objekt bez těchto vlastností, kompilátor okamžitě zahlásí chybu. Tím se vyhnete mnoha běžným chybám, jako je překlep v názvu vlastnosti nebo špatný typ hodnoty.
Prvním krokem je návrh testovatelného kódu. Vyhněte se závislostem na externích službách, databázích nebo souborovém systému. Pokud testujete třídu, která komunikuje s databází, použijte rozhraní a v testech ho nahraďte falešnou implementací. NUnit sám o sobě neumí vytvářet falešné objekty, ale můžete použít jednoduchou ruční implementaci nebo knihovnu jako Moq. Důležité je, aby testy běžely izolovaně. To znamená, že každý test by měl mít vlastní instanci testované třídy a žádný test by neměl záviset na pořadí ostatních.
Dalším častým úskalím je verzování API. Pokud měníte rozhraní, nezapomeňte dokumentaci verzovat společně s kódem. Uvádějte v hlavičce dokumentace číslo verze a datum změny. Zavedete-li zásadu, že každá změna kontraktu musí být nejprve zdokumentována a teprve poté implementována, předejdete situacím, kdy frontend volá starý endpoint, který už backend nepodporuje, nebo naopak backend očekává nový parametr, který frontend neposílá.
등록된 댓글이 없습니다.