Rychlejší refaktorování kódu pomocí vestavěných nástrojů IDE
Nakonec se zaměřte na pojmenování testů. Název by měl popisovat očekávané chování, ne název funkce. Místo testAdd() pište testAddReturnsSumOfTwoNumbers nebo testAddThrowsWhenInputIsNegative. Když test selže, hned z názvu víte, co se rozbilo. Pokud máte problém vymyslet název, pravděpodobně nerozumíte tomu, co funkce dělá. V takovém případě se vraťte o krok zpět a nejprve si ujasněte chování. První test nemusí být dokonalý, ale musí být poctivý. Jakmile jednou projdete celým procesem, další testy půjdou rychleji.
Další pastí je spoléhání na pořadí testů. Testy by měly být na sobě nezávislé. Pokud jeden test mění globální stav a druhý na něj navazuje, při změně pořadí testy selžou. Udržujte testy izolované. Pište je tak, aby každý běžel samostatně a vždy začínal z čistého stavu. Pokud testujete práci s daty, vytvořte data přímo v testu, nepoužívejte sdílené proměnné.
Většina začínajících vývojářů řeší stejný paradox: firmy chtějí zkušenosti, ale odkud je vzít, když vás nikdo nechce zaměstnat? Řešení neleží v neustálém posílání životopisů, ale v cíleném budování dovedností, které jsou na trhu žádané. Než začnete rozesílat přihlášky, zjistěte si, jaké technologie se ve vašem regionu skutečně používají. Projděte si inzeráty na pozice juniorů a všimněte si, které jazyky a frameworky se opakují. Tento průzkum vám ušetří měsíce učení něčeho, co nikdo nehledá.
Než napíšete první unit test, zapomeňte na představu, že testy jsou něco navíc. Jsou to spustitelné dokumentace vašeho kódu. Začněte u malé, izolované funkce, která nemá vedlejší účinky. Ideální je čistá funkce, která přijímá vstup a vrací výstup. Vyhněte se psaní testů pro třídy s databází, souborovým systémem nebo síťovými voláními. To je integrační testování a na to budete potřebovat jiné nástroje.
Nezapomínejte ani na bezpečnostní nástroje, jako je Find Usages nebo Go to Declaration. Tyto funkce vám pomohou rychle zjistit, kde všude se daný kód používá, a to dříve, než začnete s úpravami. Často se stává, že při ručním refaktorování přehlédnete některé volání – vestavěné nástroje vám ukáží kompletní seznam a vy se vyhnete nepříjemným překvapením. Pokud si nejste jisti, použijte před větším zásahem verzování a porovnejte rozdíly.
Třetí problém nastává, když test závisí na pořadí provedení nebo na sdíleném stavu. Unit testy musí být izolované a spustitelné v libovolném pořadí. Pokud váš test potřebuje databázi, soubor nebo síť, není to unit test, ale integrační test. Pro začátek se těmto závislostem vyhněte úplně. Pokud testovaná funkce používá čas, náhodu nebo externí službu, naučte se tyto závislosti předávat jako parametry. Tím získáte kontrolu nad vstupem a test bude deterministický.
Při práci s více soubory oceníte funkci Move, která přesune třídu nebo funkci do jiného souboru a zároveň aktualizuje všechny importy. Tato operace je užitečná zejména při organizování projektů do modulů. Pozor si dejte na cyklické závislosti – přesun může někdy vytvořit nechtěné propojení mezi balíčky. Před potvrzením akce si proto prohlédněte náhled změn, který IDE nabízí.
Další pastí je zapomínání na okolní prostředí – skript, který běží na Windows, může selhat na Linuxu kvůli odlišným oddělovačům cest. Používejte funkce z `pathlib.Path`, které jsou multiplatformní, a testujte skript na více zařízeních, pokud to je možné. Důležité je také verzování – i jednoduchý skript uložte do Gitu, abyste se mohli vrátit k předchozí funkční verzi, když něco rozbijete. Tento návyk se vám vyplatí u všech projektů.
Přispívání do open source projektů může být skvělý způsob, jak se učit, budovat si portfolio a spolupracovat s lidmi z celého světa. Ale zejména na začátku je snadné udělat zbytečné chyby, které vás stojí čas i motivaci. Než začnete psát první kód, věnujte čas tomu, abyste projekt pochopili a našli si svou cestu.
Psaní prvního unit testu vypadá jako jednoduchý úkol, ale často skončí u frustrace a testů, které nic netestují. Nejde o to napsat co nejvíce kódu, ale pochopit, co chcete ověřit. Začněte u nejmenší funkce, která něco vrací a nemá vedlejší efekty. Ideální je čistá funkce, která ze stejného vstupu vždy vrátí stejný výstup. Než začnete psát test, položte si otázku: Co přesně má tato funkce dělat a co by se stalo, kdyby to nedělala?
Při hledání první práce se vyhněte dvěma častým chybám. První je ignorování malých firem a startupů – ty bývají otevřenější juniorům než velké korporace, které mají často formální požadavky na roky praxe. Druhou chybou je posílání hromadných přihlášek bez úpravy. V každé přihlášce zmíňte, proč vás zajímá právě tato společnost a jaké konkrétní problémy jejich produktu byste chtěli řešit. I jedna věta navíc může znamenat rozdíl mezi pozváním k pohovoru a tichem.