{"id":30874,"date":"2019-10-31T21:37:54","date_gmt":"2019-10-31T18:37:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij\/"},"modified":"2019-10-31T21:37:54","modified_gmt":"2019-10-31T18:37:54","slug":"cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij","title":{"rendered":"Kontroln\u00ed seznam pro vytv\u00e1\u0159en\u00ed a publikaci webov\u00fdch aplikac\u00ed","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>K vytvo\u0159en\u00ed vlastn\u00edho webov\u00e9ho aplikace dnes nesta\u010d\u00ed pouze um\u011bt ji vyv\u00edjet. D\u016fle\u017eit\u00fdm aspektem je nastaven\u00ed n\u00e1stroj\u016f pro nasazen\u00ed aplikace, monitorov\u00e1n\u00ed a tak\u00e9 management a administrace prost\u0159ed\u00ed, ve kter\u00e9m b\u011b\u017e\u00ed. Era manu\u00e1ln\u00edho nasazen\u00ed se odsunuje do zapomn\u011bn\u00ed, i pro mal\u00e9 projekty mohou automatiza\u010dn\u00ed n\u00e1stroje p\u0159in\u00e9st v\u00fdrazn\u00e9 v\u00fdhody. P\u0159i ru\u010dn\u00edm nasazen\u00ed \u010dasto zapom\u00edn\u00e1me p\u0159ev\u00e9st n\u011bco, zohlednit n\u011bjak\u00fd detail, spustit zapomenut\u00fd test; tento seznam by mohl pokra\u010dovat docela dlouho. <\/p>\n<p>Tento \u010dl\u00e1nek m\u016f\u017ee pomoci t\u011bm, kte\u0159\u00ed se teprve u\u010d\u00ed z\u00e1klady vytv\u00e1\u0159en\u00ed webov\u00fdch aplikac\u00ed a cht\u011bj\u00ed se trochu orientovat v z\u00e1kladn\u00edch pojmech a konvenc\u00edch.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nTak\u017ee budov\u00e1n\u00ed aplikac\u00ed lze rozd\u011blit na dv\u011b \u010d\u00e1sti: to, co se t\u00fdk\u00e1 k\u00f3du aplikace, a to, co se t\u00fdk\u00e1 prost\u0159ed\u00ed, ve kter\u00e9m tento k\u00f3d b\u011b\u017e\u00ed. K\u00f3d aplikace se rovn\u011b\u017e d\u011bl\u00ed na serverov\u00fd (ten, kter\u00fd b\u011b\u017e\u00ed na serveru, \u010dasto: obchodn\u00ed logika, autorizace, uchov\u00e1v\u00e1n\u00ed dat atd.) a na klientsk\u00fd (ten, kter\u00fd b\u011b\u017e\u00ed na u\u017eivatelsk\u00e9m za\u0159\u00edzen\u00ed: \u010dasto u\u017eivatelsk\u00e9 rozhran\u00ed a s n\u00edm spojen\u00e1 logika). <\/p>\n<p>Za\u010dn\u011bme asi s prost\u0159ed\u00edm. <\/p>\n<p>Z\u00e1kladem pro pr\u00e1ci jak\u00e9hokoli k\u00f3du, syst\u00e9mu nebo softwaru je opera\u010dn\u00ed syst\u00e9m, proto se pod\u00edv\u00e1me na nejpopul\u00e1rn\u011bj\u0161\u00ed syst\u00e9my dostupn\u00e9 na trhu hostingu a poskytneme jim kr\u00e1tk\u00fd popis: <\/p>\n<p><i>Windows Server<\/i> \u2013 to je ona Windows, ale v serverov\u00e9 variant\u011b. N\u011bkter\u00e9 funkce dostupn\u00e9 v klientsk\u00e9 (b\u011b\u017en\u00e9) verzi Windows zde chyb\u00ed, nap\u0159\u00edklad n\u011bkter\u00e9 slu\u017eby pro sb\u011br statistik a podobn\u00fd software, ale existuje soubor utilit pro spr\u00e1vu s\u00edt\u011b a z\u00e1kladn\u00ed software pro nasazen\u00ed <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/\"   title=\"servery\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1298\">servery<\/a> (web, ftp, \u2026). Celkov\u011b vzato, Windows Server vypad\u00e1 jako b\u011b\u017en\u00e1 Windows, klekne jako b\u011b\u017en\u00e1 Windows, ale stoj\u00ed dvakr\u00e1t v\u00edce ne\u017e jej\u00ed b\u011b\u017en\u00e1 varianta. Nicm\u00e9n\u011b, vezmeme-li v \u00favahu, \u017ee aplikaci nasad\u00edte pravd\u011bpodobn\u011b na dedikovan\u00e9m\/virtu\u00e1ln\u00edm serveru, kone\u010dn\u00e1 cena pro v\u00e1s sice m\u016f\u017ee vzr\u016fst, ale ne kriticky. Proto\u017ee platforma Windows dominuje trhu koncov\u00fdch OS, jej\u00ed serverov\u00e1 edice bude v\u011bt\u0161in\u011b u\u017eivatel\u016f nejzn\u00e1m\u011bj\u0161\u00ed. <\/p>\n<p><i>Unix<\/i>-podobn\u00fd syst\u00e9m. Tradi\u010dn\u00ed pr\u00e1ce v t\u011bchto syst\u00e9mech nep\u0159edpokl\u00e1d\u00e1 p\u0159\u00edtomnost b\u011b\u017en\u00e9ho grafick\u00e9ho rozhran\u00ed, nab\u00edzej\u00edc\u00ed u\u017eivateli jako prvek ovl\u00e1d\u00e1n\u00ed pouze konzoli. Pro nezku\u0161en\u00e9ho u\u017eivatele m\u016f\u017ee pr\u00e1ce v takov\u00e9m form\u00e1tu p\u0159edstavovat obt\u00ed\u017e, co\u017e je jen jedna z v\u00fdzev, kter\u00e9 p\u0159edstavuje pom\u011brn\u011b popul\u00e1rn\u00ed textov\u00fd editor. <i>Vim<\/i>, ot\u00e1zka souvisej\u00edc\u00ed s t\u00edmto za 6 let nabrala ji\u017e v\u00edce ne\u017e 1,8 milionu zhl\u00e9dnut\u00ed. Hlavn\u00edmi distribucemi (edic\u00ed) t\u00e9to rodiny jsou: Debian \u2014 popul\u00e1rn\u00ed distribuce, verze bal\u00ed\u010dk\u016f v n\u011bm jsou orientov\u00e1ny p\u0159edev\u0161\u00edm na LTS (<i>Long Term Support <\/i>\u2013 podpora po dlouhou dobu), co\u017e se projevuje v pom\u011brn\u011b vysok\u00e9 spolehlivosti a stabilit\u011b syst\u00e9mu a bal\u00ed\u010dk\u016f; <i>Ubuntu<\/i> \u2013 obsahuje distribuce v\u0161ech bal\u00ed\u010dk\u016f v jejich posledn\u00edch verz\u00edch, co\u017e m\u016f\u017ee m\u00edt vliv na stabilitu, ale umo\u017e\u0148uje vyu\u017e\u00edvat funkce dod\u00e1van\u00e9 s nov\u00fdmi verzemi; <i>Red Hat Enterprise Linux \u2013 OS<\/i>, kter\u00e1 je ur\u010dena pro komer\u010dn\u00ed pou\u017eit\u00ed, je zpoplatn\u011bn\u00e1, av\u0161ak zahrnuje podporu od dodavatel\u016f softwaru, n\u011bkter\u00e9 propriet\u00e1rn\u00ed bal\u00ed\u010dky a bal\u00ed\u010dky ovlada\u010d\u016f; <i>CentOS \u2013 opensource <\/i>varianta Red Hat Enterprise Linux, li\u0161\u00ed se absenc\u00ed propriet\u00e1rn\u00edch bal\u00ed\u010dk\u016f a podpory. <\/p>\n<p>Pro ty, kte\u0159\u00ed se teprve seznamuj\u00ed s touto oblast\u00ed, moji doporu\u010den\u00ed budou syst\u00e9my <i>Windows Server<\/i>, nebo <i>Ubuntu<\/i>. Pokud zva\u017eujeme Windows, pak je to p\u0159edev\u0161\u00edm zn\u00e1most syst\u00e9mu, <i>Ubuntu<\/i> \u2013 v\u011bt\u0161\u00ed tolerance k aktualizac\u00edm, a t\u00edm m\u00e9n\u011b probl\u00e9m\u016f nap\u0159\u00edklad p\u0159i spu\u0161t\u011bn\u00ed projekt\u016f na technologi\u00edch vy\u017eaduj\u00edc\u00edch nov\u00e9 verze. <\/p>\n<p>Tak\u017ee, po ur\u010den\u00ed OS, p\u0159ejdeme k souboru n\u00e1stroj\u016f, kter\u00e9 umo\u017e\u0148uj\u00ed deploy (instalaci), aktualizaci a sledov\u00e1n\u00ed stavu aplikace nebo jej\u00edch \u010d\u00e1st\u00ed na serveru. <\/p>\n<p>Dal\u0161\u00edm d\u016fle\u017eit\u00fdm rozhodnut\u00edm bude \u2013 um\u00edst\u011bn\u00ed va\u0161\u00ed aplikace a serveru pro ni. V sou\u010dasn\u00e9 dob\u011b jsou nejobl\u00edben\u011bj\u0161\u00edmi 3 cesty: <\/p>\n<ul>\n<li>Hosting (dr\u017een\u00ed) serveru u sebe, samostatn\u011b \u2013 nejv\u00edce rozpo\u010dtov\u00e1 varianta, ale budete pot\u0159ebovat objednat od poskytovatele statick\u00fd IP, aby se v\u00e1\u0161 zdroj nem\u011bnil s \u010dasem. \n <\/li>\n<li>Pron\u00e1jem Vyhrazen\u00e9ho Serveru (VDS) \u2013 a samostatn\u011b se v\u011bnovat jeho administraci a \u0161k\u00e1lov\u00e1n\u00ed z\u00e1t\u011b\u017e\u00ed. \n<\/li>\n<li>Zapla\u0165te (\u010dasto je zde mo\u017enost bezplatn\u00e9ho vyzkou\u0161en\u00ed funkc\u00ed platformy) p\u0159edplatn\u00e9 na n\u011bjak\u00e9m cloudov\u00e9m hostingu, kde je b\u011b\u017en\u00fd model platby za pou\u017eit\u00ed zdroj\u016f. Nejv\u00fdrazn\u011bj\u0161\u00edmi z\u00e1stupci tohoto sm\u011bru jsou: Amazon AWS (nab\u00edz\u00ed bezplatn\u00fd rok pou\u017e\u00edv\u00e1n\u00ed slu\u017eeb, ale s m\u011bs\u00ed\u010dn\u00edm limitem), Google Cloud (nab\u00edz\u00ed kredit 300 $ na \u00fa\u010det, kter\u00fd lze utratit b\u011bhem roku za cloudov\u00e9 slu\u017eby <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/\"   title=\"hostingu\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2392\">hostingu<\/a>), Yandex.\u041e\u0431\u043b\u0430\u043a\u043e (nab\u00edz\u00ed 4000 rubl\u016f na 2 m\u011bs\u00edce), Microsoft Azure (nab\u00edz\u00ed bezplatn\u00fd p\u0159\u00edstup k popul\u00e1rn\u00edm slu\u017eb\u00e1m na rok a 12 500 rubl\u016f na jak\u00e9koli slu\u017eby po dobu jednoho m\u011bs\u00edce). Takto m\u016f\u017eete vyzkou\u0161et kter\u00e9hokoli z t\u011bchto poskytovatel\u016f, ani\u017e byste utratili jedinou korunu, a p\u0159itom si ud\u011blat p\u0159edstavu o kvalit\u011b a \u00farovni poskytovan\u00fdch slu\u017eeb. \n<\/li>\n<\/ul>\n<p>\nV z\u00e1vislosti na vybran\u00e9 cest\u011b se d\u00e1le zm\u011bn\u00ed pouze fakt, na kom v\u011bt\u0161inou le\u017e\u00ed odpov\u011bdnost za ur\u010ditou oblast administrace. Pokud host\u00edte sami, mus\u00edte ch\u00e1pat, \u017ee ve\u0161ker\u00e9 probl\u00e9my s elekt\u0159inou, internetem, samotn\u00fdm serverem, softwarem, kter\u00fd na n\u011bm m\u00e1te nainstalovan\u00fd \u2013 to v\u0161e zcela le\u017e\u00ed na va\u0161ich bedrech. Nicm\u00e9n\u011b pro u\u010den\u00ed a testov\u00e1n\u00ed je to v\u00edc ne\u017e dosta\u010duj\u00edc\u00ed. <\/p>\n<p>Pokud v\u0161ak nem\u00e1te k dispozici \u017e\u00e1dn\u00fd dal\u0161\u00ed stroj, kter\u00fd by mohl slou\u017eit jako server, budete cht\u00edt vyu\u017e\u00edt druhou nebo t\u0159et\u00ed cestu. Druh\u00e1 mo\u017enost je shodn\u00e1 s prvn\u00ed, s t\u00edm rozd\u00edlem, \u017ee p\u0159esouv\u00e1te odpov\u011bdnost za dostupnost serveru a jeho v\u00fdkon na hostitele. Administrace serveru a softwaru st\u00e1le z\u016fst\u00e1v\u00e1 pod va\u0161\u00edm kontrolou. <\/p>\n<p>A nakonec mo\u017enost pron\u00e1jmu kapacit cloudov\u00fdch poskytovatel\u016f. Zde m\u016f\u017eete nastavit automatizovanou spr\u00e1vu prakticky \u010dehokoliv, ani\u017e byste se p\u0159\u00edli\u0161 zab\u00fdvali technick\u00fdmi detaily. Krom\u011b toho m\u016f\u017eete m\u00edt m\u00edsto jednoho stroje n\u011bkolik paraleln\u011b spu\u0161t\u011bn\u00fdch instanc\u00ed (p\u0159\u00edklad\u016f), kter\u00e9 mohou nap\u0159\u00edklad odpov\u00eddat za r\u016fzn\u00e9 \u010d\u00e1sti aplikace, p\u0159i\u010dem\u017e se cenov\u011b p\u0159\u00edli\u0161 neli\u0161\u00ed od vlastn\u011bn\u00ed dedikovan\u00e9ho serveru. A tak\u00e9 zde najdete n\u00e1stroje pro orchestraci, kontejnerizaci, automatick\u00e9 nasazen\u00ed, nep\u0159etr\u017eitou integraci a mnoho dal\u0161\u00edho! N\u011bkter\u00e9 z t\u011bchto v\u011bc\u00ed probereme n\u00ed\u017ee. <\/p>\n<p>Obecn\u011b plat\u00ed, \u017ee infrastruktura serveru vypad\u00e1 takto: m\u00e1me takzvan\u00e9ho \u201eorchestr\u00e1tora\u201c (orchestraci \u2013 proces \u0159\u00edzen\u00ed n\u011bkolika instanc\u00ed server\u016f), kter\u00fd spravuje zm\u011bny prost\u0159ed\u00ed na instanci serveru, kontejner virtualizace (voliteln\u00fd, ale \u010dasto pou\u017e\u00edvan\u00fd), kter\u00fd umo\u017e\u0148uje rozd\u011blit aplikaci na izolovan\u00e9 logick\u00e9 vrstvy, a software pro kontinu\u00e1ln\u00ed integraci \u2013 umo\u017e\u0148uj\u00edc\u00ed aktualizaci nahran\u00e9ho k\u00f3du pomoc\u00ed \u201eskript\u016f\u201c. <\/p>\n<p>A tak\u017ee orchestraci v\u00e1m umo\u017e\u0148uje vid\u011bt stavy server\u016f, prov\u00e1d\u011bt \u201enasazen\u00ed\u201c nebo \u201evr\u00e1cen\u00ed\u201c aktualizac\u00ed prost\u0159ed\u00ed serveru a tak d\u00e1le. Na za\u010d\u00e1tku se v\u00e1s tento aspekt pravd\u011bpodobn\u011b moc net\u00fdk\u00e1, proto\u017ee abyste mohli n\u011bco orchestraci, mus\u00edte m\u00edt n\u011bkolik server\u016f (m\u016f\u017eete m\u00edt i jeden, ale k \u010demu to je?), a aby bylo n\u011bkolik server\u016f, mus\u00edte m\u00edt pot\u0159ebu. Z n\u00e1stroj\u016f v t\u00e9to oblasti je v \u00fastech v\u011bt\u0161inou Kubernetes, vyvinut\u00fd <i>Google<\/i>. <\/p>\n<p>Dal\u0161\u00ed \u00farove\u0148 je virtualizace na \u00farovni OS. V sou\u010dasnosti se \u0161iroce roz\u0161\u00ed\u0159il pojem \u201edockerizace\u201c, kter\u00fd vznikl z n\u00e1stroje <i>Docker<\/i>, kter\u00fd poskytuje funk\u010dnost izolovan\u00fdch kontejner\u016f, kter\u00e9 v\u0161ak b\u011b\u017e\u00ed v r\u00e1mci jednoho opera\u010dn\u00edho syst\u00e9mu. Co to znamen\u00e1: v ka\u017ed\u00e9m z t\u011bchto kontejner\u016f lze spustit aplikaci nebo dokonce sadu aplikac\u00ed, kter\u00e9 se budou domn\u00edvat, \u017ee jsou jedin\u00e9 v cel\u00e9m opera\u010dn\u00edm syst\u00e9mu, ani\u017e by tu\u0161ily o existenci jin\u00fdch na dan\u00e9m stroji. Tato funkce je velmi u\u017eite\u010dn\u00e1 jak pro spu\u0161t\u011bn\u00ed stejn\u00fdch aplikac\u00ed r\u016fzn\u00fdch verz\u00ed, tak pro konfliktn\u00ed aplikace, a tak\u00e9 pro rozd\u011blen\u00ed \u010d\u00e1st\u00ed aplikace na vrstvy. Tento otisk vrstev lze pot\u00e9 zapsat do obrazu, kter\u00fd lze pou\u017e\u00edt nap\u0159\u00edklad pro nasazen\u00ed aplikace. To znamen\u00e1, \u017ee p\u0159i instalaci tohoto obrazu a nasazen\u00ed kontejner\u016f, kter\u00e9 obsahuje, z\u00edsk\u00e1te p\u0159ipraven\u00e9 prost\u0159ed\u00ed pro spu\u0161t\u011bn\u00ed Va\u0161\u00ed aplikace! Na za\u010d\u00e1tku m\u016f\u017eete tento n\u00e1stroj vyu\u017e\u00edt jak pro sezn\u00e1men\u00ed se, tak pro z\u00edsk\u00e1n\u00ed skute\u010dn\u00e9ho prosp\u011bchu, roz\u010dlen\u011bn\u00edm logiky aplikace na r\u016fzn\u00e9 vrstvy. Ale je t\u0159eba \u0159\u00edci, \u017ee dockerizace nen\u00ed pot\u0159eba pro ka\u017ed\u00e9ho a ne v\u017edy. Dockerizace m\u00e1 smysl v p\u0159\u00edpadech, kdy je aplikace <\/p>\n<p>fragmentovan\u00e1<i>CI \u2013 Continuous Integration<\/i>). Hlavn\u00edmi n\u00e1stroji v t\u00e9to oblasti jsou v sou\u010dasnosti Jenkins (n\u00e1stroj pro CI napsan\u00fd v Jav\u011b, na za\u010d\u00e1tku se m\u016f\u017ee zd\u00e1t pon\u011bkud slo\u017eit\u00fd), <i>Travis CI<\/i> (napsan\u00fd v Ruby, subjektivn\u011b trochu snadn\u011bj\u0161\u00ed <i>Jenkins\u2019u<\/i>, nicm\u00e9n\u011b i zde jsou pot\u0159ebn\u00e9 ur\u010dit\u00e9 znalosti v oblasti nastaven\u00ed nasazen\u00ed), <i>Gitlab CI<\/i> (napsan\u00fd v <i>Ruby a Go<\/i>). <\/p>\n<p>Tak tedy, pot\u00e9, co jsme mluvili o prost\u0159ed\u00ed, ve kter\u00e9m bude Va\u0161e aplikace pracovat, je \u010das se kone\u010dn\u011b pod\u00edvat, jak\u00e9 n\u00e1stroje n\u00e1m modern\u00ed sv\u011bt nab\u00edz\u00ed pro vytv\u00e1\u0159en\u00ed t\u011bchto aplikac\u00ed. <\/p>\n<p>Za\u010dn\u011bme se z\u00e1kladem:<i> Backend pl\u00e1novali ud\u011blat na Linuxu. Backend interaguje s DB, na\u010d\u00edt\u00e1 pot\u0159ebn\u00fd seznam privilegi\u00ed a pot\u00e9, v z\u00e1vislosti na tom, jak\u00e1 privilegium m\u00e1 autorizovan\u00fd u\u017eivatel, poskytuje p\u0159\u00edstup k podepisov\u00e1n\u00ed finan\u010dn\u00edch dokument\u016f a jejich zas\u00edl\u00e1n\u00ed k realizaci, nebo generaci n\u011bjak\u00e9 zpr\u00e1vy.<\/i> (backend) \u2013 serverov\u00e1 \u010d\u00e1st. V\u00fdb\u011br jazyka, sady z\u00e1kladn\u00edch funkc\u00ed a p\u0159eddefinovan\u00e9 struktury (frameworku) z\u00e1vis\u00ed hlavn\u011b na osobn\u00edch preferenc\u00edch, ale p\u0159esto stoj\u00ed za zm\u00ednku k \u00favaze (n\u00e1zor autora ohledn\u011b jazyk\u016f je dost subjektivn\u00ed, i kdy\u017e m\u00e1 ambici na nezaujat\u00fd popis): <\/p>\n<ul>\n<li>Python \u2013 jazyk, kter\u00fd je dost p\u0159\u00edv\u011btiv\u00fd pro nezku\u0161en\u00e9 u\u017eivatele, odpou\u0161t\u00ed n\u011bkter\u00e9 chyby, ale z\u00e1rove\u0148 m\u016f\u017ee b\u00fdt dost p\u0159\u00edsn\u00fd na v\u00fdvoj\u00e1\u0159e, aby se vyhnul \u0161patn\u00fdm praktik\u00e1m. U\u017e je dost vyvinut\u00fd a rozmyslen\u00fd, pojmenovan\u00fd v roce 1991. \n<\/li>\n<li>Go \u2013 jazyk od spole\u010dnosti Google, tak\u00e9 dost p\u0159\u00edv\u011btiv\u00fd a pohodln\u00fd, dost snadno zkompilovateln\u00fd do spustiteln\u00e9ho souboru na jak\u00e9koliv platform\u011b. M\u016f\u017ee b\u00fdt jednoduch\u00fd a p\u0159\u00edjemn\u00fd, ale tak\u00e9 slo\u017eit\u00fd a v\u00e1\u017en\u00fd. Je \u010derstv\u00fd a mlad\u00fd, ve\u0161el na sc\u00e9nu relativn\u011b ned\u00e1vno, v roce 2009. <\/li>\n<li>Rust \u2013 je o n\u011bco star\u0161\u00ed ne\u017e jeho p\u0159edch\u016fdce, vydan\u00fd v roce 2006, st\u00e1le dost mlad\u00fd ve srovn\u00e1n\u00ed se sv\u00fdmi prot\u011bj\u0161ky. Je orientov\u00e1n na zku\u0161en\u011bj\u0161\u00ed v\u00fdvoj\u00e1\u0159e, i kdy\u017e se st\u00e1le sna\u017e\u00ed vy\u0159e\u0161it mnoho n\u00edzko\u00farov\u0148ov\u00fdch \u00fakol\u016f za program\u00e1tora.<\/li>\n<li>Java \u2013 veter\u00e1n komer\u010dn\u00edho v\u00fdvoje, kter\u00fd se objevil v roce 1995, je jedn\u00edm z nej\u010dast\u011bji pou\u017e\u00edvan\u00fdch jazyk\u016f p\u0159i v\u00fdvoji podnikov\u00fdch aplikac\u00ed v sou\u010dasnosti. S jeho z\u00e1kladn\u00edmi koncepty a slo\u017eitou konfigurac\u00ed prost\u0159ed\u00ed pro spu\u0161t\u011bn\u00ed se m\u016f\u017ee pro nov\u00e1\u010dka st\u00e1t dost n\u00e1ro\u010dn\u00fdm. <\/li>\n<li>ASP.net \u2013 platforma pro v\u00fdvoj aplikac\u00ed, kterou vydala spole\u010dnost Microsoft. K naps\u00e1n\u00ed funkcionality se v\u011bt\u0161inou pou\u017e\u00edv\u00e1 jazyk C# (vyslovuje se C\u00ed \u0160arp), kter\u00fd se objevil v roce 2000. Co se t\u00fd\u010de slo\u017eitosti, je srovnateln\u00fd s \u00farovn\u00ed mezi Javou a Rustem. <\/li>\n<li>PHP \u2013 p\u016fvodn\u011b pou\u017e\u00edvan\u00fd pro preprocessing HTML, v sou\u010dasnosti sice st\u00e1le dr\u017e\u00ed absolutn\u00ed veden\u00ed na trhu jazyk\u016f, ale zaznamen\u00e1v\u00e1 se trend poklesu jeho u\u017e\u00edv\u00e1n\u00ed. Vynik\u00e1 n\u00edzkou p\u0159ek\u00e1\u017ekou pro vstup, jednoduchost\u00ed psan\u00ed k\u00f3du, ale z\u00e1rove\u0148 p\u0159i v\u00fdvoji dost velk\u00fdch aplikac\u00ed m\u016f\u017ee b\u00fdt jeho funkcionalita nedostate\u010dn\u00e1. <\/li>\n<\/ul>\n<p>\nA fin\u00e1ln\u00ed \u010d\u00e1st na\u0161\u00ed aplikace \u2013 nejv\u00edce hmatateln\u00e1 pro u\u017eivatele \u2013 <i>Frontend<\/i> (frontend) \u2013 je tv\u00e1\u0159\u00ed va\u0161\u00ed aplikace, pr\u00e1v\u011b s touto \u010d\u00e1st\u00ed interaguje u\u017eivatel p\u0159\u00edmo. <\/p>\n<p>Bez podrobnost\u00ed, modern\u00ed frontend se op\u00edr\u00e1 o t\u0159i pil\u00ed\u0159e, r\u00e1mce (a ne tak \u00fapln\u011b), pro vytv\u00e1\u0159en\u00ed u\u017eivatelsk\u00fdch rozhran\u00ed. Odpov\u00eddaj\u00edc\u00edm zp\u016fsobem jsou t\u0159i nejpopul\u00e1rn\u011bj\u0161\u00ed: <\/p>\n<ul>\n<li>ReactJS \u2013 nen\u00ed to r\u00e1mec, ale knihovna. Vlastn\u011b se od hrd\u00e9ho titulu r\u00e1mce li\u0161\u00ed pouze absenc\u00ed n\u011bkter\u00fdch funkc\u00ed \u201eout of the box\u201c a pot\u0159ebou je nainstalovat manu\u00e1ln\u011b. Tak\u017ee existuje n\u011bkolik variant \u201ep\u0159\u00edpravy\u201c t\u00e9to knihovny, kter\u00e9 tvo\u0159\u00ed sv\u00e9bytn\u00e9 r\u00e1my. Pro nov\u00e1\u010dka m\u016f\u017ee b\u00fdt pon\u011bkud komplikovan\u00fd, kv\u016fli n\u011bkter\u00fdm z\u00e1kladn\u00edm princip\u016fm a relativn\u011b agresivn\u00edmu nastaven\u00ed build prost\u0159ed\u00ed. Nicm\u00e9n\u011b pro rychl\u00fd start m\u016f\u017eete vyu\u017e\u00edt bal\u00ed\u010dek \u201ecreate-react-app\u201c.<\/li>\n<li>VueJS \u2013 r\u00e1mec pro vytv\u00e1\u0159en\u00ed u\u017eivatelsk\u00fdch rozhran\u00ed. Z t\u00e9to trojice pr\u00e1vem z\u00edsk\u00e1v\u00e1 titul nejp\u0159\u00e1tel\u0161t\u011bj\u0161\u00edho k u\u017eivateli r\u00e1mce, proto\u017ee pro v\u00fdvoj ve Vue je vstupn\u00ed pr\u00e1h ni\u017e\u0161\u00ed ne\u017e u ostatn\u00edch zmi\u0148ovan\u00fdch koleg\u016f. Krom\u011b toho je z nich nejmlad\u0161\u00ed. <\/li>\n<li>Angular \u2013 pova\u017euje se za nejt\u011b\u017e\u0161\u00ed z uveden\u00fdch r\u00e1mc\u016f, jedin\u00fd vy\u017eaduje p\u0159\u00edtomnost <i>TypeScript<\/i> (nadstavba jazyka Javascript). \u010casto se pou\u017e\u00edv\u00e1 pro v\u00fdvoj velk\u00fdch podnikov\u00fdch aplikac\u00ed. <\/li>\n<\/ul>\n<p>\nShrnuj\u00edc v\u00fd\u0161e uveden\u00e9, lze dosp\u011bt k z\u00e1v\u011bru, \u017ee nyn\u00ed se nasazen\u00ed aplikace radik\u00e1ln\u011b li\u0161\u00ed od toho, jak tento proces prob\u00edhal d\u0159\u00edve. Nicm\u00e9n\u011b nikdo nebr\u00e1n\u00ed prov\u00e1d\u011bt \u201edeploy\u201c po staru. Ale stoj\u00ed ta trochu u\u0161et\u0159en\u00e9ho \u010dasu na za\u010d\u00e1tku za to obrovsk\u00e9 mno\u017estv\u00ed p\u0159ek\u00e1\u017eek, na kter\u00e9 naraz\u00ed v\u00fdvoj\u00e1\u0159, kter\u00fd si tuto cestu zvolil? Mysl\u00edm, \u017ee odpov\u011b\u010f je \u201ene\u201c. Kdy\u017e str\u00e1v\u00edte trochu v\u00edce \u010dasu sezn\u00e1men\u00edm se s t\u011bmito n\u00e1stroji (a v\u011bt\u0161\u00ed \u010das str\u00e1vit nepot\u0159ebujete, proto\u017ee mus\u00edte pochopit, zda jsou pro v\u00e1\u0161 aktu\u00e1ln\u00ed projekt pot\u0159eba, \u010di nikoliv), m\u016f\u017eete tento \u010das z\u00edskat zp\u011bt a v\u00fdznamn\u011b tak zkr\u00e1tit nap\u0159\u00edklad p\u0159\u00edpady z\u00e1hadn\u00fdch chyb, kter\u00e9 z\u00e1vis\u00ed na prost\u0159ed\u00ed a objevuj\u00ed se pouze na produk\u010dn\u00edm serveru, no\u010dn\u00ed anal\u00fdzy, co vedlo k p\u00e1du serveru a pro\u010d se nespou\u0161t\u00ed, a mnoh\u00e9 dal\u0161\u00ed.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/446642\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. \u0412\u0430\u0436\u043d\u044b\u043c \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u042d\u0440\u0430 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 \u0437\u0430\u0431\u0432\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0435\u0441\u0442\u0438 \u043e\u0449\u0443\u0442\u0438\u043c\u0443\u044e \u043f\u043e\u043b\u044c\u0437\u0443. \u041f\u0440\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u00ab\u0440\u0443\u043a\u0430\u043c\u0438\u00bb, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043c\u044b \u043c\u043e\u0436\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30874","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0435\u043a\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:37:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kontroln\u00ed seznam pro vytv\u00e1\u0159en\u00ed a publikaci webov\u00fdch aplikac\u00ed | ProHoster","description":"Pro vytvo\u0159en\u00ed vlastn\u00edho webov\u00e9ho aplikace dnes u\u017e nesta\u010d\u00ed um\u011bt ji vyv\u00edjet.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0435\u043a\u043b\u0438\u0441\u0442 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 | ProHoster","og:description":"\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0435\u0431 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/cheklist-dlya-sozdaniya-i-publikatsii-veb-prilozhenij","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:37:54+00:00","article:modified_time":"2019-10-31T18:37:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30874","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 20:21:48","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:27:38","updated":"2026-02-09 20:21:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=30874"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30874\/revisions"}],"predecessor-version":[{"id":159642,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/30874\/revisions\/159642"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=30874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=30874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=30874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}