GitHub Actions versus tradiční CI/CD: co vám ušetří hodiny práce

Aus Rettungsdienst-Wiki
Zur Navigation springen Zur Suche springen


Pro efektivní caching závislostí použijte built-in cache action. Například pro jazyk Python ukládáte pip cache, pro Node.js npm cache. Klíč cache by měl obsahovat hash lock souboru. Bez cache se vám každý build zdrží o desítky sekund až minut, zvlášť u větších projektů. Nezapomeňte ale cache invalidovat při změně verze interpretu — jinak budete používat staré balíčky.

Dalším častým problémem jsou soubory, které obsahují více jazyků najednou. Typicky jde o HTML s vloženým CSS a JavaScriptem, nebo o šablony, kde se mísí HTML, šablonovací jazyk a skripty. IDE, které podporuje takzvané vnořené jazyky, si s tím poradí, ale vy musíte vědět, jak je aktivovat. V mnoha editorech stačí nainstalovat rozšíření pro daný šablonovací systém (například pro Twig, Jinja nebo Razor) a IDE si jazyk rozpozná podle kontextu. Pokud tak neučiníte, budete mít v jednom souboru zvýrazněný jen HTML a zbytek bude šedivý.

Když zákazník přijde s požadavkem na termín, většina z nás instinktivně řekne jediné číslo. Třeba „budu to mít ve čtvrtek". Problém je, že takový odhad je téměř vždy lež – ne proto, že byste chtěli klamat, ale protože neznáte všechny proměnné. Může se objevit chyba v kódu, dodatečný požadavek nebo jen špatně odhadnutá složitost úkolu. A když slíbíte konkrétní den a nedodržíte ho, ztrácíte důvěru rychleji, než byste čekali. Řešení není v tom, že budete odhadovat s větší rezervou. Řešení je změnit způsob, jakým o čase mluvíte.

První velký rozdíl je v hostingu a údržbě. GitHub Actions běží plně v cloudu, takže nemusíte spravovat žádné servery ani runner instance. To oceníte hlavně v malých týmech, kde nikdo nechce trávit čas konfigurací infrastruktury. Na druhou stranu, pokud máte specifické požadavky na hardware, síťové prostředí nebo compliance, budete potřebovat self-hosted runnery. Ty už vyžadují údržbu a zabezpečení – a to je přesně oblast, kde klasické CI servery mají výhodu, protože s nimi máte plnou kontrolu nad prostředím.

Pamatujte, že žádné univerzální řešení neexistuje. Špatná volba se projeví až po měsících provozu, kdy předělání API stojí násobně víc než správné rozhodnutí na začátku. Proto si naplánujte, co bude vaše API reálně dělat za rok, ne za týden. Testujte na reálných datech, ne na vzorových příkladech. A hlavně – nenechte se zlákat marketingovými přísliby, ale vycházejte z vlastních měření a požadavků vašich uživatelů.

Při výběru mezi REST API a GraphQL nejde o módní trend, ale o konkrétní dopady na výkon, údržbu a rychlost vývoje. Mnoho týmů sáhne po GraphQL jen proto, že je „moderní", a pak řeší problémy s cachováním nebo přetíženým serverem. Jiní zůstanou u RESTu a bojují s nadbytečnými daty v každé odpovědi. Klíčové je pochopit, jak obě technologie pracují s daty a kde leží jejich skutečné limity.

Typická chyba začínajících autorů je, že si vyberou licenci podle šablony z internetu, aniž by si ověřili, zda je vhodná pro jejich konkrétní jazyk nebo typ projektu. Například pro dokumentaci se hodí jiné licence než pro zdrojový kód. Pokud píšete knihovnu, zvažte, že ji budou používat i komerční projekty, a proto je lepší zvolit permisivní licenci, If you have any kind of concerns regarding where and ways to utilize informace, you can contact us at our webpage. aby se nestala pro vývojáře překážkou. Pokud píšete celou aplikaci, která má fungovat jako veřejný statek, copyleft dává smysl.

REST API je ideální, když máte stabilní, dobře definované zdroje – třeba uživatele, objednávky nebo články. Využijete ho naplno, pokud klient potřebuje vždy kompletní reprezentaci dané entity. Typický příklad: veřejné API pro třetí strany. Tady oceníte jednoduchou adresaci, snadné testování pomocí běžných nástrojů a přirozenou podporu HTTP metod. Naopak pokud vaše aplikace vyžaduje složená data z více entit najednou, začnete řetězit volání a každé z nich s sebou nese režii. Roste latence a spotřeba dat, což se projeví zejména u mobilních klientů s omezeným připojením.

Jaké jsou praktické rozdíly při nasazení a provozu? Pro jednoduché CRUD operace na jednotných datech je REST čitelnější. Máte jasné endpointy, Rady pro Rekonstrukci stavové kódy a hlavičky. Pokud ale vyvíjíte interní dashboard, kde každá obrazovka kombinuje data z pěti zdrojů, GraphQL výrazně zjednoduší práci frontendu. Typický scénář: vyberete si GraphQL, ale zapomenete, že jeho flexibilita zvyšuje nároky na bezpečnost. V RESTu stačí omezit přístup k endpointům, v GraphQL musíte hlídat každé pole, jak Zařídit Malou kuchyni jinak může klient dotazem na vnořené seznamy stáhnout citlivá data, která mu nepřísluší.
Pozor také na kombinaci licencí. Pokud váš projekt obsahuje kód z úložné prostory v malém bytěíce zdrojů, musíte ověřit, že jsou licence navzájem slučitelné. Například kód pod GPL nelze jen tak zkombinovat s kódem pod licencí, která zakazuje komerční použití. Nejste-li si jistí, použijte nástroj pro analýzu závislostí, ale i ten je pouze orientační. Vždy si přečtěte celý text licence a podle toho upravte i svůj vlastní soubor README, kde jasně uveďte, pod jakou licencí projekt je a co to pro uživatele znamená.