5 kroků, které tě dostanou k první práci vývojáře

From IT-Core
Jump to navigation Jump to search

Na závěr si osvojte zvyk pravidelné refaktorizace. Čistý kód není stav, ale proces. Když vidíte, že se funkce prodlužuje nebo že se opakuje stejná logika, nečekejte na velký úklid. Upravte to hned, i kdyby to mělo znamenat deset minut navíc. Tento návyk zabrání tomu, aby se kód postupně proměnil v neudržovanou změť. Až příště budete psát další funkci, zeptejte se sami sebe: pochopím to za tři měsíce, když to uvidím bez komentáře? Pokud ne, napište to jinak. Tím se vyhnete většině problémů, které trápí starší projekty.

Než začnete cokoli měnit, potřebujete vědět, kde je problém. Otevřete si vývojářské nástroje prohlížeče a podívejte se na záložku Síť. Sledujte, které soubory se načítají nejdéle a kolik požadavků celkem odchází. Typickou chybou je spoléhat se na rychlost internetu nebo na hosting, přičemž skutečným viníkem bývá pět megabajtů neoptimalizovaných obrázků nebo deset zbytečných skriptů. Stejně důležité je změřit si čas do prvního vykreslení, ne jen celkový čas načtení. Bez měření budete optimalizovat naslepo a výsledek se nedostaví.

Na závěr si osvojte čtení výstupu pytestu. Chybové hlášky obsahují podrobný diff, který ukazuje, co se očekávalo a co bylo ve skutečnosti. Nenechte se zmást neprošlými testy – nejprve opravte chybu v testovacím kódu, pokud je zjevná, jinak analyzujte produkční kód. Testy by měly být rychlé, deterministické a měly by běžet kdykoliv bez ohledu na pořadí. S těmito základy budete schopni psát spolehlivé testy, které vám ušetří hodiny ladění a zvýší důvěru v kód

Nezapomínejte ani na chování při chybách. Čistý kód neznamená jen to, že funguje za ideálních podmínek, ale také že selhává srozumitelně. Vyhněte se prázdným catch blokům, které chybu polknou a nechají aplikaci v nekonzistentním stavu. Místo toho chybu zalogujte s kontextem a buď ji zpracujte, nebo nechte program spadnout, ale vždy s jasnou zprávou. Pomůže to při hledání příčiny v produkci a zabrání to tichému poškození dat, které se projeví až za týden.

Druhým krokem je práce s rychlostí. Jednotkový test by měl běžet v milisekundách, integrační v jednotkách sekund a E2E klidně i desítky sekund. Pokud vám unit testy trvají déle, pravděpodobně testujete příliš mnoho závislostí — použijte mockování nebo testovací dvojníky. U integračních testů dejte přednost testům proti skutečné databázi v paměti před mockováním celého úložiště. U E2E testů zase omezte počet prohlížečů, ve kterých běží, a vyberte jen ty, které reálně používá vaše cílová skupina.

Čistý kód není o tom, aby vypadal hezky pro oko recenzenta. Je to nástroj, který šetří čas při každém dalším zásahu do aplikace. Když se kód čte jako věta, chyby mizí samy. Základním pravidlem je, že každá funkce dělá přesně jednu věc a její název to říká bez nutnosti číst tělo. Místo processData použij formatUserForExport. Místo handleClick použij submitOrder. Tento jednoduchý krok odstraní většinu dohadů při ladění a umožní novému člověku v týmu pochopit záměr za pět minut, ne za pět dní.

Jak poznáte, že je vaše pyramida postavená na písku Prvním krokem je revize stávající sady testů. Spočítejte si poměr mezi jednotkovými a end-to-end testy v projektu. Pokud dominují E2E, začněte je přesouvat na nižší úrovně — ale ne mechanicky. Většina byznys logiky se dá ověřit na úrovni jednotkových testů, zatímco E2E si nechte jen pro hlavní uživatelské cesty, jako je přihlášení nebo dokončení objednávky. Při přesouvání se zaměřte na to, co test opravdu ověřuje: jestli kontrolujete chování jedné třídy, je to unit test; jestli spolupracuje více modulů, je to integrační test.

Při návrhu API často stojíte před volbou mezi REST a GraphQL. Oba přístupy mají svá specifika, ale rozhodování nemusí být složité, pokud víte, na co se zaměřit. Základní rozdíl je v tom, že REST pracuje s více endpointy a pevně definovanými strukturami odpovědí, zatímco GraphQL nabízí jediný endpoint a dotaz, který si klient sám poskládá. To ale neznamená, že je GraphQL vždy lepší – naopak, pro řadu projektů je REST stále jasnou volbou.

Pro lepší přehlednost organizujte testy do složek a používejte soubory conftest.py, kam můžete umístit fixtures sdílené napříč testy. Když pak spustíte pytest z příkazové řádky, můžete použít přepínače jako -k pro filtrování názvů nebo -x pro zastavení při prvním selhání. Nezapomeňte také na parametrizaci – pomocí @pytest.mark.parametrize můžete spustit stejný test s různými vstupy, což výrazně rozšíří pokrytí bez psaní nového kódu

Když přemýšlíš o první práci vývojáře, rychle narazíš na paradox: každý chce zkušenosti, ale nikdo ti nedá šanci je získat. Místo čekání na ideální nabídku se vyplatí jednat tak, aby tvoje dovednosti byly vidět i bez životopisu plného předchozích zaměstnání. Klíčem není jen psát kód, ale přemýšlet o tom, co firmy skutečně řeší – a tím se odlišit od ostatních uchazečů.