Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 14 - Best practices pro vývoj softwaru - Vývoj webových aplikací

V minulé lekci, Best practices pro vývoj softwaru - K čemu jsou algoritmy?, jsme se uvedli do světa algoritmů. Řekli si, co to algoritmy vlastně jsou a proč by nás měly zajímat.

V dnešním tutoriálu kurzu Best practices pro návrh softwaru se naučíme využívat hotových softwarových řešení a užitečných nástrojů.

Každý technický problém je jednoduchý do té doby, než ho začnete implementovat.

Aplikace, ať už webové, desktopové nebo mobilní, se vyvíjejí každý den. Jejich vývoj jde nezastavitelně a obrovskou rychlostí kupředu. Klienti požadují své aplikace rychle hotové, a proto není možné, aby vývoj takové aplikace zabral roky. Minimalizuje se čas vývoje a zvyšuje se jejich kvalita a rozsah. Jak držet krok s takovým vývojem? Jak udělat aplikaci rychle a zároveň také kvalitně? Lekce je zaměřena na vývoj webových aplikací, ale některé postřehy mohou být užitečné i vývojářům aplikací mobilních nebo desktopových.

Nesnažte se udělat aplikaci rychle, ale kvalitně

Spousta lidí, webových vývojářů, grafiků a dalších se snaží udělat aplikaci či web co nejrychleji. Nedochází jim ale, že kvůli tomu obětují kvalitu či rozsah aplikace a proces vývoje tím naopak mohou ještě zpomalit. Většinou dělají elementární chyby, které mohou mít fatální dopad na termín dokončení aplikace či na jejich bezpečnost nebo funkčnost.

Naučte se používat hotová řešení efektivně

Pro frontend i backend aplikace existuje na webu obrovské množství použitelných materiálů. Ať už jsou to různé grafické prvky nebo serverové komponenty, to vše je už někde nejspíše hotové.

Kámen úrazu použití řešení třetích stran

Umění je ale rozpoznat ty správné. To jsou komponenty, které:

  • se do našeho projektu nejvíce hodí
  • které mají vhodnou licenci
  • které jsou dostatečně populární

Poslední bod je nejdůležitější. Často se stane, že najdeme dokonalou knihovnu přesně pro náš účel, ale jedná se o nějaký malý hobby projekt. U těchto projektů je bohužel velmi vysoká šance, že se i přes kvalitu a nápad neuchytí. Aby se knihovna stala úspěšná, musí být sice dobrá, ale také musí být, jak se říká "ve správný čas na správném místě". Lépe tedy vychází použít obyčejnější, třeba méně kvalitní, ale populární a známé knihovny, na kterých staví již tolik velkých projektů, že budou stále podporované. Není nic horšího, než postavit projekt na frameworku, který za rok přestane existovat!

Příklady knihoven a frameworků jsou třeba Bootstrap, React, Spring nebo Font Awesome.

Automatizujte si vše, co jen jde

Webová stránka či aplikace většinou obsahuje množství skriptů, stylů, obrázků a dalších věcí. Styly a JavaScript se přitom v produkčních verzích takzvaně minifikují (odstraní se komentáře, přejmenují proměnné a podobně) pomocí externích nástrojů. Což jednak zrychlí načítání a také znesnadní ostatním lidem číst kód.

Proces nasazení aplikace na produkční server tak může být dost zdlouhavý, jelikož tohle děláme manuálně. Vše si ale můžeme automatizovat. Existuje spousta knihoven, které nám minifikují kód, sloučí nám soubory skriptů, automaticky vygenerují náhledy nebo dokonce nahrají celý projekt na FTP a přitom provedou vše, co je potřeba. Takové nástroje nám mohou ve výsledku ušetřit hodiny práce. Jako příklady si uveďme nástroje Gulp a Webpack.

Používejte frameworky

Při vývoji jakékoli aplikace vždy narazíme na věci, které se opakují a které řešíme stále dokola na většině projektů. Takové základní nebo i pokročilejší prvky nám mohou zabrat spoustu času. Za všechny problémy si zmiňme např. validaci u formulářů. Přitom je nemusíme vůbec vyřešit správně (např. správné escapování), což opět bude mít velký dopad na bezpečnost, funkčnost nebo výkon. V každém jazyce tak vznikly různé frameworky, které více či méně tyto problémy řeší a snaží se nám usnadnit proces vývoje aplikace. Bylo by dost pošetilé tyto frameworky přehlížet. Nejpopulárnější frameworky jsou např. Spring pro Javu a React pro JavaScript.

Vlastní frameworky

Frameworky používáme vždy. Někdy si je i mohou firmy tvořit samy, s takovým frameworkem nás potom naučí pracovat. To je často v případě, že vyvíjejí nějaký svůj jeden systém, který musí zůstat dlouho podporovaný a neměl by záviset na měnících se frameworcích třetích stran. Toto je případ i ITnetwork, kde již přes 10 let vyvíjíme jen jeden informační systém a za tu dobu již několik v té době populárních frameworků úplně zmizelo.

Udělejte si návrh aplikace

Ještě před tím, než se do něčeho pustíte, musíte analyzovat zadání. Těžko se dá odhadovat termín dokončení aplikace, když ani nevíme, co všechno bude její vývoj obnášet a jestli na něj vůbec stačíme. Návrh aplikace je velice důležitý. Ať už si budete dělat poznámky na papír nebo kreslit všemožné UML diagramy, určitě vám to pomůže při vývoji.

Nastudujte si a používejte návrhové vzory a idiomy

Návrhové vzory a obecně architektura aplikace je velmi důležitá. Zajišťuje nám rozšiřitelnost, znovupoužitelnost a přehlednost kódu. Znalost návrhových vzorů nám nejenže pomůže při vývoji, kdy budeme jasně vědět, jak problém co nejlépe implementovat, zaručí nám ověřené postupy, ale také pomáhají při komunikaci v týmu programátorů. Je totiž mnohem pohodlnější a jednodušší říci programátorovi, aby danou věc implementoval jako Observer, než mu to složitě vysvětlovat. Člověk znalý návrhových vzorů může být velkým přínosem pro tým.

Testovat, testovat, testovat!

Věc, která je mnohými hlavně začínajícími vývojáři či investory podceňována a odsuzována. Přitom testujeme skoro pořád a ani si to neuvědomujeme. Každý totiž děláme chyby. Kolikrát jste si už při vývoji vypsali obsah proměnné? To je testování, avšak problém těchto testů je, že je z aplikace hned po odstranění problému vyřadíme.

Je důležité psát automatizované testy. Takové testy pak můžeme snadno kdykoli spouštět. Jsou velmi důležité, ať už děláme na projektu sami nebo s týmem programátorů. Kód se vyplatí testovat vždy. Testy nám totiž mohou odhalit nezabezpečené části aplikace, neošetřené vstupy a velmi nám pomohou třeba při refaktorování. Vždy se o ně můžeme opřít, avšak pozor, mít aplikaci na 100 % pokrytou testy ještě neznamená ji mít dokonale zabezpečenou.

Verzujte kód

Zvlášť pokud děláte na aplikaci s několika lidmi, narazíte na problém, jak změny v kódu, které jste provedli, bezpečně doručit ostatním členům týmu. Odpovědí je verzování. To nám umožní změny v kódu nahrávat na vzdálený (či lokální) server, kam se uloží a odtud si je mohou stáhnout všichni členové týmu. Navíc se můžeme ve verzích libovolně vracet zpět třeba k poslední funkční verzi. Z verzovacích systémů je nejpopulárnější Git. Neméně důležité je také kód dobře okomentovat a zvolit si nějaký standard psaní kódu, aby byl jednotný v celém projektu.

Zálohujte si svou práci

V neposlední řadě si kód zálohujte. Častým omylem bývá, že si lidé myslí, že se kód zálohuje verzováním, tedy např. stačí používat Git. Záloha by se ale měla tvořit automaticky a nespoléhat na to, že změny v kódu nezapomenete commitnout a hlavně pak změny pushnout. Úplně nejjednodušší je mít lokální zdrojové soubory na nějakém synchronizovaném úložišti, např. Dropboxu. Protože firemní kód může být problém takto někam nahrávat, je potřeba se poradit v daném týmu, jak zálohy své práce řeší.

V příští lekci, Best practices pro vývoj softwaru - Práce s heslem, si vysvětlíme bezpečnostní hrozby spojené s ukládáním hesel uživatelů.


 

Předchozí článek
Best practices pro vývoj softwaru - K čemu jsou algoritmy?
Všechny články v sekci
Best practices pro návrh softwaru
Přeskočit článek
(nedoporučujeme)
Best practices pro vývoj softwaru - Práce s heslem
Článek pro vás napsal Drahomír Hanák
Avatar
Uživatelské hodnocení:
68 hlasů
Autor v současné době studuje Informatiku. Zajímá se o programování, matematiku a grafiku.
Aktivity