Jak udržet git historii čitelnou bez merge commitů
Při zpracování odpovědi v kódu nikdy nespoléhejte na to, že tělo bude přesně takové, jaké očekáváte. Struktura JSON se může lišit podle verze API, pole s daty může být prázdné nebo může obsahovat null. Vytvořte si proto funkci, která odpověď nejprve zvaliduje a až poté s ní pracuje. V JavaScriptu na to použijete response.ok ke kontrole stavového kódu a následně response.json(). V Pythonu je to podobné s knihovnou requests: musíte zkontrolovat response.status_code a teprve pak zavolat response.json(). Pokud zapomenete na kontrolu stavu, program se vám zhroutí až při přístupu k datům, což je matoucí.
Co se týče samotné prohlídky, v Allianz Areně se dočkáte moderních multimediálních instalací a interaktivních koutků. Prohlídka šaten a hráčského tunelu je vedená efektně a rychle, takže si vyhraďte čas i na výstup na vyhlídkovou plošinu. V San Siru je prohlídka volnější – můžete si prodloužit pobyt na tribuně nebo v muzeu, kde narazíte na historické dresy a trofeje. Nezapomeňte, že v Miláně se platí hotově spíše výjimečně, ale na některých stáncích uvnitř stadionu může být problém s kartou; drobné se hodí.
Dalším častým zdrojem chyb je práce s časem a asynchronním kódem. JavaScript je single-threaded, ale to neznamená, že se kód vykonává podle toho, jak jde za sebou. Pokud používáte `setTimeout` nebo `fetch`, nezapomeňte, že callback se spustí později. Typická chyba je použití staré hodnoty proměnné uvnitř callbacku, protože ta se vyhodnotí až po dokončení celé smyčky. Řešením je použít `Promise` a `async/await`, díky kterým je tok kódu čitelnější. Vyhnete se tak i „callback hellu", kdy se do sebe zanořují další a další funkce.
Základní otázka zní: jak stůl skutečně použijete? Pokud potřebujete především pracovní kout na notebook, hledejte model s pevnou konstrukcí a dostatečně hlubokou deskou. Pokud chcete stůl hlavně na občasné stolování, vyhoví vám spíš výklopná deska s aretací. Typickou chybou je kupovat univerzální sklápěcí stůl „na všechno" – většinou pak není dobrý ani na práci, ani na jídlo. Rozhodněte se předem pro hlavní účel a podle něj vybírejte.
Když je funkce moc velká, je čas ji rozdělit Funkce, která má třicet řádků a dělá pět různých věcí, je past. Většinou skončí tak, že jeden řádek uvnitř způsobí chybu a vy musíte procházet celé tělo funkce, abyste našli příčinu. Řešení je jednoduché: rozdělte ji na menší celky, každé s jedním úkolem. Pomůže i to, když funkce nemění vnější stav, ale pouze přijímá vstup a vrací výstup. Takové čisté funkce se snadno testují a při ladění nemusíte přemýšlet, kde všude ještě způsobí vedlejší efekt.
Nezapomínejte ani na kontrolu vstupů. Funkce, která předpokládá, že dostane vždy číslo, ale někdo jí předá řetězec, způsobí chybu, kterou bude obtížné najít. Na začátku každé veřejné funkce si ověřte typy a povolené hodnoty. Pokud je vstup neplatný, buď vyhoďte výjimku, nebo vraťte bezpečnou výchozí hodnotu. Podobně si pohlídejte práci s poli a objekty – použití `map`, `filter` a `reduce` je elegantnější než ruční cykly s vedlejšími účinky.
Na závěr si shrňme praktické rady, které vám ušetří nepříjemnosti. Zaprvé: vždy si zkontrolujte oficiální web stadionu den předem, protože provozní doba se může měnit kvůli akcím. Zadruhé: na obě místa vezměte průkaz totožnosti, protože při kontrole vstupenek ho mohou vyžadovat. Zatřetí: foťte, ale bez blesku – v muzeích bývá zakázán a ochranka je nekompromisní. A pokud chcete zažít skutečnou atmosféru, zkuste spojit prohlídku s místním utkáním. Jen pozor, vstupenky na zápasy San Sira se prodávají výhradně držitelům klubových karet, což je častý zdroj zklamání. V Mnichově je to benevolentnější, ale ceny při derby jsou výrazně vyšší. S trochou přípravy se vyhnete stresu a oba chrámy fotbalu si užijete naplno.
Přechod na tuto strategii vyžaduje změnu návyků, ale vyplatí se. S lineární historií snadněji hledáte příčiny chyb, protože můžete použít bisect, a code review je rychlejší, protože vidíte jednotlivé commity v logickém pořadí. Začněte na menším projektu, nastavte si pravidla pro pojmenování větví a commitů, a brzy zjistíte, že merge commity už nepotřebujete.
Pozor na montáž na zeď. Sklápěcí stůl, který se připevňuje na stěnu, musí být ukotven do nosného zdiva, ne do sádrokartonu bez výztuže. Pokud bydlíte v paneláku s příčkami z lehkých materiálů, zvolte raději stůl na nohách nebo s vlastním rámem. Jinak riskujete, že se stůl při běžném používání uvolní a spadne. Stejně důležitá je i nosnost – každý model má udanou maximální zátěž, kterou byste neměli překračovat. Počítejte s tím, že na desce může stát monitor, sklenice nebo těžká kniha.