Menu

Tip: Jak poznám, že je webová aplikace dobře naprogramovaná?

Mít dobře naprogramovanou aplikace je dnes velice důležité, protože i sebemenší chyba může znamenat nespokojenost klientů a snížení výnosů. V častých případech to přitom může znamenat opravdu velké finanční ztráty. Jaké jsou ale vlastně parametry dobře naprogramované aplikace? Záludná otázka, na kterou odpovídá Michal Zíma, šéf programátorů BlueGhostu.

V základu se na položenou otázku dá dívat třemi pohledy

Webová aplikace je velký projekt, který by měl splňovat řadu věcí. Můžeme si však vydefinovat tři základní pohledy, ze kterých by měl vycházet – programátorské hledisko, byznysové cíle a uživatelskou spokojenost. Každý z těchto úhlů pohledu je velice důležitý, každý však vyžaduje odlišný přístup a znalosti. Během řádků níže si specifikujeme několik  programátorských věcí, které jsou z našeho pohledu důležité a zároveň vám mohou pomoci vylepšit již běžící aplikace, případně vám dají dobrý insight při stavbě aplikace nové. 

1. Architektura a model 

Nejdříve je potřeba se nad aplikací zamyslet, stanovit si nějaký návrh, model a architekturu. Není to zkrátka tak, že si programátor sedne k počítači a začne „bušit” do klávesnice. Architektura by měla odrážet, pro co je aplikace určena. Rozdíl bude, pokud budete programovat bankovní aplikaci, aplikaci pro komunikaci s burzou či nějaký konfigurátor například pro potisk triček, kdy si uživatel bude moci nakonfigurovat vlastní vzhled a podívat se na to ve 3D modelu.

U prvního případu – tedy bankovní aplikace – je důležité se zaměřit především na odezvy, výkon a při komunikaci s burzou určitě na bezpečnost. Aplikace pro koncového uživatele, která má za úkol zobrazovat 3D model bude řešit technologie na straně uživatele. Jakým způsobem se bude vykreslovat model na starším zařízení, jak je tomu daný konfigurátor uzpůsoben. Na všechny tyto aspekty je důležité myslet, když je návrh aplikace vytvářen. 

Pokud posuzujete, zda je aplikace dobře naprogramovaná, přičemž architektura nebyla zvolena, bývá už pozdě. Proto je důležité tento krok nepodcenit. Nejčastějšími projevy pak bývají v rychlosti nebo v tom, že aplikace neplní svůj stanovený účel.  

2. Dokumentace a tzv. self-explain code

Toto je určitě další důležité téma. Dokumentace obecně bývá takovou achilovou patou zejména u starších projektů, kdy dokumentace na začátku vznikla, ale už není aktuální. Anebo vůbec dokumentace nevznikala a rovnou se začalo programovat. 

Self-explain code zahrnuje správné pojmenování funkcí a proměnných a všeho, co se v kódu uvádí. To je z toho důvodu, aby se nemusela vytvářet dokumentace přímo v kódu. Dokumentaci pak můžeme rozdělit do dvou velkých kategorií: 

  1. První kategorie je dokumentace psaná projektovým manažerem ve spolupráci s programátorem a architektem, která má za úkol popisovat, co aplikace umí. Ideální je zde popis jednotlivých funkcí, s doplněním jednotlivých detailů ohledně datových struktur.  
  2. Druhou kategorií jsou dokumentace přímo v kódu. Jsou to v podstatě komentáře, které píšete k metodám, funkcím, třídám, proměnným nebo kouskům kódu. V minulosti se tyto komentáře psaly hlavně z toho důvodu, aby programátoři měli tzv. type-hinting, což znamená, že program, ve kterém programujete, vám napovídá struktury a další části kódu. Dnes se dané věci zanáší právě do kódu.

Druhá kategorie se na první pohled může zdát jako nadbytečná (tzv. redundantní), ale není dobré na to takto koukat. Pokud totiž potřebujete popsat nějaký složitější algoritmus nebo něco specifického čistě pro vaši aplikaci, je potřeba toto dobře zdokumentovat, abyste tím například usnadnili práci kolegům. 

3. Čistota kódu 

Čistotou kódu není myšlena pouze grafická úprava. Ale koncept, v jakém kód píšete. Ten se označuje jako coding standards to znamená, že se s kolegy – programátory –  dohodnete, jakým způsobem kód budete psát:

  1. jaké budete mít jmenné konvence,
  2. jaké budete mít odřádkování, 
  3. jakým stylem budete řešit závorky a další podobné parametry.

Všechny tyto parametry je dobré sepsat, nastavit a připravit na ně program, ve kterém programujete, tak, aby vaše coding standards dodržoval nebo vás na ně minimálně upozornil. 

Kromě coding standards můžete pro čistotu kódu použít také statickou analýzu, která vám dokáže odhalit chybu, aniž byste program spouštěli. Tzn. tento nástroj kontroluje, zda je vše podle zvoleného jazyka v pořádku. Jedním z užitečných nástrojů, který můžete zvolit a používáme ho i my u nás v BlueGhostu, je PHPStan

Ten dokáže zhodnotit váš kód na řadě úrovní a můžete podle něj určit, zda je váš kód čistý. A to i v již rozběhlém projektu. Využít jej můžete i pro používání tzv. PSR standardů, které podporují jednotný a srozumitelný způsob psaní kódu a umožňují lepší spolupráci mezi různými projekty a knihovnami. Následování těchto standardů také usnadňuje udržování kódu a jeho čitelnost pro ostatní vývojáře.

Spolu s tím má PHPStan řadu dalších užitečných funkcí jako například: 

  1. statická typová analýza,
  2. detekce nedefinovaných symbolů,
  3. kontrola existence metod a vlastností,
  4. kontrola typové kompatibility,
  5. kontrola nedosažitelného kódu,
  6. doporučené zlepšení kódu,
  7. nastavitelné úrovně analýzy,
  8. rychlá odezva při psaní kódu.

Nepřehlédněte: Jednou z dalších metod, jak udržovat čistotu kódu, jsou i tzv. code reviews. To znamená, že se na napsaný kód podívá někdo další. Pro tento účel je dnes možné používat i umělou inteligenci, kterou zmiňujeme v našem tipu Jak vám umělá inteligence může pomoci v programování. Určitě doporučujeme zhlédnout.

Další důležité faktory

Dalšími důležitými faktory, jak můžete špatně naprogramovanou aplikaci poznat, je zaměření se na aspekty, které jsou v dnešní dynamické době stěžejní: 

  1. zda je aplikace dostatečně rychlá,
  2. zda design odpovídá a nevybočuje z běžných standardů či se aplikace špatně nepoužívá,
  3. zda je vše dobře responzivní a přizpůsobitelné pro všechna možná zařízení,
  4. zda probíhají průběžné a automatizované testy, zda proběhly klíčové end-to-end testy apod.,
  5. zda je aplikace tím pádem spolehlivá,
  6. zda je dobře škálovatelná a dokáže odolat nárůstu uživatelů a dat
  7. a v neposlední řadě, zda je také bezpečná – aplikace by měla být minimálně odolná vůči hrozbám jako SQL injection, cross-site scripting (XSS) aj., přičemž by měla být dodržována správná kontrola vstupních dat, správné řízení přístupových práv a samozřejmě by mělo docházet k šifrování citlivých informací. 

Dalším ukazatelem může být zpětná vazba od programátora jako takového. To znamená přímo se s ním spojit a zeptat se ho, jak dlouho by mu trval tzv. onboarding. Programátor si aplikaci projde, zhodnotí stavbu kódu a funkcí a odhadne, kolik mu to zabere času. Do dobře naprogramované aplikace se onborduje snáze než do té špatně a příliš komplikovaně postavené.

Jak se vám článek líbil?

1

Praktický

0

Inspirující

0

Zábavný

0

Nic moc

Pojďme spolu vytvořit něco skvělého!

Dlouhodobá spolupráce může začít jedním kliknutím

Domluvit schůzku