Jak správně vrstvit testy, aby nezdržovaly vývoj

Aus Rettungsdienst-Wiki
Version vom 21. August 2026, 18:22 Uhr von KristyNowacki88 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Jak správně synchronizovat větve Když potřebujete do své feature větve dostat změny z hlavní větve, nepoužívejte merge, ale rebase. Rebase přehraje vaše commity na nový základ a vytvoří lineární historii. To usnadňuje pozdější code review a snižuje riziko konfliktů. Postup je jednoduchý: přepnete se na hlavní větev, pullnete změny, přepnete se zpět na svou větev a provedete rebase. Při rebase se mohou objevit konflikty,…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Jak správně synchronizovat větve Když potřebujete do své feature větve dostat změny z hlavní větve, nepoužívejte merge, ale rebase. Rebase přehraje vaše commity na nový základ a vytvoří lineární historii. To usnadňuje pozdější code review a snižuje riziko konfliktů. Postup je jednoduchý: přepnete se na hlavní větev, pullnete změny, přepnete se zpět na svou větev a provedete rebase. Při rebase se mohou objevit konflikty, které je nutné vyřešit. To je normální, ale pokud je to časté, znamená to, že se vaše větve příliš odchýlily.

Permisivní licence umožňují komukoli použít kód i v proprietárním softwaru, často bez nutnosti zveřejňovat změny. To je ideální pro knihovny, nástroje nebo projekty, kde chcete maximální adopci. Naproti tomu copyleftové licence (GPL, AGPL) vyžadují, aby odvozené dílo bylo distribuováno pod stejnou licencí. To oceníte, pokud chcete zabránit tomu, aby někdo váš kód „zavřel" a nevrátil komunité žádné úpravy.

Když pyramidu postavíte správně, získáte rychlou zpětnou vazbu při každém commitu. Vyzkoušejte si to na malém projektu: začněte s jednotkovými testy pro kritickou logiku, přidejte pár integračních testů pro napojení na databázi a teprve poté jeden dva end-to-end testy pro hlavní flow. Uvidíte, že se vám bude lépe refaktorovat a přidávat nové funkce, aniž byste se báli, že něco rozbijete. Pamatujte: dobrá testovací pyramida není o kvantitě testů, ale o tom, kde je umístíte.

Testovací pyramida není jen teoretický model, ale praktický nástroj, který vám pomůže udržet náklady na testování pod kontrolou. Základní myšlenka je jednoduchá: čím níže v pyramidě test stojí, tím by ho mělo být více, a naopak. Na dně jsou rychlé a levné jednotkové testy, uprostřed integrační testy a na vrcholu pomalé end-to-end testy. Když tohle rozdělení nedodržíte, skončíte s testy, které běží desítky minut, jsou křehké a při každé změně kódu vyžadují ruční opravy.

Při práci s GraphQL si ale dejte pozor na typické chyby. První je přetížený server kvůli neomezené hloubce dotazů – klient může požádat o vnořené vztahy do nekonečna, což způsobí pomalé odezvy. Řešení je omezit maximální hloubku dotazu nebo použít šablonu pro povolené dotazy. Druhou častou chybou je ignorování cache. REST snadno využije HTTP cache pro GET požadavky, ale GraphQL pracuje s jedním endpointem, takže cache musíte řešit na aplikační úrovni. Pokud to zanedbáte, může se váš server zbytečně zatěžovat.

Pozor na rozdíl mezi silným a slabým copyleftem. Silný copyleft (GPL) se vztahuje i na díla, která váš kód pouze propojují. Slabý copyleft (LGPL) umožňuje použití v proprietárním softwaru za předpokladu, že úpravy samotné knihovny zůstanou volné. Tento rozdíl je zásadní zejména pro vývojáře knihoven a frameworků.

Pro jednoduché služby, kde klient potřebuje jasně definované zdroje, je REST obvykle lepší volba. Pokud máte veřejné API, které má být snadno pochopitelné a stabilní, REST poskytuje přehlednou strukturu s explicitními koncovými body. Typický příklad: e-shop, kde potřebujete získat produkt, uživatele nebo objednávku. Každý zdroj má vlastní URL a HTTP metody (GET, POST, PUT, DELETE) dávají jasně najevo, co se děje. Méně zkušení vývojáři se v RESTu rychle zorientují, protože vše je vidět na první pohled.

Výběr open source licence je jedním z nejdůležitějších rozhodnutí při publikování softwaru. Ovlivňuje, jak mohou ostatní váš kód používat, upravovat a distribuovat. Častou chybou je převzít licenci z jiného projektu bez přemýšlení, nebo ji dokonce vynechat. Bez licence totiž není software open source – ostatní ho legálně nesmí použít.

Nakonec nezapomeňte licenci správně aplikovat – obvykle vložením textu licence do repozitáře a komentáře do hlaviček zdrojových souborů. Aktualizujte ji, pokud se změní podmínky projektu. A vždy si ověřte, zda licence, kterou jste zvolili, je kompatibilní s knihovnami, které sám používáte. Dobrý výběr na začátku ušetří mnoho nepříjemností později.

Typické chyby, které otevírají dveře útočníkům Nejčastější chybou je konstrukce dotazu pomocí konkatenace řetězců, například napsat „SELECT * FROM uzivatele WHERE jmeno = '" . $_GET['jmeno'] . "'". Stačí pak zadat do pole jména hodnotu jako „' OR '1'='1" a podmínka je vždy pravdivá. Podobně nebezpečné je použití funkce mysql_real_escape_string, která sice odfiltruje část znaků, ale při vícebajtových kódováních nebo v kombinaci s jinými kontexty selhává. Dalším častým prohřeškem je přímé vkládání čísel z URL bez ověření, že jde skutečně o číslo – i to lze zneužít.

Na závěr si shrňte své priority. Pokud je pro vás jednoduchost, stabilita a široká kompatibilita – jděte do REST. Pokud máte dynamická data s mnoha vztahy a chcete minimalizovat přenos dat – GraphQL je lepší. Neexistuje univerzální odpověď, ale důležité je vyhnout se módním vlnám a vycházet z potřeb svého konkrétního projektu. Otestujte obě varianty na malém vzorku a změřte, která je pro váš tým efektivnější.