Editing
Rovnováha mezi unit a integračními testy při růstu projektu
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Při zabezpečení API pomocí JWT tokenů je klíčové pochopit, že samotný token není tajemstvím. JWT je podepsaný JSON objekt, který obsahuje nároky (claims), jako je identifikátor uživatele, role nebo expirace. Nejčastější chybou je vkládat do tokenu citlivé údaje, jako jsou hesla nebo osobní informace, protože token je pouze base64url zakódovaný, nikoli šifrovaný. Útočník, který token získá, si ho může snadno dekódovat a přečíst. Proto do tokenu vkládejte pouze nezbytné údaje a vše ostatní řešte serverovým dotazem do databáze.<br><br>WORKDIR /app<br><br>Jak projekt roste, roste i počet testů. Najednou zjistíte, že unit testy trvají pět minut, i když testují jen malé funkce, a integrační testy padají kvůli věcem, které s testovanou funkcí nesouvisí. Typickou chybou je testovat všechno na obou úrovních, nebo naopak spoléhat jen na jednu vrstvu. Cílem není dokonalá symetrie, ale poměr, který odpovídá rizikům a častosti změn v kódu.<br><br>Závěrem: NoSQL není ani lepší, ani horší než SQL – je prostě jiný. Použijte ho tam, kde potřebujete flexibilní schéma, horizontální škálování a práci s velkými objemy dat, jako jsou logy, real-time analýzy nebo obsahové portály. Nechte SQL stranou pro aplikace, kde jsou klíčové transakce, konzistence a komplexní dotazy. A pokud si nejste jisti, začněte s hybridním řešením – použijte SQL pro kritické části systému a NoSQL pro doplňkové služby. Teprve čas ukáže, co [https://Www.shewrites.com/search?q=v%C3%A1m%20vyhovuje vám vyhovuje] lépe.<br><br>Rychlost načítání webu není jen otázkou pohodlí návštěvníků, ale i pozice ve vyhledávačích a konverzního poměru. Pomalý web odradí uživatele dřív, než stihne zobrazit obsah. Přitom většinu problémů způsobují banální příčiny, které lze odstranit během několika hodin. Základním krokem je měření – nehádejte, kde je problém, [https://Citiesofthedead.net/index.php/Nastaven%C3%AD_IDE_pro_pohodlnou_pr%C3%A1ci_s_v%C3%ADce_jazyky Https://Citiesofthedead.net] ale změřte si dobu načítání pomocí nástrojů, které ukáží waterfall jednotlivých souborů. Pozor na to, že rychlost měřená z výkonného serveru se liší od reálného zážitku uživatele na mobilu, proto testujte i s emulací pomalého připojení.<br><br>Při výběru konkrétní databáze neházejte všechny NoSQL do jednoho pytle. Zhodnoťte svoje požadavky: jak velká data budete mít, jaký poměr čtení a zápisů, jakou latenci potřebujete a jaké dotazy budete provádět. Vyzkoušejte si prototyp na malém vzorku dat a nevěřte marketingovým slibům. Důležité je také myslet [http://miklagaard.no/index.php?title=User:HungNickson0875 nábytek na míru] provoz – NoSQL systémy často vyžadují více paměti a údržby než klasická SQL databáze. A pokud jste to ještě neudělali, naplánujte si, jak budete zálohovat a obnovovat data, protože u některých NoSQL databází je to složitější než u SQL.<br><br>Na co si dát při nasazení pozor Nejčastější chyba bývá přenos SQL myšlení do NoSQL. Mnoho vývojářů se snaží využít dokumentové databáze k modelování vztahů mezi entitami jako v SQL: vytvářejí separátní kolekce a spojují je přes reference. To je sice možné, ale zabijete tím hlavní výhodu – rychlost. V NoSQL byste měli data ukládat tak, jak je budete číst. Pokud potřebujete zobrazit příspěvek spolu s autorem, uložte informace o autorovi přímo do dokumentu příspěvku. Tím se vyhnete drahým JOINům, které v NoSQL neexistují. Mnohem lepší je denormalizace: obětujete konzistenci dat, ale získáte rychlost a jednoduchost.<br><br>Při přidávání nové funkce si položte otázku: co se stane, když tato funkce selže? Pokud je odpověď „rozpadne se celý platební proces", potřebujete integrační test. Pokud je to „načte se špatně seznam položek", stačí unit test na logiku řazení a filtrování. Častým omylem je testovat na úrovni integrace i to, co je čistě byznys logika, a naopak – psát unit testy na triviální gettery. To vede k tomu, že testy jsou křehké a každá změna designu znamená přepisování stovek řádků.<br><br>Relace založené na SQL jsou léty prověřené a pro většinu typických aplikací stále nejlepší volbou. Ale narazíte na situace, kdy klasický relační model začne skřípat: obrovské objemy dat, nestálá struktura záznamů nebo potřeba horizontálního škálování na desítky serverů. Právě tehdy přichází ke slovu NoSQL – tedy databáze, které se od klasických tabulek záměrně odklánějí. Není to však univerzální náhrada, ale specializovaný nástroj. Než se do něj pustíte, ujasněte si, co od databáze skutečně potřebujete a co jste ochotni obětovat.<br><br>Na závěr: nechte testy vyvíjet společně s kódem. Když refaktorujete, testy musí refaktorovat s vámi. Pokud zjistíte, že údržba testů stojí víc času než jejich přínos, snižte počet integračních testů a posilte unit testy. Naopak, pokud vám unit testy dávají falešný pocit bezpečí a bugy unikají do produkce, přidejte více integračních testů na kritické cesty. Rovnováha není statická – je to průběžná optimalizace podle toho, co se [https://wiki.tryzna.de/index.php?title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch úložné prostory v malém bytě] projektu reálně děje.<br><br>For those who have any questions about in which as well as the way to employ [http://Racist.wiki/index.php/Testov%C3%A1n%C3%AD_redux_reducer%C5%AF_a_async_akc%C3%AD_bez_integra%C4%8Dn%C3%ADho_prost%C5%99ed%C3%AD http://Racist.wiki/Index.php/TestováNí_redux_reducerů_a_async_akcí_bez_Integračního_prostředí], you possibly can e mail us in our internet site.<br>
Summary:
Please note that all contributions to Rikkiepedia may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Rikkiepedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Page information