Nejzajímavější dotazy o JavaSriptu a knihovně React

Odpovědi na nejzajímavější otázky zájemců o programování frontendu webových a mobilnách aplikací v JavaScriptu a Reactu.
15.7.2023 | 9 minuty k přečtení | Sdílej na:

Zajímalo by mě, jaké jsou podle vás pomyslné hranice schopnostní juniora, mediora a seniora. Opakovaně jsem se setkala s dost velkým rozdílem v požadavcích, očekáváním a přístupu od zaměstnavatelů.

V IT oboru se často používají označení Junior, Medior a Senior pro vyjádření úrovně zkušeností a znalostí. Tyto termíny jsou do jisté míry subjektivní a mohou se skutečně lišit v různých organizacích a to zejména ve znalosti konkrétních technologií, či produktů. Přesto jsou určité obecně platné hranice. Popsali jsme je v samostatném článku: ‚Jak se liší junior, medior a senior‘.

Dá se začít s Reactem jenom se základy JavaScriptu?

Začít s Reactem jen se základy JavaScriptu nedoporučujeme. Pro první kroky s Reactem, je potřeba mít dobrou znalost JavaScriptu. Měl/a bys ovládat zejména tyto koncepty:

  • Proměnné a datové typy: Musíte vědět, jak deklarovat proměnné a jak pracovat s různými datovými typy jako např. string, number, boolean, array, a object.
  • Funkce: Definice a volání funkcí, argumenty a návratové hodnoty.
  • Objekty a pole: Vytváření a manipulace s daty uloženými v objektu a v poli.
  • Podmínky a cykly: Musíš znát jak používat podmínky a různé druhy cyklů.
  • Manipulace s DOMem: Ovládání Document Object Model (DOM) je také nezbytné. Musíš vědět, jak přistupovat a modifikovat HTML elementy na stránce a jak vytvářet události (eventy).
  • Asynchronní JavaScript: Musíš pochopit, jak funguje koncept asynchronní komunikace a vědět jak použít callback, promise a async/await. To budeš v Reactu potřebovat pro získávání dat z API.
  • JavaScript ECMA6: Familiarize yourself with ES6 (ECMAScript 2015) and newer JavaScript syntax and features, such as arrow functions, template literals, destructuring, spread syntax, and modules.

Jak na CSS v rámci Reactu? Je nutné/lepší psát css pro každý komponent zvlášť, nebo při menší aplikaci stačí jeden centrální soubor?

Způsob vytváření stylů v Reactu záleží na konkrétní situaci. Obecně bys měl přistupovat k programování způsobem DRY, tzn. Don’t repeat yourself. Tento koncept velmi zjednodušuje hlavně údržbu a další rozvoj projektu. Každý kus kódu by měl být v aplikaci pouze jednou. Pokud totiž máš stejný kód na více místech, je jen otázka času, než se ti jednotlivé verze toho samého “rozjedou” a ty budeš trávit zbytečný čas hledáním chyb a aktualizací stejného kódu na více místech.

Ale zpět ke stylům. Jakmile se nad konceptem DRY zamyslíš hlouběji, najednou uvidíš, že máš styly platné pro celý projekt (barevná sada, fonty, styly písma, chování odkazů apod), které rozhodně nechceš opakovat v každé komponentě. Potřebuješ tedy tzv. globální styl.

U komponent v Reactu je to něco jiného. Obecné komponenty přímo vyzývají k znovupoužívání. Máš-li na stránce pár komponent a neplánuješ z nich udělat obecné komponenty i pro další projekt, vystačíš si s globálním stylem. Pokud chceš komponentu využít v dalším projektu, nebo plánuješ přidávat další komponenty, stojí za to si CSS styl definovat přímo k této komponentě.

Je výhodou používat Typescript? Nebo je to spíš bonus pro práci s Reactem?

TypeScript je nadstavba JavaScriptu, vyvinutý firmou Microsoft a přináší vývojářům určité výhody, kterými JavaScript samotný nedisponuje, např. jednodušší detekce chyb v kódu, jeho lepší čitelnost, či statické typování (datové typy proměnných nelze měnit). Obliba TypeScriptu rychle roste a používají jej velké společnosti jako Microsoft, Google, Airbnb, Slack, Medium.com, i aktuálně rychle rostoucí ProductBoard.

Je třeba říci, že TypeScript dodává projektu další úroveň komplexity. Pokud s Reactem začínáš, doporučujeme začít s JavaScriptem, resp. s jeho standardní verzí ECMA6+. Jakmile zvládneš JavaScript s Reactem a budeš jej mít zažitý, přidáš si TypeScript. Pochopíš-li principy TypeScriptu, migrace celého projektu z JavaScriptu může být velmi rychlá.

Existuje nějaký seznam spolehlivých knihoven využitelných v Reactu?

Ano, existují různé seznamy nejpoužívanějších knihoven pro React. Uveďme si ty nejdůležitější:

  • npm: npm je největší úložiště (repository, neboli úložiště) všech verzí jednotlivých knihoven a balíčků. Můžeš zde vyhledat ty, které se týkají Reactu a filtrovat podle kategorie, počtu stažení a popularity.
  • Awesome React: Awesome React je udržovaný seznam na GitHubu, který obsahuje širokou škálu zdrojů týkajících se Reactu, včetně knihoven, nástrojů, článků, výukových programů a dalších. Je to vynikající výchozí bod pro objevování dalších populárních knihoven Reactu a zkoumání všeho, co s Reactem souvisí.
  • React Community: Na oficiálních stránkách Reactu je sekce Community. Tento seznam sice není úplný, ale nabízí pěknou řádku zajímavých knihoven a zdrojů týkajících se Reactu, které si již získaly uznání v komunitě kolem Reactu.
  • Knihovny na GitHubu: GitHub je online služba zaměřená mimo jiné na hostování open-source projektů. Pokud dáš do vyhledávání slovo ‚React‘, zobrazí se ti seznam relevantních projektů a knihoven. Chceš-li vědět, které z nich jsou oblíbené a používané, můžeš se orientovat podle počtu hvězdiček, a počtu aktivi

Proč se učit React a ne třeba Vue nebo Angular?

V našich kurzech vyučujeme React z velmi pragmatického důvodu. Jedná se o suverénně nejoblíbenější a nejpoužívanější knihovnu na světě určenou pro vývoj frontendu. React byl svým způsobem přelomový a jako takový byl jasnou volbou pro zařazení do našich kurzů.

  • Široká komunita - Má obrovskou komunitu (více než 1500 přispívajících vývojářů)
  • Existující komponenty - Disponuje více než 5000 připravenými komponentami a miliony.
  • Nejvíce pracovních příležitostí - Po vývojářích Reactu je největší poptávka.
  • Spokojenost vývojářů s Reactem - Podle průzkumu 2020 State of JavaScript Report odpovědělo 88% vývojářů, že by rádi použili React v dalším projektu. U Vue to prohlásilo jen 85% vývojářů a u Angularu dokonce jen 42% vývojářů.

Naše doporučení: Ve výběru své první knihovny buď pragmatický/á. React je doporučený základ z mnoha důvodů. Na případný přechod na jinou knihovnu vynaložíš mnohem méně úsilí, než na zvládnutí té první.

Jak zjistíme, že je framework stále aktuální a nenahradilo ho něco nového?

Nové frameworky se nestávají populárními přes noc. Pokud přichází nějaký nový přelomový framework, zpravidla to trvá i roky, než si vybuduje svou komunitu a než se jej vývojáři naučí a začnou používat ve svých projektech.

Co se týče Reactu, v tuto chvíli nic nenasvědčuje tomu, že by se blížil jeho konec a jeho oblíbenost stále stoupá. Pokud vezmeme v potaz i množství webů a aplikací, které jsou v Reactu vytvořené, není reálné že by React skončil ze dne na den. Tyto projekty bude dále potřeba rozvíjet a udržovat. Nemáme sice křišťálovou kouli, ale konce Reactu se rozhodně nemusíš nemusíš v nejbližších deseti letech obávat.

Má smysl do vývoje mobilní a webové aplikace zapojit Ionic nebo si vystačím s Reactem?

Ionic je framework, který umožňuje pomocí HTML, CSS a JavaScriptu vytvářet mobilní aplikace pro více platforem současně (např. Android a iOS). Říká se jim hybridní aplikace. V případě že potřebuješ vyvinout během velmi krátké doby mobilní aplikaci, Ionic je dobrou volbou. Je však potřeba říci, že výsledná aplikace se nebude chovat a vypadat jako originální, nativní aplikace, přizpůsobená pro iOS nebo Android.

Pokud je prioritou postavit robustní aplikaci tak aby maximálně využívaly možností konkrétní mobilní platformy, nejlepší volbou je React Native.

Pokud vyvíjíš webovou aplikaci, React je samostatně dostatečným nástrojem. React je velmi populární framework s rozsáhlou komunitou a širokým výběrem knihoven a nástrojů.

Nevidíte riziko, že by AI / umělá inteligence (Chat GPT) mohla částečně nahradit práci juniorních programátorů v JavaScript či React? Na jednu stranu, tyto AI nástroje mohou být asi spíše pomocníkem, na stranu druhou, schopnost AI generovat kód (a tudíž do nějaké míry možná nahradit juniorní práci) mi přijde značná.

Umělá inteligence přináší revoluci do řady oborů. Řada profesí změní svůj způsob práce. Repetitivní profese, které nevyžadují expertýzu mohou úplně zaniknout. Programování software je natolik komplexní činnost, že nebude možné zcela nahradit developery umělou inteligencí.

Toto jsou dopady, které očekáváme od masivnějšího nástupu umělé inteligence:

  • Developeři budou mít k dispozici nástroje obsahující umělou inteligenci, která jim bude pomáhat při vývoji.
  • Umělá inteligence zásadně zrychlí vývoj software a zjednoduší práci vývojářům
  • Klienti a zadavatelé budou mít vyšší požadavky na rychlost vývoje, zabezpečení a kvalitu aplikace
  • Bude možné generování celých kusů kódu, či struktury aplikace

Jsou certifikáty např. z Udemy relevantní při hledání juniorské pozice? A jak zaměstnavatelé pohlíží na samouky?

To jestli je někdo samouk, absolvoval trénink s lektorem, nebo jiný druh školení není až tak podstatné. Podstatnější je co uchazeč umí a jaké dovednosti si osvojil. Velmi často se setkáváme s tím, že zejména absolventi kratších kurzů, nebo kurzů bez konkrétní specializace (typicky takové, kde studenti si studenti osahají více technologií) mají mít obtíže se získáním práce. Vše se odvíjí od toho, co mohou zaměstnavateli nabídnout.

Firmy nám potvrzují, že od juniora očekávají již určitou úroveň znalostí.Tato úroveň se může v jednotlivých firmách lišit, ale obecně lze říci, že by junior měl mít zvladnuté alespoň některé nástroje na velmi dobré úrovni. Zaměstnavatelé ti odpustí že nemáš praxi. V takové situaci byl jednou každý junior, ale nesázej na to, že tě budou učit základy. Čas seniorů je příliš drahý na to, aby jej investovali tímto způsobem.

Čím bys měl jako juniorní developer disponovat?

  • Frontend JavaScript Developer - velmi dobře bys měl ovládat HTML, CSS, SASS, JavaScript a React.
  • Python Backend Developer - Velmi dobrá znalost HTML, CSS, Python a frameworku Django.

Doporučujeme mít alespoň jeden svůj funkční projekt (ideálně dva), který jsi kompletně zpracoval/a a kterým se můžeš pochlubit. Projekt může vyvážit nedostatek praxe.

Celý webinář o JavaScriptu a Reactu si můžeš pustit zde.

Sleduj nás na Facebooku

Sleduj Coders Lab na Facebooku a začni odebírat novinky i zábavu z IT.

Mohlo by tě také zajímat

Další témata z IT oboru

Svět IT je rozmanitý a velmi obsáhlý. Je proto důležité zaměřit se z počátku na to podstatné. Přinášíme výběr toho nejdůležitějšího, co tě v IT může potkat, nebo na co se nás zájemci o kurzy často ptají.
Nevíš jistě, který kurz je pro tebe ten pravý?
Máš pochybnosti? Udělej si test tvých silných stránek a zjisti, která cesta je pro tebe nejlepší.