Jak zorganizovat verzování kódu při více knihovnách
DevOps není nástroj ani konkrétní technologie, ale způsob myšlení a spolupráce. Nejde o to, abyste se naučili pár příkazů, ale o to, abyste propojili vývoj, provoz a testování do jednoho plynulého toku. Jestli s DevOps začínáte, zapomeňte na velké projekty a začněte u malého týmu a jednoho konkrétního problému. Typická chyba je skočit rovnou na automatizaci všeho, aniž byste rozuměli, co vlastně má běžet a kdo za co odpovídá.
Prvním krokem je pochopení rozdílu mezi UI a UX. UI (User Interface) se týká vizuální stránky – barvy, typografie, mezery, ikony. UX (User Experience) pak zahrnuje celkový pocit z používání produktu, logiku toku obrazovkami a srozumitelnost interakcí. Jako vývojář byste měli vnímat obojí. Například místo abyste jen naprogramovali tlačítko, přemýšlejte, zda je jeho umístění očekávatelné a zda je jeho velikost dostatečná pro kliknutí prstem na mobilu. Tím předcházíte frustraci uživatelů a zbytečným bug reportům.
Když jako vývojář dostanete návrh od designéra, často vypadá dokonale. Problém však nastává ve chvíli, kdy máte z Pixel Perfect předlohy vytvořit funkční rozhraní. Základní pochopení UI a UX principů vám umožní nejen lépe komunikovat s designéry, ale také odhalit chyby, které by uživatele stály čas nebo peníze. Tento článek se zaměřuje na praktické dovednosti, které využijete při každodenní práci na frontendu.
Scrum není o tom, že budete dělat víc věcí za kratší dobu. Je o tom, že budete dělat ty správné věci a budete mít zpětnou vazbu dřív. Pro české týmy je klíčové, aby si ujasnily role, definici hotového a hlavně aby se nebály říct managementu, že něco nestihnou. Začněte malým pilotním projektem, ne celou organizací. Až uvidíte první výsledky, rozšiřte působnost. Jinak skončíte s byrokratickým monstrem, které nemá s agilitou nic společného.
Na závěr si shrňte, že správné verzování není o počtu verzí, ale o jasných pravidlech a automatech. Nastavte si jednoduchý workflow, který každý člen týmu pochopí: změna v knihovně vede k zvýšení verze, aktualizaci manifestu a záznamu do changelogu. Vše kontrolujte v CI. Tím se vyhnete nejistotě, která verze je aktuální, a projekt zůstane stabilní i při mnoha knihovnách. Vyhněte se improvisaci a spoléhání na paměť – jediným zdrojem pravdy je verzovací soubor, který musí být vždy aktuální.
Nakonec si zvykněte na limitování výsledků. Pokud potřebujete jen prvních sto řádků, použijte LIMIT. Databáze pak může ukončit zpracování dřív, než projde celou tabulku. Stejně tak se vyhněte přenosu obrovských datasetů do aplikace – zpracujte agregace na straně databáze. Pravidelně čistěte staré záznamy, ale pokud to není nutné, nearchivujte do stejné tabulky. Udržování tabulek v dobré kondici – bez fragmentace – také pomůže.
Začněte s jedním malým automatizačním krokem Jakmile máte jasný obrázek o procesu, vyberte si jednu jednoduchou věc, kterou automatizujete. Ideální je sestavení aplikace nebo spouštění testů. Můžete použít nástroj pro CI/CD, ale nezačínejte s plnou konfigurací pipeline až do produkce. Stačí, když se commit do repozitáře spustí sestavení a spadnou rychlé testy. Uvidíte, kolik času to ušetří a kde jsou slabiny. Jakmile to funguje, přidejte nasazení do testovacího prostředí. Pozor na to, abyste automatizaci nehnali do extrému – pokud je prostředí nespolehlivé, každý chybný automatický krok jen přidá chaos.
Když se řekne automatizace, mnoho lidí si představí složité skripty a hodiny strávené programováním. Opak je pravdou – Python je ideální jazyk pro začátečníky, kteří chtějí zautomatizovat opakující se činnosti, ať už jde o přejmenování souborů, zpracování tabulek nebo stahování dat z webu. Základem je pochopit, že automatizace nemusí být dokonalá – stačí, aby ušetřila čas a eliminovala chyby z nepozornosti.
Prvním krokem je kontrola indexů. Pokud často filtrujete podle sloupce, který není indexovaný, databáze musí projít celou tabulku. To je pomalé zejména u velkých tabulek. Vytvořte index na sloupcích, které se objevují v podmínkách WHERE, JOIN a ORDER BY. Pozor ale na přehnané indexování – každý index zpomaluje zápis a zabírá místo. Ideální je indexovat jen to, co skutečně potřebujete.
Dalším častým problémem je, že vývojáři zapomínají na tzv. „verzovací politiku" pro celý projekt. Místo toho, aby každá knihovna měla vlastní číslo, začnou používat společné číslo pro všechny. To je špatně, protože pak nelze sledovat, která část projektu se reálně změnila. Doporučuji zavést hierarchii: hlavní projekt má vlastní verzi, ale ta se odvozuje od verzí jednotlivých knihoven. Při každém vydání hlavního projektu zapište do manifestu přesné verze všech knihoven. Tím získáte reprodukovatelnost – kdykoli se můžete vrátit k přesnému stavu kódu, který byl nasazen. Tento postup vyžaduje disciplínu, ale ušetří hodiny hledání chyb v produkci.