“Pište kód tak, abyste se v něm sami vyznali,” procházíme zásady clean code s Jiřím Ševčíkem | 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
“Pište kód tak, abyste se v něm sami vyznali,” procházíme zásady clean code s Jiřím Ševčíkem

“Pište kód tak, abyste se v něm sami vyznali,” procházíme zásady clean code s Jiřím Ševčíkem

Prozkoumej clean code očima softwarového veterána, který má na svém kontě více než 13 let praxe v programování

Jiří Ševčík je univerzálním programátorem, který upřednostňuje jazyk Python, ale není mu cizí ani C, C++ nebo Java. Ať už jde o vývoj doménově specifických jazyků nebo principy clean code a pattern design, s Jiřím tě v článku provedeme zákoutími softwarového vývoje.

Jiří se k programování dostal až v pozdních letech střední školy, kdy se rozhodl nejen používat různé programy, ale také je modifikovat a vytvářet vlastní. S Pythonem se poprvé setkal na vysoké škole, a od té doby ho provází celým jeho profesním životem.

Během své kariéry pracoval na řadě projektů v různých mezifiremních a mezinárodních prostředích. Příležitost se podílet na tak rozmanité škále projektů mu umožnila setkat se s řadou metodik vývoje, včetně Scrumu a dalších Agile přístupů. Jiří se naučil, jak důležité je držet se principů clean code a design patterns už od raných fází vývoje. Jeho zkušenosti s programováním v různých jazycích, jako jsou Python, C, C++ a Java, mu ukázaly, že principy clean code a design patterns jsou univerzální a jejich dodržování závisí na schopnostech a disciplíně každého programátora.

Clean code a design patterns

Clean code

Složitá tapiserie programovacích jazyků, nástrojů a technik nabízí bohatou paletu pro malování robustních a efektivních softwarových řešení. Uprostřed tohoto nepřeberného množství možností je však klíčem jeden prvek - kvalita kódu. Vstup do "clean code", konceptu, jehož zastáncem je Robert C. Martin, známý jako strýček Bob. Tento přístup zdůrazňuje důležitost tvorby kódu, který je nejen efektivní a dobře strukturovaný, ale také snadno čitelný, srozumitelný a udržovatelný. Clean code je jako dobře napsaná próza, která bez námahy sděluje čtenáři svůj účel. Nejde jen o funkčnost, ale o vytvoření udržitelného a spolupracujícího ekosystému, kde lze kód snadno interpretovat, ladit a rozvíjet ostatními vývojáři.

Design patterns

Zásady clean code doplňují "design patterns", opakovaně použitelná a přizpůsobitelná řešení běžných problémů při vývoji softwaru. Tyto vzory slouží jako repertoár osvědčených postupů a poskytují univerzálně srozumitelný jazyk mezi programátory. Jsou rozděleny do tří základních typů - strukturální, behaviorální a kreativní vzory. Strukturální vzory se zaměřují na kompozici tříd a objektů, behaviorální vzory se zabývají komunikací mezi objekty, zatímco kreativní vzory se soustředí na instanciaci objektů. Tato předdefinovaná paradigmata nabízejí řešení, která jsou škálovatelná, udržovatelná a přizpůsobitelná různým kontextům a fungují jako návod pro vývojáře, jak psát kód, který je odolný vůči budoucím změnám. Pevná znalost návrhových vzorů vybavuje vývojáře schopností předvídat problémy, optimalizovat strukturu kódu a v podstatě vytvářet software, který je ztělesněním elegance a efektivity.

Clean code a design patterns očima experta

Jiří Ševčík se včetně software developmentu věnuje také školení a mentorování kolegů, takže kdo by byl lepším průvodcem světem clean code a design patterns než Jiří Ševčík, vývojář s hlubokým porozuměním programování a touhou sdílet své znalosti a zkušenosti? Pojďme se tedy ponořit do světa clean code a design patterns s expertem:

Jak jste se poprvé setkal s programováním a jaké byly vaše první zkušenosti?

K programování jsem se dostal v pozdější fázi střední školy. Měl jsem zájem zjistit nejenom jak používat různé programy, ale jak je případně modifikovat a vytvořit vlastní. Z toho vyplynul i výběr vysoké školy - informační technologie.

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

Princip je jasný - pište kód slušně a tak, abyste se v něm (nejen) sami za měsíc vyznali. Ušetříte si tím v budoucnu spoustu času při jakékoliv změně nebo opravě chyb.

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

Nemyslím si, že lze vyloženě říct, že je nějaký vzor důležitější než ostatní. Jde spíš o to vědět, na jaký problém jaký vzor aplikovat. To bych viděl jako nejdůležitější aspekt.

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

Nejčastější problém vidím v použití vzorů na nesprávných místech a tedy nepochopení jejich používání. Druhým, ne tak častým problémem, je jejich “nadužívaní”, což se dá popsat jako stav známý jako overengineering. Návrhové vzory jsou pořád jenom vzory a nemělo by se k nim přistupovat dogmaticky.

Mohl byste nám říci více o tom, jak se liší vaše zkušenosti s programováním v jazycích jako Python, C, C++ a Java, zejména pokud jde o principy clean code?

Výhoda clean code a design patterns tkví v tom, že poskytují obecné řešení ale ne již konkrétní a neměnitelnou implementaci. Proto jsou tedy použitelné ve všech oblastech a jazycích. Díky tomu se jejich použití či dodržování odvíjí vlastně jen od syntaxe konkrétního jazyka. U dynamicky typovaných jazyků je to trochu specifičtější, jelikož programátor může dělat různé “hacky”, které hodně zásad clean code porušují ale to se celé odvíjí od schopností a určité kázni každého člověka.

Jaké považujete za nejběžnější problematické aspekty ("code smells") v Pythonu a jak se s nimi vyrovnat? 

Určitě špatná struktura kódu a nedefinování a nebo ignorace code standards. V současné době vývojové editory mají integrované spousty nástrojů pro kontrolu kódu a není sebemenší důvod je ignorovat. Ze začátku je možná trochu obtížnější se do nich dostat, ale v průběhu času se člověk naučí dodržovat standardy a bude kód psát lepším způsobem již automaticky.

Jaké by byly vaše doporučení pro začínající vývojáře, kteří chtějí zlepšit své dovednosti v psaní clean code a využívání design patterns?

Zajímejte se o kód ostatních, používejte dostupné nástroje, programujte co nejvíc a hlavně - buďte kritičtí ke svému kódu.

Můžete popsat váš největší projekt a jaké lekce o clean code a designových vzorech jste z něj získal?

Těch opravdu velkých projektů bylo za moji kariéru větší množství s různou úrovní kódu. Zmínil bych hlavně jeden projekt, ke kterému jsem se připojil až po jeho začátku. Úroveň jak architektury, tak celého kódu byla na velmi nízké úrovni a v průběhu vývoje se došlo k tomu, že bude nejjednodušší a také nejlevnější začít kompletně znovu. Na tomto příkladu je vidět, že by základní elementy vývoje SW neměly být podceňovány již v raných fázích vývoje kdy se třeba specifikuje architektura. Člověk by se měl dívat do budoucna a zvážit všechny možnosti. Nicméně je stále třeba brát v potaz již zmiňovaný overengineering a spíše se držet KISS principu - Keep It Simple Stupid.

Jak vidíte budoucnost oboru clean code and design patterns?

Současné technologie pro vývoj SW umožnují velké množství dřívě nemyslitelných věcí. Na jednu stranu usnadňují hodně práce na vývoji, na druhou stranu například bezhlavé automatické generování kódu přes AI může způsobit velké problémy. Myslím si, že developer my měl být k těmto nástrojům do určité míry kritický a měl byl se je naučit efektivně používat. Výhody jejich používání jsou obrovské, nicméně je stále nutné myslet na tu druhou stranu věci. Aneb jak se říká “Play stupid games, win stupid prizes.”

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 vás.

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ůžete 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 vede 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 vás!

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?