The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2021-08-24
Vývoj softwaru

Jak urychlit vývoj softwaru pomocí JavaScript?

The Codest

Bartosz Slysz

Software Engineer

Je všeobecně známo, že moderní webové aplikace se používají den ode dne častěji. Vývoj je opravdu rychlý a umožňuje publikovat aplikace na všech platformách, kde jediným požadavkem je mít prostředí, které zvládá daný technologický stack. Jazyk, který lze v rámci tohoto prostředí označit za krále všech ostatních, je JavaScript. Dnes se s vámi podělím o některá fakta o vývoji softwaru, která s tímto jazykem souvisejí.

Definice rychlého vývoje aplikací

Slovní spojení "rychlý vývoj" lze vykládat mnoha špatnými způsoby. Abychom se tomu vyhnuli, vysvětleme si, jaká jsou naše očekávání. No, hlavní důležitou věcí je rozpočet. Abychom mohli vytvořit mnoho verzí stejné aplikace, potřebujeme mnoho vývojářů z několika technologických balíčků a každého z nich zaplatit. Abychom mohli vytvářet nativní mobilní aplikace, musíme duplikovat naše kód dobře fungovat na obou platformách - Android i iOS. Běžným přístupem je udržovat obě aplikace podobné, používat stejné API, zachovávat stejné chování atd. V důsledku toho musíme duplikovat kód pro vytvoření dvou verzí téže aplikace. JS je jazyk, který umožňuje nás vytvářet mobilní a webové aplikace současně. Zní to nemožně? Vysvětlím vám, o čem mluvím.

Mobilní telefon? Web? To je mi jedno.

Řekněme, že chceme vytvořit aplikaci, která používá funkci React knihovna. Tuto knihovnu lze použít pro vytváření webových aplikací a mobilních aplikací s nativním rozhraním React. Logické mechanismy aplikace, jako je autorizace, výpočet, filtrování dat atd. Háčky React. Jde o to, že tyto háčky mohou sdílet obě verze aplikace - webová i mobilní. Díky této možnosti máme k dispozici následující úspory:

  • Není třeba duplikovat kód zodpovědný za stejnou věc,
  • Pro implementaci stejné části aplikací není třeba najímat nativní mobilní vývojáře,
  • Pro implementaci stejné aplikace na různých mobilních platformách (Android/iOS) není nutné míchat různé jazyky,
  • Jeden vývojář může být zodpovědný za implementaci konkrétních funkcí aplikace na všech platformách.

Abychom shrnuli tento odstavec - nejde o to, že jedna kódová základna bude pohánět všechny verze aplikace, ačkoli můžeme sdílený kód rozdělit a použít v každé z nich, aby se proces vývoje opravdu rychleji.

Závěr - pokud chcete vytvářet webovou a mobilní aplikaci současně, zvažte knihovnu React, která dokáže sdílet kódovou základnu v mobilní i webové verzi aplikace.

Ale co backend?

Když se před několika lety mluvilo o backendu, asi jen málokdo si dokázal představit, že by jeho údržba mohla být možná s pomocí jazyka, jako je např. JS. Vývoj tohoto jazyka je úžasný a jeho plody můžeme sklízet dodnes.

O čem to mluvím? Pokud si najmete správného Vývojáři JS, se ukazuje, že mohou psát nejen frontend aplikace, ale také backend - tedy být zodpovědní za zpracování dat na serveru, komunikaci s databází, různé typy integrací atd. Stále váháte nebo nejste o tomto jazyce přesvědčeni? K takovému postoji není důvod! Backend pomocí JS lze implementovat dvěma oblíbenými způsoby - v rozšiřitelném a konfigurovatelném režimu, který nám může poskytnout express.js, a ve strukturovaném režimu pomocí vzoru DI - nest.js.

Obě řešení jsou velmi populární a pohánějí mnoho produkčních aplikací, jejichž majitelé jsou "technologickými giganty" ve svém oboru. Myslím, že již dostatečně vyzrála na to, aby vás přesvědčila k výběru jednoho z nich.

Stále to nestačí? Podobně jako u sdílení kódu mezi webovými a mobilními aplikacemi může backend sdílet prostředky jak s první, tak s druhou aplikací. Klíčové slovo, které je zde třeba použít, je TypeScript - mimo jiné nám umožňuje sdílet kódovou základnu, tj. společnou definici datových typů pro všechny platformy.

S aplikacemi postavenými výhradně na JavaScript / TypeScript stack pomocí monolitu, máme ušetřeno mnoho řádků kódu, které bychom museli duplikovat v nativních programovacích jazycích. Na druhou stranu použitím stejného jazyka na všech frontách můžeme sdílet obrovské množství logiky mezi všemi aplikacemi, což by rozhodně urychlilo dobu, za kterou lze konkrétní aplikaci vytvořit. Nezní to skvěle?

Může JS pohánět desktopové aplikace?

Ukazuje se, že technologie pro vytváření aplikací v prohlížeči jsou skvělé pro údržbu těch aplikací, které používáme v jejich desktopové podobě - dobrým příkladem může být Slack. Slack je aplikace používaná pro tým komunikace - kromě standardního zasílání zpráv nabízí mnoho různých funkcí a různé typy externích integrací. To vše z něj dělá jednu z nejoblíbenějších aplikací používaných především v oblasti IT průmysl.

Ukázalo se, že Slack používá webové technologie (a tedy i JavaScript) také k vytvoření svého aplikačního rozhraní. Základem, který umožňuje spouštět takové aplikace na ploše, je elektron. Vytváření grafických rozhraní pomocí webových technologií umožňuje mnohem jednodušší, rychlejší a obecně možný vývoj aplikací pro různé platformy najednou.

Je JS dostatečně vyspělý?

Podle frontendové části aplikace si nelze dělat iluze o tom, že by JS je jediným a výhradním jazykem, který zde pohání ekosystém. Prozatím neexistují žádné životaschopné alternativy, které by mohly tuto část aplikace nahradit (i když si myslím, že WebAssembly nás může v budoucnu překvapit). Když už tedy mluvíme o vyspělosti JS na frontendu - není pochyb o tom, že je jediným královským.

Když mluvíme o backendu, mnoho vývojářů může být šokováno nebo okamžitě popřít, že JS je vhodný jako programovací jazyk pro backend. Tuto záležitost je však třeba analyzovat objektivně.

Spousta poskytovatelů cloudu poskytuje SDK, které umožňují přímo používat cloud metody. Kupodivu jedna z nejoblíbenějších záložek, hned vedle C#, Go and Java, je Node.js. Ukazuje se, že tato platforma je ideální pro škálování a vytváření aplikací založených na mikroslužby nebo architekturu bez serveru. Závěr - JS je jedním z nejoblíbenějších jazyků pro vývoj aplikací založených na mikroslužbách/bezserverové architektuře. Na obrazovkách níže vidíme, že svatá trojice (Google Computing Services, AWS, Azure) poskytovatelů cloudových služeb nám umožňuje vytvářet aplikace pomocí uzel.js.

Node.js Rychlý start

Node.js porovnání

Co se týče ekosystému node.js, asi každý zná knihovnu express.js - jedná se o jednoduchý a přímočarý nástroj, který umožňuje definovat cesty a následně jim předávat příslušná data, která byla na straně JS řádně zpracována. Navíc vzor používaný mezi HTTP požadavky zpracovávanými v express.js se stal jedním z nejoblíbenějších v celém ekosystému a je jakýmsi vzorem pro různé další knihovny využívající např. architekturu serverless.

Závěr - JS je dostatečně vyspělý jazyk na to, abyste do něj mohli vložit všechny karty a vytvořit frontend i backend. Navíc se jedná o poměrně čerstvý jazyk, který si snadno najde cestu do moderních aplikačních architektur. Je skvělé, že programátor, který umí jeden jazyk, zvládne obě strany (full stack) aplikace.

Je JS dostatečně rychlý?

Nejčastěji používaným enginem pro spouštění kódu JS je v8, poháněný jazykem C++. Tento engine vyvinutý společností Google je určen pro spouštění aplikací pro webové platformy. Zajímavé je, že tento engine neinterpretuje kód JS. Místo toho provádí věc zvanou "JIT" - "just in time compilation". Díky tomu nemusíme kód JS interpretovat řádek po řádku, pouze jej zkompilujeme a spustíme. Je to ještě rychlejší a dává nám to opravdu pěkné výkonnostní výsledky.

Je JS dostatečně spravedlivý, pokud jde o výkon? Ano, je. Pokud jsou algoritmy dostatečně spravedlivé, není problém použít JS na straně serveru. Další věcí je udržovat kód co nejvíce asynchronní. S těmito postupy váš kód zvládne paralelní požadavky bez problémů. Kvůli výkonu se nemusíte starat o výměnu technologií - zejména pokud je architektura aplikace škálovatelná.

V tomto článku jsem se již podrobně zabýval výkonem a srovnávacími testy.

Není JS takovou zvláštností mezi ostatními jazyky?

To jsou desítky názorů, že jazyk JS se v některých případech chová divně a jeho ovládání je něco, z čeho vám při vývoji praskne hlava. S tím nemohu souhlasit 🙂 Stejně jako každý jiný jazyk má několik vzorů/chování, které nejsou elegantní, ale s pochopením toho, jak fungují a jaké jsou jejich cíle, není vývoj aplikací s JS nepříjemný.

Zejména poznámka "asynchronní" těsně před JS vyvolává u některých vývojářů mrazení v zádech. Je těžké ji pochopit, když s ní nemáte žádné zkušenosti. Je to však součást JS, která nám umožňuje snadno vytvářet moderní řešení. Podívejme se nad websockety: protože jsou založeny na událostech - každá ze spojených jednotek - uživatel a server - může paralelně vysílat a přijímat události. Pokud je kód, který tuto aplikaci pohání, dostatečně asynchronní a neblokuje hlavní vlákno, můžeme snadno zpracovat tisíce požadavků v krátkém čase.

Porovnejme JS a PHP s kontextem webových zásuvek. PHP je synchronní programovací jazyk, takže řešení témat websocketů způsobuje velké bolesti hlavy. Vidíme, že PHP získává vzory z JS pro vytváření interaktivních backendových aplikací, které mohou využívat moderní technologie, jako je webrtc nebo websockets.

Vše smíchejte dohromady

Když shrneme všechny odstavce, můžeme uvést několik skutečností:

JavaScript je jazyk, který lze použít k vytváření nejrůznějších aplikací - od webových přes mobilní až po desktopové;
Aplikace napsané v JS mohou mezi sebou sdílet různé fragmenty kódu, například ty, které jsou zodpovědné za formátování dat nebo typy v Typescriptu;
Díky rozvoji webu je výkon, který JS nabízí, dostatečně dobrý na to, abyste se rozhodli pro vývoj frontendových i backendových aplikací;
Díky své neobvyklé konstrukci je JavaScript schopen podporovat moderní aplikační infrastruktury, jako jsou websockety a WebRTC;
Najmete-li vhodně kvalifikovaného vývojáře, můžete využít jeho potenciál na všech dostupných frontendech, které tento jazyk pohání;
JS je jazyk, který již několik let stoupá v žebříčcích oblíbenosti, a nic nenasvědčuje tomu, že by se to mělo změnit.

Abych vyjádřil svůj názor, který je sice neobjektivní - využití možnosti opakovaného použití stejného kódu na všech dostupných frontách v JavaScript je něco, co jistě urychlí vývoj aplikací a sníží počet vývojářů, kteří se podílejí na údržbě backendu aplikací napsaných v jiných technologiích. Jako potvrzení si připomeňme skutečnost, že obrovské množství takzvaných IT gigantů se tímto vzorem řídí a sdílí poměrně velkou část kódové základny napříč platformami. Navzdory různým názorům na tento jazyk je třeba vzít v úvahu skutečnost, že statistiky používání a spokojenosti s používáním jazyka JS rok od roku roste a jeho vývojáři se mohou snadno napojit na trend full stack.

Poradenství v oblasti vývoje digitálních produktů

Přečtěte si více:

Proč byste (pravděpodobně) měli používat Typescript

Jak nezničit projekt špatnými kódovacími postupy?

Strategie načítání dat v NextJS

Související články

Ilustrace zdravotnické aplikace pro chytré telefony s ikonou srdce a rostoucím zdravotním grafem, označená logem The Codest, která představuje digitální zdraví a řešení HealthTech.
Vývoj softwaru

Softwarové vybavení pro zdravotnictví: a případy použití

Nástroje, na které se dnes zdravotnické organizace spoléhají, se v ničem nepodobají papírovým kartám z doby před desítkami let. zdravotnický software dnes podporuje zdravotnické systémy, péči o pacienty a moderní poskytování zdravotní péče v klinických a...

NEJKRÁSNĚJŠÍ
Abstraktní ilustrace klesajícího sloupcového grafu se stoupající šipkou a zlatou mincí symbolizující efektivitu nákladů nebo úspory. V levém horním rohu se zobrazuje logo The Codest se sloganem "In Code We Trust" na světle šedém pozadí.
Vývoj softwaru

Jak rozšířit tým vývojářů bez ztráty kvality produktu

Zvětšujete svůj vývojový tým? Zjistěte, jak růst, aniž byste museli obětovat kvalitu produktu. Tento průvodce se zabývá příznaky, že je čas na škálování, strukturou týmu, najímáním zaměstnanců, vedením a nástroji - a také tím, jak může The Codest...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

Vytváření webových aplikací odolných vůči budoucnosti: postřehy týmu odborníků The Codest

Zjistěte, jak společnost The Codest vyniká při vytváření škálovatelných, interaktivních webových aplikací pomocí nejmodernějších technologií, které poskytují bezproblémové uživatelské prostředí na všech platformách. Zjistěte, jak naše odborné znalosti podporují digitální transformaci a obchodní...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

10 nejlepších lotyšských společností zabývajících se vývojem softwaru

V našem nejnovějším článku se dozvíte o nejlepších lotyšských společnostech zabývajících se vývojem softwaru a jejich inovativních řešeních. Zjistěte, jak mohou tito technologičtí lídři pomoci pozvednout vaše podnikání.

thecodest
Podniková a škálovací řešení

Základy vývoje softwaru v jazyce Java: A Guide to Outsourcing Successfully

Prozkoumejte tuto základní příručku o úspěšném vývoji softwaru outsourcing Java, abyste zvýšili efektivitu, získali přístup k odborným znalostem a dosáhli úspěchu projektu s The Codest.

thecodest

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

    cs_CZCzech
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech