Menu

Programátor Jakub Štefan: „Dobrý kód jde číst jako kniha”

Kvalita kódu je často diskutovaným tématem mezi programátory i klienty. Jak poznáte, zda váš programátor odvádí dobrou práci? S vývojářem Modrého ducha Jakubem Štefanem jsme si povídali, jaké vlastnosti má správný a špatný kód, a jak by mělo vypadat vhodné zadání.

Programátor Jakub Štefan: „Dobrý kód jde číst jako kniha”

Programátor je dnes už dost obecné označení. Jaká je tvoje specializace a hlavní oblast působení?

U Modrého ducha se podílím na vývoji e-shopů a webových aplikací. V rámci našeho týmu bych se zařadil do skupiny, kterou baví moderní technologie a postupy. Snažím se, kdykoliv je to možné, prosazovat použití moderních nástrojů a trendů, ať už jde o backend (serverovou část), nebo o frontend (prezentační část) aplikace.

Neustále diskutovaným tématem mezi vývojáři je kvalita kódu. Jak se pozná dobrý a špatný kód?

Prvním aspektem kvalitního kódu je doba, za jakou dokáže programátor pochopit logiku aplikace, kterou nikdy předtím neviděl. Dobrý kód má svou hierarchii. S trochou nadsázky by měl jít číst jako kniha. Obsahuje příběhy (posloupnosti akcí), jejichž děj vede čtenáře k závěru (požadovaná funkcionalita). Důležité jsou samozřejmě věcné komentáře a správné názvy proměnných a metod, které zvyšují onu čitelnost. Rád lidem říkám, že programátor je určitý druh umělce, tvůrce, který píše příběhy ve svém oblíbeném jazyce.

Druhým aspektem je rozšiřitelnost a odolnost vůči drobným změnám. Dobrý kód požadavky na rozšíření a editaci daleko lépe tráví než ten špatný. Ve špatné struktuře může i drobná úprava znamenat kaskádu dalších změn, které musí programátor provést a každá maličkost může vést k bugům (softwarovým chybám). Samozřejmě to dost zobecňuji, ale v principu to rozhodně platí.

Má laik vůbec nějakou šanci rozpoznat špatný kód? Je něco, co může klienty varovat, že programátor neodvádí dobrou práci?

Laik dokáže práci programátora hodnotit jen obtížně. Navenek může aplikace působit úplně stejně, když je napsaná dobře, i když je napsaná zle. I špatný kód může plnit požadované funkce. A do zdroje se asi laik dívat nebude. Z dlouhodobého hlediska možná lze odhadnout kvalitu podle toho, jak snadno se aplikace rozvíjí a jak v ní lze dělají změny. Nejlepším způsobem je samozřejmě posadit k výsledku zkušeného programátora, který provede revizi (tzv. code review) a klientovi poskytne nějaký výstup.

Podívejme se na problematiku i z druhého pohledu. Častým tématem stížností ze strany programátorů je nedostatečná kvalita zadání. Jak intenzivně vnímáš tento problém ve své praxi?

Ano, to je určitě problém. Pokud dostaneme kvalitní zadání, které jasně definuje požadované úpravy či změny, práce jde rychle od ruky, protože se můžeme soustředit pouze na implementaci.

Častým problém v zadání jsou tzv. mezní situace, tedy stavy, do kterých se aplikace může dostat pouze za určitých podmínek nebo s malou pravděpodobností. Např. zobrazení stránky košíku v e-shopu, pokud v něm nejsou žádné produkty. Některé mezní situace dokáže programátor vyřešit sám podle svých zkušeností a intuice. V ostatních případech je potřeba konzultace s projektovým manažerem nebo i s klientem, která podobný problém objasní. Nabízí se však otázka, zda se nestráví více času při konzultacích, než by bylo potřeba pro přípravu kvalitního zadání.

V čem podle tebe spočívají výhody a nevýhody spolupráce s UX designerem, který se podílí na tvorbě zadání a informační architektury pro web?

Výhodou je samozřejmě to, že je to expert ve svém oboru. I když sám o UX něco vím, nedokážu to samé co dobrý UX designer. Z nevýhod bych uvedl fakt, že si UX designeři nebo grafici často neuvědomují, kolik práce i drobná změna může ve finále pro programátora znamenat. Pokud má UX designer i nějakou zkušenost s programováním, tak je to podle mě úplně nejlepší.

V Modrém duchovi patříš k služebně nejstarším a nejzkušenějším programátorům. Jaké byly tvé vývojářské začátky? S čím jsi se nejvíce pral?

Programování se věnuji již 8 let, od nástupu na VŠ, z toho 3 roky u MD. Nejtěžší byl určitě první rok na VŠ. Musel jsem se doučit všechny základy a principy nejen v programování, ale počítačů obecně a zároveň zvládat stíhat studium dle plánu. První rok byl boj, ale pak už to šlo tak nějak samo.

Co se týče začátků v Modrém duchovi, tak si nevybavím žádný velký problém. Práce v novém prostředí je vždycky specifická a každému trvá se adaptovat různou dobu. Můžu vděčit kolegům, že u mě to šlo celkem hladce.

Pracuješ mimo Modrého ducha i na nějakém vlastním projektu?

Občas dostanu chuť si naprogramovat něco, co by mi usnadnilo běžný život. Např. evidenci výdajů a příjmů, správce nákupních seznamů nebo generátor náhodných jídelních receptů, které si uvařím k obědu. Na většinu věcí už dneska nějaká aplikace existuje, ale já si na podobných projektech rád zkouším pro mě nové technologie a to mě na tom baví. I když se mi žádný z těchto projektů nepovedlo dotáhnout do konce, hlavně z časových důvodů. Volný čas v poslední době trávím raději jinak. Snažím se nechat mozek odpočinout.

Co tedy děláš nejraději, když zrovna neprogramuješ? :)

Věnuji se hodně sportu. Je všeobecně známo, že práce v kanceláři není nejzdravější. Proto se to snažím v životě kompenzovat běháním a jízdou na kole. Teď začínám i cvičit ve fitku, tak jsem zvědavý, jak dlouho při tom vydržím :). Dříve jsem hrál dost florbal, ke kterému bych se teď rád vrátil. Zbývající čas věnuji přítelkyni. Sport a přítelkyně se vzájemně nevylučují a to je na tom to nejlepší.