Odhad úkolu podle viditelné práce, nebo podle skutečného úsilí?

Z Mazovia


Na pohovoru nepředstírejte roky zkušeností. Vezměte si s sebou své protokoly, seznam scénářů a jeden příklad, kdy jste našli něco, co ostatní přehlédli. Přiznejte, co jste dělali ručně a co jste se museli doučit. Nejvíc totiž přesvědčí to, že dokážete popsat vlastní postup a jeho slabiny. Kdo umí pojmenovat hranice svého umění, toho se nebojí pustit k reálnému zadání.

Na závěr: pipeline není jednorázová záležitost. Po nasazení sledujte dobu běhu, míru selhání a spotřebu. Průběžně upravujte kroky, přidávejte podmínky a udržujte runner v aktuálním stavu. Rozdíl mezi hostovaným a vlastním runnerem není o tom, který je lepší obecně, ale který lépe sedí na váš projekt v dané fázi.

Každý odhad vývojového úkolu začíná u toho, co je vidět: nová obrazovka, úprava dotazu, oprava chyby. Jenže právě viditelná práce zabírá často menší část celkového času. Zbytek tvoří skryté činnosti, If you have any questions with regards to wherever and how to use OsvěTlení V ObýVáKu, you can speak to us at our own webpage. které se do odhadu nevejdou, protože se na ně v momentě plánování nemyslí. Výsledkem je úkol odhadnutý na dva dny, který reálně trvá čtyři. Nejde o špatný odhad viditelné části, ale o opomenutí té neviditelné.
Častou chybou začátečníků je používání typu any. Ten vypne veškerou kontrolu a vrací vás zpět k JavaScriptu. Pokud narazíte na situaci, kdy opravdu nevíte, použijte raději unknown. Ten vás donutí typ nejprve zúžit, než s hodnotou začnete pracovat. Další častou chybou je ignorování null a undefined. TypeScript v přísném režimu vyžaduje, abyste s možností prázdné hodnoty počítali. Není to otravné, je to přesně ta chyba, která v JavaScriptu shodí aplikaci až za běhu.

Nejčastější chyba je volba podle popularity. Tým si řekne, že relační databáze je pomalá, a nasadí dokumentovou databázi na transakční systém s penězi. Jenže bez transakcí přes více dokumentů a bez cizích klíčů se z účtování rychle stane nekonzistentní datový sklad. NoSQL není náhrada rekonstrukce koupelny krok za krokem relační model, je to jiný kompromis. Nese výhody v dostupnosti a škálování, ale platíte za ně menší garancí konzistence.

NoSQL se vyplatí tam, kde schéma roste a mění se, kde je potřeba horizontální škálování a kde stačí konzistence se zpožděním. Jakmile začnete řešit složité dotazy a transakce přes více entit, je čas vrátit se k relačnímu modelu nebo k oběma přístupům současně.

Mezi časté chyby patří příliš široké spouštěče. Workflow, který běží na každý push do všech větví, zbytečně spotřebovává prostředky a zpomaluje zpětnou vazbu. Omezujte spouštění na konkrétní větve a používejte podmínky, aby se drahé úlohy nespouštěly tam, kde nemají smysl. Další chybou je ukládání tajemství přímo do YAML. Vždy používejte šifrované proměnné a nikdy je nevypisujte do logu. Poslední častá chyba je ignorování cache. Správně nastavená cache závislostí zkrátí běh z desítek minut na jednotky a je to jedna z největších úspor, které můžete udělat.

Praktický tip: začněte na hostovaném runneru a přejděte na vlastní až ve chvíli, kdy narazíte na konkrétní překážku. Není dobré stavět vlastní infrastrukturu dopředu jen kvůli dojmu. U vlastního runneru také dbejte na to, aby úlohy z různých větví nesdílely stejný pracovní adresář bez izolace. Jinak si můžete rozbít cache nebo si navzájem přepsat výstupy. Řešením je oddělit pracovní složky podle běhu nebo použít kontejner v rámci kroku.

Praktické pravidlo: začněte relačně a měňte, až když to bolí Postup je jednoduchý. Napište tři nejčastější dotazy, které aplikace opravdu provede. Pokud jde o spojování několika tabulek, filtrování podle více atributů a součty, relační databáze je správná volba. NoSQL zvolte ve chvíli, kdy data přicházejí v podobě celých objektů, které se ukládají a čtou najednou – profil uživatele, produkt v katalogu, stav zařízení. Dokumentová databáze tady ušetří desítky spojení.

GitHub Actions je dnes běžná volba pro automatizaci sestavení, testů a nasazení. Pipeline se definuje v souboru YAML ve složce .github/workflows v repozitáři. Každý workflow má název, spouštěč (on) a jednu nebo více úloh (jobs). Úlohy běží na runneru, což je buď stroj hostovaný přímo na platformě, nebo vlastní stroj připojený k repozitáři. Právě volba mezi hostovaným a vlastním runnerem bývá první praktické rozhodnutí, které ovlivní cenu, rychlost i dostupnost nástrojů.

Druhý signál je objem a rychlost zápisu. Senzorová data, logy, události a fronty zpráv rostou po milionech záznamů denně a málokdy se zpětně upravují. Sloupcová nebo klíč–hodnota databáze zvládne zápis lineárně s počtem uzlů. Naopak data, která se často přepisují a vyžadují okamžitou konzistenci na více místech, patří do relačního světa. Třetí signál je tvar dotazů: pokud potřebujete hledat vztahy typu „kdo zná koho" nebo „co je propojeno s čím", grafová databáze je přirozenější než série spojení.