Jak správně používat clean code a design patterns? Ptáme se experta Václava Ryšky | robot_dreams Czech
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Jak správně používat clean code a design patterns? Ptáme se experta Václava Ryšky

Jak správně používat clean code a design patterns? Ptáme se experta Václava Ryšky

Přečti si doporučení pro vývojáře od experta na clean code a design patterns

Václav Ryška má zkušenosti z mnoha oblastí softwarového vývoje, ať už se jedná o vývoj systému pro prodej vstupenek do londýnských divadel, nebo o vývoj účetního systému pro největší .NET konferenci v ČR, kterou spolupořádal. V současnosti již od roku 2021 působí jako Engineering Manager a teamleader ve společnosti Mews.

Svou cestu k programování začal na střední škole, kde se jeho vlohy k matematice setkaly s technologickými možnostmi doby. Na vysoké škole si zvolil výpočetní matematiku a prohloubil svůj zájem o oborové znalosti. Po dokončení doktorského studia však zjistil, že jeho cesta vede mimo akademické prostředí do komerční sféry. Svoji kariéru zahájil v oblasti vývoje softwaru pro jaderné elektrárny. Nyní pomáhá pomáhá juniorním vývojářům s kvalitou jejich řešení.

Clean code a design patterns

Clean code a design patterns představují dva klíčové koncepty v oblasti softwarového vývoje. Podle Roberta C. Martina, jde o přístup, který zdůrazňuje vytváření kódu, který je nejen efektivní a dobře strukturovaný, ale také snadno čitelný, srozumitelný a udržovatelný. Je to jako dobře napsaná próza, která bez námahy sděluje svůj účel a umožňuje snadnou interpretaci, ladění a rozvoj ostatními vývojáři. 

K tomu se přidávají design patterns, neboli návrhové vzory - opakovaně použitelná a přizpůsobitelná řešení běžných problémů v softwarovém vývoji. Jsou to osvědčené postupy, které poskytují univerzálně srozumitelný jazyk mezi programátory, rozdělené do tří základních typů - strukturální, behaviorální a kreativní. Tyto vzory nabízejí škálovatelná, udržovatelná a přizpůsobitelná řešení, která fungují jako návod pro vývojáře, jak psát kód odolný vůči budoucím změnám. Znalost návrhových vzorů umožňuje vývojářům předvídat problémy, optimalizovat strukturu kódu a vytvářet software, který je ztělesněním elegance a efektivity.

Václav Ryška tě provede svým oborem

Porozumění principům clean code a návrhových vzorů hraje klíčovou roli ve Václavově přístupu k softwarovému vývoji. Důraz klade především na srozumitelnost kódu, jmenovitě na vhodné pojmenování jeho částí - proměnné, metody a třídy, které považuje za základní pilíře kvalitního kódu. Co se týče návrhových vzorů, preferuje promyšlený výběr vzorů vhodných pro řešení konkrétních problémů, místo rigidního dodržování konkrétních vzorů. Václav se však zdržuje používání návrhových vzorů bez hlubokého porozumění jejich účelu a zdůrazňuje, že implementace clean code a návrhových vzorů vyžaduje nejen znalost těchto principů, ale také schopnost přizpůsobit je konkrétnímu kontextu problému.

Na téma clean code a design patterns jsme s Václavem Ryškou udělali rozhovor. Přečti si, jeho doporučení pro vývojáře, zásady používání clean code a design patterns, nebo jeho vlastní pohled do budoucnosti oboru.

Jaké byly vaše první setkání s programováním a jaká byla cesta, kterou jste si vybral k softwarovému vývoji?

Poprvé jsem se s programováním setkal na střední škole a od té doby jsem se kolem programování v různých podobách pohyboval. Vždy mě ve škole bavila matematika, takže jsem se rozhodl pro její studium i na vysoké škole. Po škole jsem chtěl pokračovat ve vědecké kariéře, ale do akademického prostředí jsem se moc nehodil, takže jsem se přesunul do komerčního prostředí, kde fungují v různých firmách a rolích dodnes.

Můžete popsat hlavní rozdíly mezi akademickým a komerčním prostředím ve vývoji softwaru z vaší perspektivy?

Z mé zkušenosti je v komerčním prostředí mnohem větší tlak, co se týče rychlosti dodání i kvality výsledného řešení. Komerční zákazníci chtějí za své peníze vidět výsledky. Toto je většinou vykoupeno vyšší finanční odměnou. Nicméně od bývalých kolegů vím, že i v akademickém prostředí může člověk narazit na zajímavé projekty, takže nechci generalizovat.

Jaký je základní princip clean code a proč je důležitý při vývoji softwaru?

Obávám se, že nelze vypíchnout jediný princip. Ale osobně kladu velký důraz na srozumitelné pojmenování jednotlivých částí kódu jako jsou proměnné, metody, třídy apod.

Které design patterns jsou podle vás nejdůležitější a proč?

Opět bych nerad generalizoval. Záleží, jaký problém člověk řeší. Rád bych studenty hlavně naučil, aby vzory používali uváženě tam, kde dávají smysl. A aby přemýšleli hlavně o problému, který řeší. Sám nerad používám nástroje jen proto, abych je použil. Ale pokud mám alespoň trochu konkrétně odpovědět na otázku, tak osobně jsem v minulosti často používal např. Dependency Injection, Factory, Observer.

Jaké jsou nejčastější chyby, které vývojáři dělají při implementaci clean code a návrhových vzorů? Jak se jim vyhnout?

Už jsem se toho tématu dotkl v minulé otázce. U návrhových vzorů je to často jejich zbytečné nadužívání. Nedává smysl používat vzory pro vzory, takže vždy, když máte tendenci návrhový vzor použít, zamyslete se:

1. Co vám to přinese?

2. Jaký problém tím chcete řešit?

3. A jaký problém je ten hlavní problém, který řešíte?

Programátoři se rádi “ztratí” v kódu a snaží se ho vylepšovat do nejmenších detailů a často jim uniká podstata problému, který řeší. V horším případě ten problém ani neznají, protože jim ho nikdo pořádně nevysvětlil.

Jakým způsobem vedete svůj tým a jak podporujete clean code mezi svými kolegy?

Nastavením kontroly code conventions ve vývojovém prostředí, code Reviews od zkušenějších kolegů a srozumitelnými doporučeními ohledně code conventions uvnitř týmu/firmy.

Dále se snažíme ve firmě podporovat diskuze na toto téma a sdílet knowledge v podobě článků, knih, videí a kurzů. Podporujeme vývojáře v navštěvování konferencí, meetupů apod.

Jaké doporučení byste předal začínajícím vývojářům, kteří si přejí zlepšit své dovednosti v psaní clean code a používání design patterns?

1. Mějte otevřenou mysl. Najděte si dobrou firmu, nebo schopné lidi okolo, kteří chtějí sdílet své vědomosti.

2. Pokud máte čas, pište vlastní hobby projekty, kdy si můžete nové koncepty zkoušet  a mějte je veřejně na vlastním GitHubu, nebo jiném podobném úložišti.

3. Není jediné správné řešení pro daný problém.

4. Není ani jedno univerzální řešení na všechny problémy.

Mohli byste nám poskytnout více informací o vaší práci na systému pro prodej vstupenek do londýnských divadel nebo na účetním systému pro největší .NET konferenci v ČR? Jaké lekce o clean code a design patterns jste z těchto zkušeností získal?

Během mého působení jsme v týmu zmodernizovali architekturu aplikace i použité technologie. Toto samo o sobě nám dalo možnost zrychlit vývoj dalších funkcionalit v budoucnu. Do té doby jsem byl převážně technicky orientovaný vývojář, který tolik nerozuměl businessové stránce věci, jelikož jsem s ní nebyl nikdy pořádně konfrontován. Největší poučení pro mě bylo v tom, že tyto změny se vždy musí dělat s ohledem na celkový business. Technická stránka není jediná zastoupena v rozhodování a často bývá opomíjena. Zároveň je důležité být pragmatický a nepoužívat návrhové vzory bezhlavě.

Jak vidíte budoucnost clean code and design patterns?

Tyto principy už tu jsou s námi nějakou dobu a jelikož to jsou především obecná doporučení, ještě s námi nějakou dobu vydrží podobně jako objektově orientované programování (OOP). Nicméně design patterns podobně jako samotné OOP jsou koncepty především filozofické a někteří lidé jej vůbec neuznávají, což je v pořádku. OOP je momentálně dominantní paradigma ve světě vývoje SW, ale nebude tu navždy. Již v současnosti získává na popularitě např. Funkcionální programování, které v Mews využíváme ve velké míře. Abych to shrnul, clean code má a bude mít své místo v každém zdrojovém kódu, akorát jednotlivé koncepty se mohou vyvíjet a upravovat. O Design Patterns je určitě dobré mít povědomí a rozumět, k čemu jsou dobré.  Jsou stále často používané, ale jak jsem řekl výše, nebudou tu navždy.

Kurz “Clean Code a design patterns”

Trápí tě kód, který se zdá být nesystematický a nestrukturovaný, a cítíš se nespokojeně s kvalitou své práce? Nebo třeba jen hledáš nové možnosti, jak se rozvíjet ve svém oboru? Náš nový kurz Clean Code a design patterns” je přesně pro tebe.

Kurz je určený především pro juniorní SW developery a pro mediory, kteří se chtějí zlepšovat v psaní kódu. Náš program se zaměřuje na konkrétní problémy vývojářského procesu, které můžeš konzultovat přímo s našimi lektory.

Absolventi kurzu se naučí, jak správně refaktorovat kód, zvýšit jeho čitelnost a odhalovat chyby. Důraz je kladen na prevenci problémů, ne jen na jejich řešení. Seznámíš se také s nástroji pro automatickou kontrolu kvality kódu a naučíš se, jak zavést best practices do své denní rutiny.

Kromě psaní kódu se kurz zaměřuje na oblast architektury SW a na rozvoj soft skills, které jsou pro vývojáře SW neméně důležité. Zprostředkuje základní přehled nejčastějších pojmů a technik ve vývoji SW a také představí další možné pozice ve vývoji softwaru a vhodné skilly pro tyto pozice.

Kurz vedou Jiří Ševčík, softwarový vývojář a Václav Ryška, engineering manager dohromady s více než 23 lety praxe v oboru SW vývoje.

Pokud se cítíš připraven posunout své schopnosti na další úroveň a stát se profíkem, přidej se k nám na našem novém kurzu Clean code a design patterns. Těšíme se na tebe!

Autor: Jan Bílek

Více článků
A proč je užitečná pro každého, kdo pracuje s computer vision
Kde můžeš začít navazovat vztahy s lidmi se zájmem o IT?