{"id":36795,"date":"2019-10-31T22:13:50","date_gmt":"2019-10-31T19:13:50","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-perestat-delat-odno-i-to-zhe\/"},"modified":"2019-10-31T22:13:50","modified_gmt":"2019-10-31T19:13:50","slug":"kak-perestat-delat-odno-i-to-zhe","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe","title":{"rendered":"Jak p\u0159estat d\u011blat to sam\u00e9","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>M\u00e1te r\u00e1di opakov\u00e1n\u00ed rutinn\u00edch operac\u00ed? J\u00e1 rozhodn\u011b ne. Ale poka\u017ed\u00e9, kdy\u017e pracuji se skladem Rostelecom ve SQL klientovi, mus\u00edm ru\u010dn\u011b ps\u00e1t v\u0161echny spojen\u00ed mezi tabulkami. A to p\u0159itom v 90 % p\u0159\u00edpad\u016f pole a podm\u00ednky spojen\u00ed tabulek odpov\u00eddaj\u00ed od dotazu k dotazu! Mohlo by se zd\u00e1t, \u017ee ka\u017ed\u00fd SQL klient m\u00e1 funkce automatick\u00e9ho vypl\u0148ov\u00e1n\u00ed, ale pro sklady to ne v\u017edy funguje: m\u00e1lokdy se zav\u00e1d\u00ed unik\u00e1tn\u00ed omezen\u00ed a ciz\u00ed kl\u00ed\u010d ve snaze o zv\u00fd\u0161en\u00ed v\u00fdkonu, a bez toho program nev\u00ed, jak jsou entity mezi sebou spojeny a co ti m\u016f\u017ee nab\u00eddnout.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/rostelecom\/blog\/462021\/\"><img decoding=\"async\" alt=\"Jak p\u0159estat d\u011blat to sam\u00e9\" src=\"\/wp-content\/uploads\/2019\/08\/998faa579fa9772fa4509980be551be3.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Po projit\u00ed f\u00e1z\u00ed pop\u00edr\u00e1n\u00ed, hn\u011bvu, vyjedn\u00e1v\u00e1n\u00ed, deprese a bl\u00ed\u017een\u00ed se k p\u0159ijet\u00ed jsem se rozhodl \u2013 pro\u010d si s\u00e1m nevyzkou\u0161et implementaci automatick\u00e9ho vypl\u0148ov\u00e1n\u00ed s blackjackem a na \u00farovni? Pou\u017e\u00edv\u00e1m klienta dbeaver, kter\u00fd je naps\u00e1n v Jav\u011b, m\u00e1 komunitn\u00ed verzi s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem. P\u0159ipravil jsem si jednoduch\u00fd pl\u00e1n:<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ol>\n<li>Naj\u00edt ve zdrojov\u00e9m k\u00f3du t\u0159\u00eddy odpov\u00eddaj\u00edc\u00ed za automatick\u00e9 vypl\u0148ov\u00e1n\u00ed<\/li>\n<li>P\u0159eorientovat je na pr\u00e1ci s extern\u00edmi metadaty a t\u00e1hnout odtud informace o spojen\u00ed<\/li>\n<li>??????<\/li>\n<li>ZISK<\/li>\n<\/ol>\n<p>\nS prvn\u00edm bodem jsem si rychle poradil \u2013 na\u0161el jsem v bugtrackeru \u017e\u00e1dost o \u00fapravu automatick\u00e9ho vypl\u0148ov\u00e1n\u00ed a ve spojen\u00ed s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dbeaver\/dbeaver\/commit\/4f7652c1d11f21d29cf734155b133e9a426c727f\">commit<\/a><\/noindex> jsem objevil t\u0159\u00eddu SQLCompletionAnalyzer. Pod\u00edval jsem se na k\u00f3d \u2013 to, co pot\u0159ebuji. Te\u010f zb\u00fdvalo jej p\u0159epsat tak, aby v\u0161echno fungovalo. \u010cekal jsem na voln\u00fd ve\u010der a za\u010dal prom\u00fd\u0161let realizaci. Pravidla vztah\u016f tabulek (metadata) jsem se rozhodl v\u00e9st v json. Nem\u011bl jsem praktick\u00e9 zku\u0161enosti s t\u00edmto form\u00e1tem a aktu\u00e1ln\u00ed \u00fakol se mi zd\u00e1l b\u00fdt p\u0159\u00edle\u017eitost\u00ed to napravit. <\/p>\n<p>Pro pr\u00e1ci s json jsem se rozhodl pou\u017e\u00edt knihovnu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fangyidong\/json-simple\">json-simple<\/a><\/noindex> od Googlu. Tady za\u010daly p\u0159ekvapen\u00ed. Jak se uk\u00e1zalo, dbeaver, jako skute\u010dn\u00e1 aplikace, je naps\u00e1n na platform\u011b Eclipse s pou\u017eit\u00edm OSGi frameworku. Pro zku\u0161en\u00e9 v\u00fdvoj\u00e1\u0159e to nab\u00edz\u00ed pohodln\u00e9 \u0159\u00edzen\u00ed z\u00e1vislost\u00ed, pro m\u011b to v\u0161ak vypadalo sp\u00ed\u0161e jako temn\u00e1 magie, na kterou jsem nebyl v\u016fbec p\u0159ipraven: obvykle zapisuji import pot\u0159ebn\u00fdch t\u0159\u00edd z knihovny json-simple na za\u010d\u00e1tku upravovan\u00e9 t\u0159\u00eddy, uvedu ji v pom.xml, po \u010dem\u017e projekt z\u00e1sadn\u011b odm\u00edt\u00e1 norm\u00e1ln\u011b se sestavovat a pad\u00e1 s chybami. <\/p>\n<p>Opravit chyby ve sestaven\u00ed se poda\u0159ilo: knihovna byla zaps\u00e1na nikoli do pom.xml, ale do manifestu manifest.mf, jak vy\u017eaduje OSGI, p\u0159i\u010dem\u017e byla uvedena jako import-package. Nen\u00ed to nejhez\u010d\u00ed \u0159e\u0161en\u00ed, ale funguje to. Pak p\u0159i\u0161lo dal\u0161\u00ed p\u0159ekvapen\u00ed. Pokud vyv\u00edj\u00edte v IntelliJ IDEA, nem\u016f\u017eete jen tak spustit lad\u011bn\u00ed sv\u00e9ho projektu zalo\u017een\u00e9ho na platform\u011b Eclipse: nezku\u0161en\u00fd v\u00fdvoj\u00e1\u0159 by m\u011bl trp\u011bt stejn\u011b, jako analytik bez automatick\u00e9ho dokon\u010dov\u00e1n\u00ed dotaz\u016f. Na pomoc p\u0159i\u0161li sami v\u00fdvoj\u00e1\u0159i Bobra, kte\u0159\u00ed v wiki uvedli v\u0161echny tance s bubnem, kter\u00e9 je pot\u0159eba prov\u00e9st. Nejhor\u0161\u00ed je, \u017ee i po v\u0161ech t\u011bchto \u00fatrap\u00e1ch se projekt necht\u011bl spou\u0161t\u011bt v lad\u011bn\u00ed s p\u0159ipojenou knihovnou JSON pomoc\u00ed import-package (p\u0159itom ve fin\u00e1ln\u00edm produktu st\u00e1le \u00fasp\u011b\u0161n\u011b kompiloval). <\/p>\n<p>Do t\u00e9 doby jsem si stihl uv\u011bdomit nev\u00fdhody pou\u017e\u00edv\u00e1n\u00ed JSON pro svou \u00falohu \u2014 metadat bylo pl\u00e1nov\u00e1no upravovat ru\u010dn\u011b, a pro toto je form\u00e1t XML lep\u0161\u00ed. Druh\u00fdm argumentem pro XML byla p\u0159\u00edtomnost v\u0161ech pot\u0159ebn\u00fdch t\u0159\u00edd v JDK, co\u017e umo\u017enilo p\u0159estat bojovat s extern\u00ed knihovnou. S velk\u00fdm pot\u011b\u0161en\u00edm jsem p\u0159enesl v\u0161echna metadata z JSON do XML a za\u010dal se v\u011bnovat \u00faprav\u00e1m logiky automatick\u00e9ho dokon\u010dov\u00e1n\u00ed. <\/p>\n<p><b class=\"spoiler_title\">P\u0159\u00edklad metadat<\/b><\/p>\n<pre><code class=\"xml\">dim_account\n        dim_partner\n        \n        \n    \n    \n        dim_account\n        dim_branch<\/code><\/pre>\n<p>V d\u016fsledku toho j\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/v9854268996\/dbeaver\">provedl zm\u011bny<\/a><\/noindex> v t\u0159\u00edd\u00e1ch SQLUtils a SQLCompletionAnalyzer. My\u0161lenka je takov\u00e1: pokud se programu nepoda\u0159ilo nal\u00e9zt vhodn\u00e9 n\u00e1vrhy pro automatick\u00e9 dokon\u010den\u00ed na z\u00e1klad\u011b z\u00e1kladn\u00ed logiky, prov\u011b\u0159uje, zda jsou mo\u017en\u00e9 spojen\u00ed podle extern\u00edho XML souboru. V samotn\u00e9m souboru jsou ulo\u017eeny p\u00e1ry tabulek se specifikac\u00ed pol\u00ed, podle kter\u00fdch je t\u0159eba tyto tabulky spojit. Omezen\u00ed na technick\u00e9 datov\u00e9 datum platnosti z\u00e1znam\u016f eff_dttm a exp_dttm a flag logick\u00e9ho smaz\u00e1n\u00ed deleted_ind jsou p\u0159itom nastavena ve v\u00fdchoz\u00edm nastaven\u00ed.<\/p>\n<p>Kdy\u017e byly provedeny zm\u011bny v k\u00f3du, objevila se ot\u00e1zka \u2014 kdo bude napl\u0148ovat soubor s metadatami? Ve skladu je mnoho entit, psan\u00ed v\u0161ech vazeb by bylo n\u00e1ro\u010dn\u00e9. Nakonec jsem se rozhodl sv\u011b\u0159it tuto \u00falohu sv\u00fdm koleg\u016fm analytik\u016fm. Soubor metadat jsem um\u00edstil do svn, odkud se prov\u00e1d\u00ed checkout do lok\u00e1ln\u00edho adres\u00e1\u0159e s programem. Princip je takov\u00fd: objevila se v \u00falo\u017ei\u0161ti nov\u00e1 entita? Jeden analytik vlo\u017e\u00ed mo\u017en\u00e9 joiny do souboru, commituje zm\u011bny, ostatn\u00ed provedou checkout k sob\u011b a u\u017e\u00edvaj\u00ed si funk\u010dn\u00ed automatick\u00e9 vypl\u0148ov\u00e1n\u00ed: komunita, akumulace znalost\u00ed a tak d\u00e1le. Uskute\u010dnil jsem pro kolegy workshop o pou\u017e\u00edv\u00e1n\u00ed programu, napsal jsem \u010dl\u00e1nek do Confluence \u2014 nyn\u00ed m\u00e1 firma jeden pohodln\u00fd n\u00e1stroj nav\u00edc.<\/p>\n<p>Pr\u00e1ce na t\u00e9to funkci mi dala pochopen\u00ed, \u017ee se nemus\u00edm b\u00e1t hrabat se v open-source projektech \u2014 obvykle maj\u00ed jasnou architekturu, a i z\u00e1kladn\u00ed znalosti jazyka budou sta\u010dit k experimentov\u00e1n\u00ed. A s ur\u010ditou d\u00e1vkou vytrvalosti se dokonce poda\u0159\u00ed zbavit se nen\u00e1vid\u011bn\u00fdch rutinn\u00edch operac\u00ed, \u010d\u00edm\u017e si u\u0161et\u0159\u00edte \u010das na nov\u00e9 pokusy.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/rostelecom\/blog\/462021\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438. \u0418 \u044d\u0442\u043e \u043f\u0440\u0438\u0442\u043e\u043c, \u0447\u0442\u043e \u0432 90% \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043f\u043e\u043b\u044f \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 \u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0443! \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043b\u044e\u0431\u043e\u0439 SQL-\u043a\u043b\u0438\u0435\u043d\u0442 \u0438\u043c\u0435\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27562,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36795","post","type-post","status-publish","format-standard","has-post-thumbnail","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=\"\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.\" \/>\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\/kak-perestat-delat-odno-i-to-zhe\" \/>\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\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe\" \/>\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:13:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:50+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\udd47Jak p\u0159estat d\u011blat jedno a to sam\u00e9 | ProHoster","description":"Pova\u017eujete se za n\u011bkoho, kdo opakovan\u011b prov\u00e1d\u00ed rutinn\u00ed operace? J\u00e1 rozhodn\u011b ne. Ale poka\u017ed\u00e9, kdy\u017e jsem pracoval s \u00falo\u017ei\u0161t\u011bm Rostelekomu v SQL klientu, musel jsem ru\u010dn\u011b ps\u00e1t v\u0161echny joiny mezi tabulkami.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe","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\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 | ProHoster","og:description":"\u0412\u044b \u043b\u044e\u0431\u0438\u0442\u0435 \u0438\u0437 \u0440\u0430\u0437\u0430 \u0432 \u0440\u0430\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438? \u0412\u043e\u0442 \u0438 \u044f \u043d\u0435\u0442. \u041d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 SQL-\u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0436\u043e\u0439\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0440\u0443\u0447\u043a\u0430\u043c\u0438.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/kak-perestat-delat-odno-i-to-zhe","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:13:50+00:00","article:modified_time":"2019-10-31T19:13:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36795","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-22 04:53:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:38:24","updated":"2026-01-22 04:53:19","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\/36795","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=36795"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/36795\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/27562"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=36795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=36795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=36795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}