Co vás naučíme
Hlavním motivem celého kurzu je skutečnost, že není tak těžké vytvořit funkční kód. Mnohem obtížnějším úkolem je mu dodat správnou strukturu, aby nejen splňoval požadovanou funkcionalitu, ale také vyhovoval podstatě slova „software“ – tedy aby byl formovatelný a snadno se přizpůsoboval novým požadavkům a potřebám.
Během kurzu budeme pracovat na existujícím menším projektu, který sice funguje, ale postrádá potřebnou strukturu pro zásahy, jež budeme v rámci projektu provádět. Při praktických úkolech nad takovým projektem se ukážou překážky, jež často brání postupu vpřed, a jejich důsledkem bývá další degradace struktury. Pod vedením zkušených lektorů se však dozvíte, jakým způsobem myšlení a volby inkrementů vedou k posunu struktury na kvalitativně vyšší úroveň, která již ochotně přijímá požadované změny.
Domácí úkol
Týden před začátkem školení vám zašleme domácí úkol. Vaším úkolem bude code review projektu, s kterým budeme během kurzu dále pracovat
Shrnutí a doplnění review
Na začátku školení se zaměříme na vypracované úkoly. V anonymizované podobě úkoly společně vyhodnotíme. Vaše review okomentujeme tak, abyste byli schopni v budoucnu odhalit více problematických částí kódu.
Zapracování nového požadavku
Do projektu si během kurzu zkusíte naimplementovat novou funkcionalitu, s cílem vyhodnotit váš postup a najít způsoby, jak ho zefektivnit.
Představení SOLID principů
Představíme vám všechny SOLID principy a na konkrétních příkladech z projektu demonstrujeme jejich porušení, včetně důsledků z toho vyplývajících pro udržování takového kódu.
Praktická ukázka refactoringu
Probereme si co je a co není refactoring a na několika příkladech z projektu vám ukážeme, jakými postupy se dá struktura kódu transformovat bez rizika zanesení nových chyb.
Automatizované testy
Aby refactoring mohl fungovat, bude potřeba kód pokrytý testy. Několik míst v projektu nebude tento požadavek splňovat. Vaším úkolem tak bude chybějící testy doplnit. Ukážeme si s jakými komplikacemi se při implementaci automatizovaných testů můžete v praxi nejčastěji setkat.
Zapracování nového požadavku po refactoringu
Zopakujeme si realizaci předchozího úkolu, nicméně s využitím kódu po refactoringu. Abyste na vlastní kůži zažili, jak snadno se tatáž funkčnost může implemnetovat do kódu, strukturovaného v souladu se SOLID principy.
A mnoho dalšího ...
Kromě výše zmíněného si v rámci kurzu také osvěžíte práci s Git a dozvíte se, jak systematicky, bezpečně a efektivně pracovat v libovolně velkém nesprávně strukturovaném projektu. Klademe velký důraz na efektivní využívání pokročilých nástrojů IDE a dáváme přednost klávesnici před myší.