{"id":39071,"date":"2019-10-31T22:27:41","date_gmt":"2019-10-31T19:27:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/pochemu-polezno-izobretat-kolyosa\/"},"modified":"2019-10-31T22:27:41","modified_gmt":"2019-10-31T19:27:41","slug":"pochemu-polezno-izobretat-kolyosa","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/pochemu-polezno-izobretat-kolyosa","title":{"rendered":"Pro\u010d je u\u017eite\u010dn\u00e9 vynal\u00e9zat kola","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pro\u010d je u\u017eite\u010dn\u00e9 vynal\u00e9zat kola\" src=\"\/wp-content\/uploads\/2019\/10\/1067abfe7a3cdf764c49bbb0d5dd6d1b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNed\u00e1vno jsem vedl pohovor s v\u00fdvoj\u00e1\u0159em JavaScriptu, kter\u00fd se uch\u00e1zel o pozici seniora. Kolega, kter\u00fd se tak\u00e9 z\u00fa\u010dastnil pohovoru, po\u017e\u00e1dal kandid\u00e1ta, aby napsal funkci, kter\u00e1 provede HTTP po\u017eadavek, a v p\u0159\u00edpad\u011b ne\u00fasp\u011bchu se pokus\u00ed znovu n\u011bkolikr\u00e1t.<\/p>\n<p>K\u00f3d psal p\u0159\u00edmo na tabuli, tak\u017ee sta\u010dilo nakreslit n\u011bco p\u0159ibl\u00ed\u017en\u00e9ho. Kdyby pouze uk\u00e1zal, \u017ee dob\u0159e rozum\u00ed podstat\u011b v\u011bci, byli bychom spokojeni. Bohu\u017eel se mu v\u0161ak neda\u0159ilo naj\u00edt uspokojiv\u00e9 \u0159e\u0161en\u00ed. Pot\u00e9 jsme, p\u0159i\u010d\u00edtaje to nervozit\u011b, rozhodli \u00fakol trochu zjednodu\u0161it a po\u017e\u00e1dali ho, aby p\u0159em\u011bnil funkci s n\u00e1vratov\u00fdmi vol\u00e1n\u00edmi na funkci postavenou na promisech.<\/p>\n<p>Ale bohu\u017eel. Ano, bylo jasn\u00e9, \u017ee s takov\u00fdm k\u00f3dem se u\u017e d\u0159\u00edve setkal. V obecn\u00fdch rysech v\u011bd\u011bl, jak to funguje. Dostali bychom dostate\u010dn\u011b rozpracovan\u00e9 \u0159e\u0161en\u00ed, kter\u00e9 by demonstrovalo porozum\u011bn\u00ed konceptu. Nicm\u00e9n\u011b k\u00f3d, kter\u00fd kandid\u00e1t psal na tabuli, byl naprostou nesmyslnost\u00ed. M\u011bl naprosto nejasnou p\u0159edstavu o tom, co jsou promises v JavaScriptu a nedok\u00e1zal po\u0159\u00e1dn\u011b vysv\u011btlit, k \u010demu jsou dobr\u00e9. Pro juniory by to bylo je\u0161t\u011b omluviteln\u00e9, ale na pozici seniora u\u017e to nesta\u010dilo. Jak by ten v\u00fdvoj\u00e1\u0159 dok\u00e1zal odstranit chyby ve slo\u017eit\u00e9 \u0159et\u011bzec s promises a vysv\u011btlit ostatn\u00edm, co vlastn\u011b ud\u011blal?<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>V\u00fdvoj\u00e1\u0159i pova\u017euj\u00ed hotov\u00fd k\u00f3d za samoz\u0159ejmost.<\/h4>\n<p>\nV procesu v\u00fdvoje se neust\u00e1le setk\u00e1v\u00e1me s reprodukovateln\u00fdmi materi\u00e1ly. P\u0159en\u00e1\u0161\u00edme \u00faryvky k\u00f3du, abychom je nemuseli ka\u017edou chv\u00edli ps\u00e1t znovu. Soust\u0159ed\u00edme se tedy na kl\u00ed\u010dov\u00e9 \u010d\u00e1sti a na hotov\u00fd k\u00f3d, se kter\u00fdm pracujeme, se d\u00edv\u00e1me jako na n\u011bco samoz\u0159ejm\u00e9ho \u2013 zkr\u00e1tka p\u0159edpokl\u00e1d\u00e1me, \u017ee v n\u011bm v\u0161echno bude fungovat tak, jak m\u00e1.<\/p>\n<p>A obvykle to skute\u010dn\u011b funguje, ale kdy\u017e nastanou slo\u017eitosti, porozum\u011bn\u00ed jeho mechanice se v\u00edce ne\u017e vyplat\u00ed.<\/p>\n<p>Tak n\u00e1\u0161 kandid\u00e1t na pozici v\u00fdvoj\u00e1\u0159e seniora pova\u017eoval objekty promise za samoz\u0159ejm\u00e9. Pravd\u011bpodobn\u011b si p\u0159edstavoval, jak s nimi zach\u00e1zet, kdy\u017e se n\u011bkde ve ciz\u00edm k\u00f3du objev\u00ed, ale celkov\u00fd princip nech\u00e1pal a nedok\u00e1zal ho na pohovoru zopakovat. Mo\u017en\u00e1 si zapamatoval \u00faryvek zpam\u011bti \u2013 to nen\u00ed tak obt\u00ed\u017en\u00e9:<\/p>\n<pre><code class=\"javascript\">return new Promise((resolve, reject) =&gt; {\n  functionWithCallback((err, result) =&gt; {\n   return err ? reject(err) : resolve(result);\n  });\n});<\/code><\/pre>\n<p>\nTak\u00e9 jsem to tak d\u011blal \u2013 asi to d\u011blal ka\u017ed\u00fd z n\u00e1s n\u011bkdy. Jen jsme se nau\u010dili kus k\u00f3du, abychom ho pak pou\u017eili v pr\u00e1ci, p\u0159i\u010dem\u017e jsme si p\u0159itom p\u0159edstavovali jen v hrub\u00fdch rysech, jak to v\u0161echno funguje. Ale pokud by v\u00fdvoj\u00e1\u0159 skute\u010dn\u011b rozum\u011bl konceptu, nemusel by si nic pamatovat \u2013 jednodu\u0161e by v\u011bd\u011bl, jak to ud\u011blat, a bez pot\u00ed\u017e\u00ed by reprodukoval v\u0161e pot\u0159ebn\u00e9 v k\u00f3du.<\/p>\n<h4>Oslovte zdroje<\/h4>\n<p>\nV roce 2012, kdy je\u0161t\u011b nebyla dominace front-endov\u00fdch framework\u016f, vl\u00e1dl sv\u011btem jQuery, a j\u00e1 jsem \u010detl knihu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.manning.com\/books\/secrets-of-the-javascript-ninja\">Secrets of the JavaScript Ninja<\/a><\/noindex>, jej\u00edm\u017e autorem byl John Resig, tv\u016frce jQuery.<\/p>\n<p>Kniha u\u010d\u00ed \u010dten\u00e1\u0159e, jak vytvo\u0159it vlastn\u00ed jQuery od nuly a d\u00e1v\u00e1 jedine\u010dnou p\u0159\u00edle\u017eitost p\u0159ibl\u00ed\u017eit se my\u0161lenkov\u00e9mu procesu, kter\u00fd vedl k vytvo\u0159en\u00ed knihovny. V posledn\u00edch letech jQuery ztratila svou d\u0159\u00edv\u011bj\u0161\u00ed popularitu, ale tuto knihu opravdu doporu\u010duji. To, co m\u011b na n\u00ed nejv\u00edce p\u0159ekvapilo, bylo vytrval\u00e9 p\u0159esv\u011bd\u010den\u00ed, \u017ee bych na to v\u0161echno mohl p\u0159ij\u00edt s\u00e1m. Kroky, kter\u00e9 autor popisoval, se zd\u00e1ly b\u00fdt tak logick\u00e9, tak srozumiteln\u00e9, \u017ee jsem v\u00e1\u017en\u011b za\u010dal v\u011b\u0159it, \u017ee bych mohl snadno vytvo\u0159it jQuery, kdybych se do toho pustil.<\/p>\n<p>Samoz\u0159ejm\u011b, ve skute\u010dnosti bych nic podobn\u00e9ho nezvl\u00e1dl \u2013 myslel bych si, \u017ee je to nesm\u00edrn\u011b t\u011b\u017ek\u00e9. Vlastn\u00ed \u0159e\u0161en\u00ed by mi p\u0159ipadala p\u0159\u00edli\u0161 jednoduch\u00e1 a naivn\u00ed, aby fungovala, a vzdal bych to. Pova\u017eoval bych jQuery za samoz\u0159ejmou v\u011bc, v jej\u00ed\u017e spr\u00e1vnou funk\u010dnost je t\u0159eba prost\u011b slep\u011b v\u011b\u0159it. V budoucnu bych pravd\u011bpodobn\u011b netr\u00e1vil \u010das t\u00edm, abych se zab\u00fdval mechanikou t\u00e9to knihovny, ale prost\u011b bych ji pou\u017e\u00edval jako n\u011bjakou \u010dernou sk\u0159\u00ed\u0148ku.<\/p>\n<p>Ale sezn\u00e1men\u00ed s touto knihou ze m\u011b u\u010dinilo jin\u00e9ho \u010dlov\u011bka. Za\u010dal jsem se podrobn\u011b zab\u00fdvat zdrojov\u00fdm k\u00f3dem a zjistil, \u017ee realizace mnoha \u0159e\u0161en\u00ed je ve skute\u010dnosti velmi transparentn\u00ed, dokonce z\u0159ejm\u00e1. Ne, samoz\u0159ejm\u011b, p\u0159ij\u00edt na n\u011bco podobn\u00e9ho \u2013 to u\u017e je z jin\u00e9 opery. Ale pr\u00e1v\u011b studium ciz\u00edho k\u00f3du a replikace ji\u017e existuj\u00edc\u00edch \u0159e\u0161en\u00ed n\u00e1m pom\u00e1h\u00e1 vym\u00fd\u0161let n\u011bco vlastn\u00edho. <\/p>\n<p>Inspirace, kterou z\u00edsk\u00e1te, a vzory, kter\u00e9 za\u010dnete vn\u00edmat, v\u00e1s jako v\u00fdvoj\u00e1\u0159e zm\u011bn\u00ed. Zjist\u00edte, \u017ee ta skv\u011bl\u00e1 knihovna, kterou neust\u00e1le pou\u017e\u00edv\u00e1te a kterou jste si p\u0159ivykli pova\u017eovat za magick\u00fd artefakt, nefunguje na magii, ale prost\u011b \u0159e\u0161\u00ed probl\u00e9m stru\u010dn\u011b a vynal\u00e9zav\u011b.<\/p>\n<p>N\u011bkdy budete muset na k\u00f3dem pracovat a rozebrat ho krok za krokem, ale pr\u00e1v\u011b tak, kdy\u017e se posunujete mal\u00fdmi souvisl\u00fdmi kroky, budete moci zopakovat cestu autora k \u0159e\u0161en\u00ed. To v\u00e1m umo\u017en\u00ed hluboce se pono\u0159it do procesu psan\u00ed k\u00f3du a d\u00e1 v\u00e1m v\u00edce sebed\u016fv\u011bry p\u0159i nalezen\u00ed vlastn\u00edch \u0159e\u0161en\u00ed.<\/p>\n<p>Kdy\u017e jsem poprv\u00e9 za\u010dal pracovat s promisy, zd\u00e1lo se mi, \u017ee je to \u010dist\u00e1 magie. Pak jsem se dozv\u011bd\u011bl, \u017ee v jejich z\u00e1kladu jsou stejn\u00e9 zp\u011btn\u00e9 vol\u00e1n\u00ed, a m\u016fj program\u00e1torsk\u00fd sv\u011bt se zm\u011bnil. To znamen\u00e1, \u017ee vzor, jeho\u017e c\u00edlem je zbavit n\u00e1s zp\u011btn\u00fdch vol\u00e1n\u00ed, se s\u00e1m realizuje pomoc\u00ed zp\u011btn\u00fdch vol\u00e1n\u00ed?!<\/p>\n<p>Pomohlo mi to pod\u00edvat se na v\u011bc jin\u00fdma o\u010dima a uv\u011bdomit si, \u017ee p\u0159ed sebou nem\u00e1m n\u011bjak\u00e9 slo\u017eit\u00e9 kusy k\u00f3du, jejich\u017e extr\u00e9mn\u00ed slo\u017eitost nikdy v \u017eivot\u011b nepochop\u00edm. Jsou to prost\u011b vzory, se kter\u00fdmi se d\u00e1 bez probl\u00e9m\u016f vyrovnat s dostate\u010dnou zv\u011bdavost\u00ed a hloubkov\u00fdm pono\u0159en\u00edm. Pr\u00e1v\u011b tak se lid\u00e9 u\u010d\u00ed programovat a rostou jako v\u00fdvoj\u00e1\u0159i.<\/p>\n<h4>Znovu vynalezn\u011bte toto kolo<\/h4>\n<p>\nNebojte se tedy znovu vynal\u00e9zat kola: sami napi\u0161te k\u00f3d pro propojen\u00ed dat, vytvo\u0159te dom\u00e1c\u00ed promisy nebo si dokonce vyrobte vlastn\u00ed \u0159e\u0161en\u00ed pro spr\u00e1vu stav\u016f. <br \/>\nNen\u00ed d\u016fle\u017eit\u00e9, \u017ee t\u00edmto nikdo nikdy nebude pou\u017e\u00edvat \u2013 ale te\u010f u\u017e to um\u00edte. A pokud budete m\u00edt mo\u017enost n\u00e1sledn\u011b pou\u017e\u00edt takov\u00e9 v\u00fdtvory ve vlastn\u00edch projektech, bude to skv\u011bl\u00e9. M\u016f\u017eete je rozv\u00edjet a nau\u010d\u00edte se n\u011bco nov\u00e9ho.<\/p>\n<p>Smysl zde nespo\u010d\u00edv\u00e1 v tom, poslat sv\u016fj k\u00f3d do produkce, ale nau\u010dit se n\u011bco nov\u00e9ho. Samostatn\u00e9 naps\u00e1n\u00ed implementace ji\u017e existuj\u00edc\u00edho \u0159e\u0161en\u00ed je skv\u011bl\u00fd zp\u016fsob, jak se u\u010dit od nejlep\u0161\u00edch program\u00e1tor\u016f a zdokonalit sv\u00e9 dovednosti.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/digital-ecosystems\/blog\/472006\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430 JavaScript, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0441\u0435\u043d\u0438\u043e\u0440\u0430. \u041a\u043e\u043b\u043b\u0435\u0433\u0430, \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0432\u0448\u0438\u0439 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0430 HTTP \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437. \u041e\u043d \u043f\u0438\u0441\u0430\u043b \u043a\u043e\u0434 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0434\u043e\u0441\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b \u0431\u044b\u043b\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435. \u0415\u0441\u043b\u0438 \u0431\u044b \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-39071","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430.\" \/>\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\/news\/pochemu-polezno-izobretat-kolyosa\" \/>\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\u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0451\u0441\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/pochemu-polezno-izobretat-kolyosa\" \/>\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-31T19:27:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:41+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\udd47Pro\u010d je u\u017eite\u010dn\u00e9 vynal\u00e9zat kola | ProHoster","description":"Ned\u00e1vno jsem vedl pohovor s v\u00fdvoj\u00e1\u0159em na.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/pochemu-polezno-izobretat-kolyosa","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\u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0451\u0441\u0430 | ProHoster","og:description":"\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/pochemu-polezno-izobretat-kolyosa","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-31T19:27:41+00:00","article:modified_time":"2019-10-31T19:27:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39071","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-01-24 00:37:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 23:16:10","updated":"2026-01-24 00:37:21","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\/39071","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=39071"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/39071\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/29315"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=39071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=39071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=39071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}