Retrospektiva, která nic nevyřeší? Tady je důvod a cesta ven

<span style="font-weight: 900;">Když už máte první</span> obrazovku, začněte s životním cyklem aktivity. Mnoho začátečníků dává veškerou logiku do metody onCreate, což je chyba, protože při otočení zařízení se aktivita znovu vytvoří a vy ztratíte stav. Naučte se používat ViewModel a LiveData, i když to ze začátku vypadá složitě. Bez toho narazíte na situace, kdy aplikace při změně orientace ztratí načtená data a uživatel musí všechno dělat znovu. Často se to stává při načítání ze sítě – zobrazíte loading, pak otočíte telefon a místo dat vidíte prázdnou obrazovku.<br> <br> <br> <br> Při samotné retrospektivě pak dejte prostor každému členovi týmu, a to rovnoměrně. Tichý kolega, který mlčí, protože ho přerušil extrovert, má často nejcennější postřehy. Vyhraďte proto pevný časový limit, třeba pět minut na osobu, a během něj nikdo neskáče do řeči. Pokud se objeví ostrá kritika, nechte ji zaznít a hned se zeptejte: „Co by podle tebe pomohlo?" Tím se vyhnete tomu, aby se schůzka proměnila v diskuzi o pocitech bez konkrétního výstupu.<br> <br> <br> <br> Dalším častým úskalím je, že se tým snaží vyřešit deset problémů najednou. Pak se každému věnuje deset minut, nic se nedotáhne a na konci nikdo neví, kdo za co zodpovídá. Vyberte si maximálně tři hlavní témata, která mají největší dopad na týmovou spolupráci, a pro každé z nich určete jednoho vlastníka. Vlastník nemusí problém vyřešit sám, ale je zodpovědný za to, že navrhne první krok a dohodne termín kontroly. Bez tohoto kroku je retrospektiva jen povídáním.<br> <br> <br> <br> Dalším problémem je nadměrné používání globálních proměnných. I když JavaScript umožňuje cokoliv přiřadit na window, taková proměnná se snadno přepíše a těžko se hledá. Místo toho zapouzdřete logiku do modulů nebo tříd a globální stav omezte na minimum. Když už musíte sdílet data, použijte explicitní předávání parametrů nebo nějaký stavový kontejner. Tím se snižuje riziko, že vám nějaká část kódu změní hodnotu, kterou potřebujete jinde.<br> <br> <br> <br> Ošemetné vedlejší efekty a skryté mutace Častým zdrojem chyb je neúmyslná změna dat. Pokud funkce přijímá objekt, ale mění jeho vlastnosti, vzniká vedlejší efekt, který může ovlivnit jinou část programu. Tomu se vyhnete tím, že budete používat neměnitelné struktury – místo mutace pole vytvořte nové pomocí spread operátoru nebo metod jako map a filter. Zvlášť u stavů aplikace (např. Redux) je neměnnost klíčová. Také si dejte pozor na to, aby funkce nevracely různé typy podle okolností; konzistentní vstup a výstup je základem čitelného rozhraní.<br> <br> <br> <br> Co se vyplatí vědět o CSS selektorech a kaskádě V CSS selektor určuje, na který prvek se styl aplikuje. Základní selektory jsou podle značky (p), podle třídy (.třída) a podle ID (#id). Třídy používejte opakovaně, ID pouze pro jedinečné prvky. Důležitý je princip kaskády – pokud dva pravidla konfliktují, vyhrává to s vyšší specificitou a pořadím. Častá chyba je spoléhat na !important, který ale ztěžuje ladění. Místo toho se snažte psát pravidla s rozumnou mírou specificity.<br> <br> <br> <br> Jak se vyhnout problémům s datovými typy a dotazy Nezapomeňte na rozdíly v práci s textem. PostgreSQL rozlišuje typy CHAR, VARCHAR a TEXT, ale v praxi se chovají podobně. Hlavní rozdíl je v porovnávání řetězců: PostgreSQL používá collation podle locale, které může být case-sensitive. Pokud vaše aplikace spoléhá na case-insensitive porovnávání, musíte použít ILIKE nebo upravit dotazy. Také funkce jako GROUP BY jsou v PostgreSQL přísnější: každý sloupec v SELECT musí být buď agregovaný, nebo uvedený v GROUP BY. MySQL toto v některých režimech povoluje, takže po migraci můžete dostat chyby.<br> <br> <br> <br> Typickou chybou je ignorování validace kódu. Neuzavřené značky nebo chybné párové tagy vedou k nepředvídatelnému chování. Před publikací si stránku prohlédněte v různých prohlížečích – co funguje v Chrome, nemusí fungovat ve Firefoxu. Doporučuji průběžně kontrolovat konzoli prohlížeče (klávesa F12), kde se zobrazují chyby. Také si zvykněte na oddělení stylů do samostatného souboru CSS – zjednoduší to údržbu a zrychlí načítání.<br> <br> <br> <br> Migrace databáze mezi dvěma odlišnými systémy není kopírování dat. MySQL a PostgreSQL se liší v typech, chování i syntaxi. Pokud přistoupíte k převodu jako k prostému exportu a importu, narazíte na problémy, které se projeví až v produkci. Nejčastější chybou bývá podcenění rozdílů v datových typech a v práci s transakcemi.<br> <br> <br> <br> Psát čistý kód není o psaní méně řádků, ale o tom, aby se v něm druhý programátor (nebo vy za půl roku) dokázal rychle zorientovat. Základním pravidlem je, že kód by měl být čitelný bez dlouhého přemýšlení. To znamená dát přednost explicitnímu pojmenování proměnných a funkcí před zkratkami, které šetří pár znaků, ale komplikují pochopení. Typickým příkladem je použití názvů jako data, temp nebo x tam, kde by stačilo userList nebo formattedDate. Čitelnost se vždycky vyplatí víc než kratší zápis.