{"id":36518,"date":"2019-10-31T22:12:07","date_gmt":"2019-10-31T19:12:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\/"},"modified":"2019-10-31T22:12:07","modified_gmt":"2019-10-31T19:12:07","slug":"programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Arhitektura programske opreme in projektiranje sistemov: splo\u0161na slika in vodnik po virih","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pozdravljeni, kolegi.<\/p>\n<p>Danes vam predstavljamo prevod \u010dlanka Tugberka Ugurla, ki se je odlo\u010dil v primerljivo kratkem obsegu predstaviti principe projektiranja sodobnih programske opreme. Tukaj je, kar avtor sporo\u010da o sebi v kratkem:<\/p>\n<p><img decoding=\"async\" alt=\"Arhitektura programske opreme in projektiranje sistemov: splo\u0161na slika in vodnik po virih\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nKer je nemogo\u010de obravnavati tako ob\u0161irno temo, kot so arhitekturni vzorci + vzorci projektiranja ob koncu leta 2019, priporo\u010damo ne samo besedilo gospoda Ugurla, ampak tudi \u0161tevilne povezave, ki jih je prijazno dodal. \u010ce vam bo v\u0161e\u010d, bomo objavili \u0161e bolj specializirano besedilo o projektiranju razdeljenih sistemov.<\/p>\n<p><img decoding=\"async\" alt=\"Arhitektura programske opreme in projektiranje sistemov: splo\u0161na slika in vodnik po virih\" src=\"\/wp-content\/uploads\/2019\/07\/4ccec9506aedb91bb601ebc32b6762be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Slika <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Isaaca Smitha<\/a><\/noindex> s spletne strani Unsplash<\/i><\/p>\n<p>\u010ce se nikoli niste sre\u010dali z izzivi, kot je projektiranje programske opreme od za\u010detka, potem ob za\u010detku tak\u0161nega dela v\u010dasih sploh ne veste, kje za\u010deti. Menim, da je najprej potrebno opredeliti meje, da boste bolj ali manj prepri\u010dani, kaj to\u010dno nameravate projektirati, nato pa - zavihajte rokave in delajte, ne da bi presegli te meje. Kot izhodi\u0161\u010de lahko vzamete kak izdelek ali storitev (idealen je tak, ki vam je zelo v\u0161e\u010d) in se podrobneje seznanite z njegovo izvedbo. Morda vas bo presenetilo, kako preprosto se zdi ta izdelek, in kak\u0161na ogromna kompleksnost je v resnici skrita v njem. Ne pozabite: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">preprosto - obi\u010dajno zapleteno<\/a><\/noindex>, in to je povsem normalno.<\/p>\n<p>Menim, da je najbolj\u0161i nasvet, ki ga lahko dam tistim, ki pri\u010denjajo z na\u010drtovanjem sistema, naslednji: ne domnevajte! Od samega za\u010detka je treba konkretizirati dejstva, znana o tem sistemu, in pri\u010dakovanja, povezana z njim. Tukaj je nekaj dobrih vpra\u0161anj, katerih odgovori vam bodo pomagali pri pristopu k projektiranju:<\/p>\n<ul>\n<li>Kak\u0161en je problem, ki ga \u017eelimo re\u0161iti? <\/li>\n<li>Koliko uporabnikov se bo hkrati povezalo z na\u0161im sistemom?<\/li>\n<li>Kateri vzorci zapisa in branja podatkov se bodo uporabljali? <\/li>\n<li>Kateri so pri\u010dakovani scenariji napak, kako se nameravamo spoprijeti z njimi?<\/li>\n<li>Kak\u0161na so pri\u010dakovanja glede doslednosti in dostopnosti sistema? <\/li>\n<li>Je treba upo\u0161tevati kak\u0161ne zahteve, povezane z zunanjo preveritvijo in regulacijo?<\/li>\n<li>Kak\u0161ne vrste zaupnih podatkov nameravamo shraniti?<\/li>\n<\/ul>\n<p>\nTo je le nekaj vpra\u0161anj, ki so bila koristna tako meni kot tudi ekipam, v katerih sem sodeloval skozi leta svoje poklicne kariere. \u010ce poznate odgovore na ta vpra\u0161anja (in na katerakoli druga, relevantna v kontekstu, v katerem delate), se lahko postopoma poglobite v tehni\u010dne podrobnosti naloge.<\/p>\n<p><b>Dolo\u010dimo izhodi\u0161\u010dno raven<\/b><\/p>\n<p>Kaj tukaj razumem pod 'izhodi\u0161\u010dno raven' (baseline)? V dana\u0161njih \u010dasih je mogo\u010de ve\u010dino te\u017eav v programski industriji re\u0161iti z obstoje\u010dimi metodami in tehnologijami. Tako, ko se orientirate v tem okolju, dobite dolo\u010deno prednost, ko se sre\u010dujete z nalogami, ki so jih nekateri \u017ee re\u0161ili pred vami. Ne pozabite, da se programi ustvarjajo za re\u0161evanje te\u017eav podjetij in uporabnikov, zato si prizadevamo re\u0161iti nalogo na kar najpreprostej\u0161i (z vidika uporabnika) na\u010din. Zakaj je to pomembno? Morda se vam v va\u0161em sistemu dopadno zdi iskati edinstvene re\u0161itve za vse naloge, ker mislite: 'Kak\u0161en programer bi bil, \u010de bi povsod sledil vzorcem'? V resnici, <b>umetnost le\u017ei v sprejemanju odlo\u010ditev o tem, kje in kaj storiti<\/b>. Seveda se vsak izmed nas ob\u010dasno sre\u010duje z edinstvenimi te\u017eavami, vsaka od njih je pravi izziv. Vendar pa, \u010de je na\u0161 izhodi\u0161\u010dni nivo jasno opredeljen, to\u010dno vemo, na kaj usmeriti svoja prizadevanja: na iskanje \u017ee pripravljenih re\u0161itev zastavljene naloge ali na njeno nadaljnje raziskovanje in globlje razumevanje.<\/p>\n<p>Mislim, da vam je uspelo prepri\u010dati, da bodo, \u010de se strokovnjak dobro spozna na arhitekturne vidike nekaterih izjemnih programski sistemov, te vednosti neprecenljive pri obvladovanju umetnosti arhitekta in razvoju trdne osnove na tem podro\u010dju.<\/p>\n<p>No, od kod za\u010deti? Pri <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donni Martini<\/a><\/noindex> je repozitorij na GitHubu z imenom <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, s katerim se lahko nau\u010dite oblikovanja obse\u017enih sistemov ter se pripravite na vpra\u0161anja pri razgovorih na to temo. V repozitoriju je razdelek z zgledi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">realnih arhitektur<\/a><\/noindex>, kjer se, med drugim, obravnava, kako se nekatere dobro znane dru\u017ebe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">na primer Twitter, Uber itd.<\/a><\/noindex>, lotevajo oblikovanja svojih sistemov. Vendar pa, preden preidemo na ta material, poglejmo podrobneje nekatere od najpomembnej\u0161ih arhitekturnih izzivov, s katerimi se sre\u010dujemo v praksi. To je pomembno, saj je potrebno natan\u010dno dolo\u010diti \u0160TEVILNE vidike te zahtevne in kompleksne te\u017eave ter jo nato re\u0161iti v okviru regulacije, ki velja v tem sistemu.<\/p>\n<p>Jackson Gabbard <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">, nekdanji sodelavec Facebooka, je posnel<\/a><\/noindex>50-minutni video o razgovorih, posve\u010denih oblikovanju sistemov <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">, kjer je delil svoje izku\u0161nje z gledanjem stotin kandidatov. Kljub temu, da video izrecno obravnava oblikovanje velikih sistemov in kriterije uspe\u0161nosti, pomembne pri iskanju kandidata za to pozicijo, bo \u0161e vedno slu\u017eil kot obse\u017een vir o tem, katere zadeve so najbolj pomembne pri oblikovanju sistemov. Prav tako predlagam<\/a><\/noindex>kratko vsebino <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">tega videa.<\/a><\/noindex> Pridobite znanje o shranjevanju in pridobivanju podatkov<\/p>\n<p><b>Kot pravilo velja, da va\u0161a odlo\u010ditev o tem, kako boste dolgoro\u010dno shranjevali in posredovali svoje podatke, kriti\u010dno vpliva na zmogljivost sistema. Zato morate v prvi vrsti razumeti pri\u010dakovane karakteristike zapisovanja in branja podatkov v va\u0161em sistemu. Nato morate biti sposobni oceniti te kazalnike in izbrati na podlagi teh ocen. Vendar pa boste u\u010dinkovito opravili to nalogo le, \u010de boste obvladali obstoje\u010de vzorce shranjevanja podatkov. V osnovi to pomeni, da imate trdno znanje, povezano s<\/b> <\/p>\n<p>izbiro baze podatkov <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">Baze podatkov lahko obravnavamo kot podatkovne strukture, ki imajo izjemno skalabilnost in trajnost. Zato vam mora znanje o podatkovnih strukturah zelo koristiti tudi pri izbiri konkretne baze podatkov. Na primer,<\/a><\/noindex>. <\/p>\n<p>Baze podatkov lahko obravnavamo kot podatkovne strukture, ki se pona\u0161ajo z izjemno skalabilnostjo in trajnostjo. Zato vam mora poznavanje podatkovnih struktur dobro priti prav tudi pri izbiri te ali one baze podatkov. Na primer, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">Redis<\/a><\/noindex> \u2013 je stre\u017enik podatkovnih struktur, ki podpira razli\u010dne vrste vrednosti. Omogo\u010da delo s takimi podatkovnimi strukturami, kot so seznami in mno\u017eice, ter branje podatkov s pomo\u010djo splo\u0161no znanih algoritmov, na primer, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, organizira to delo na trajnosten in visoko dostopen na\u010din. <\/p>\n<p><img decoding=\"async\" alt=\"Arhitektura programske opreme in projektiranje sistemov: splo\u0161na slika in vodnik po virih\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Slika <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zeller<\/a><\/noindex> s spletne strani Unsplash<\/i><\/p>\n<p>Ko se dovolj dobro orientirate v razli\u010dnih vzorcih shranjevanja podatkov, nadaljujte z u\u010denjem o skladnosti in dostopnosti podatkov. Najprej se boste morali seznaniti z <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">CAP teoremo<\/a><\/noindex> vsaj na splo\u0161ni ravni, nato pa poglobiti svoje znanje, ko se boste podrobneje seznanili s priznanimi vzorci <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">skladnosti<\/a><\/noindex> in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">dostopnosti<\/a><\/noindex>. Tako boste raz\u0161irili svoja obzorja na tem podro\u010dju in razumeli, da sta branje in pisanje podatkov v resnici dve zelo razli\u010dni te\u017eavi, pri obeh pa se pojavijo svoje posebne izzive. Opremljeni z nekaterimi vzorci zagotavljanja skladnosti in dostopnosti boste lahko znatno pove\u010dali u\u010dinkovitost sistema, hkrati pa zagotovili nemoteno oskrbo podatkov z va\u0161imi aplikacijami.<\/p>\n<p>Nazadnje, ko zaklju\u010dujemo pogovor o vpra\u0161anjih shranjevanja podatkov, je treba omeniti tudi predpomnjenje. Ali bi moralo potekati hkrati na odjemalcu in na stre\u017eniku? Katere podatke boste imeli v predpomnilniku? In zakaj? Kako boste organizirali invalidacijo predpomnilnika? Bo ta potekala redno, v dolo\u010denih \u010dasovnih intervalih? \u010ce ja \u2013 kako pogosto? Te teme priporo\u010dam, da za\u010dnete obravnavati s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">takoj\u0161njega poglavja<\/a><\/noindex> omenjene knji\u017eice o na\u010drtovanju sistemov. <\/p>\n<p><b>Komunikacijski vzorci<\/b><\/p>\n<p>Sistemi sestavljajo razli\u010dne komponente; to so lahko razli\u010dni procesi, ki delujejo znotraj istega fizi\u010dnega vozli\u0161\u010da, ali razli\u010dni stroji, ki delujejo na razli\u010dnih delih va\u0161e mre\u017ee. Nekateri od teh virov znotraj va\u0161e mre\u017ee so lahko zasebni, drugi pa morajo biti javni in odprti za potro\u0161nike, ki se nanje obra\u010dajo od zunaj.<\/p>\n<p>Zagotavljati je treba komunikacijo teh virov med seboj, pa tudi izmenjavo informacij med celotnim sistemom in zunanjim svetom. V kontekstu na\u010drtovanja sistemov se ponovno sre\u010dujemo s sklopom novih edinstvenih izzivov. Raziskujemo, kako so lahko <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">asinhroni tokovi nalog<\/a><\/noindex>, in kateri r<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">razli\u010dni vzorci komunikacije so na voljo<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Arhitektura programske opreme in projektiranje sistemov: splo\u0161na slika in vodnik po virih\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Slika <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/DgZxBnZeQo8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Tony Stoddard<\/a><\/noindex> s spletne strani Unsplash<\/i><\/p>\n<p>Pri organizaciji komunikacije z zunanjim svetom je vedno zelo pomembno <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">varnost<\/a><\/noindex>, kar zahteva resen pristop in aktivno ukvarjanje z njo. <\/p>\n<p><b>Porazdelitev povezav<\/b><\/p>\n<p>Nisem prepri\u010dan, da bo nekaterim razumljivo izpostaviti to temo kot samostojen razdelek. Kljub temu pa bom tukaj podrobno predstavil to koncept, pri \u010demer menim, da material tega razdelka najlep\u0161e opisuje izraz \u201eporazdelitev povezav\u201c (connection distribution).<\/p>\n<p>Sistemi se oblikujejo s pravilnim povezovanjem \u0161tevilnih komponent, njihova komunikacija pa se pogosto organizira na podlagi ustaljenih protokolov, kot sta TCP in UDP. Vendar ti protokoli pogosto ne zadostujejo potrebam sodobnih sistemov, ki pogosto delujejo pod visokimi obremenitvami in so mo\u010dno odvisni od potreb uporabnikov. Pogosto je treba iskati na\u010dine za porazdelitev povezav, da bi se spoprijeli s tak\u0161nimi visoko obremenjenimi sistemi.<\/p>\n<p>Osnova take porazdelitve je dobro znani <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">sistem domenskih imen<\/a><\/noindex> (DNS). Ta sistem omogo\u010da pretvorbo domenskega imena, kot sta ponderirana kro\u017ena metoda (weighted round robin) in metode, temelje\u010de na zamudah, ki pomagajo pri porazdelitvi bremena. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8\">Porazdelitev bremena<\/a><\/noindex> je bistvenega pomena, in skoraj vsak ve\u010dji sistem na spletu, s katerim se danes sre\u010dujemo, je lociran za enim ali ve\u010d porazdelitvenimi ohi\u0161ji. Porazdelitvena ohi\u0161ja pomagajo razporediti uporabni\u0161ke zahteve med \u0161tevilne dostopne instance. Porazdelitvena ohi\u0161ja so lahko tako strojna kot programska, a v praksi se pogosteje sre\u010dujemo s programskimi, na primer z <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> in <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/elasticloadbalancing\/\">ELB<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#reverse-proxy-web-server\">Povratni proxy<\/a><\/noindex> konceptualno tudi zelo podobni porazdelitvenim ohi\u0161jem, vendar med njima obstaja vrsta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">opaznih razlik<\/a><\/noindex>. Te razlike je treba upo\u0161tevati pri na\u010drtovanju sistema, prilagojenega va\u0161im potrebam.<\/p>\n<p>Prav tako je treba vedeti o <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">omre\u017ejih za dostavo vsebin<\/a><\/noindex> (CDN). CDN \u2013 to je globalna distribuirana mre\u017ea proxy stre\u017enikov, ki dostavlja informacije iz tistih vozli\u0161\u010d, ki so geografsko bli\u017eje dolo\u010denemu uporabniku. Uporaba CDN je bolj za\u017eelena, \u010de delate s stati\u010dnimi datotekami, napisanimi v JavaScriptu, CSS-ju in HTML-ju. Poleg tega so danes raz\u0161irjene tudi tak\u0161ne obla\u010dne storitve, ki ponujajo upravljalce prometa, na primer, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/traffic-manager\/traffic-manager-overview?ranMID=24542&amp;ranEAID=je6NUbpObpQ&amp;ranSiteID=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;epi=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;irgwc=1&amp;OCID=AID2000142_aff_7593_1243925&amp;tduid=(ir__ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00)(7593)(1243925)(je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ)()&amp;irclickid=_ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00\">Azure Traffic Manager<\/a><\/noindex>, ki vam zagotavlja globalno distribucijo in zmanj\u0161ane zamude pri delu z dinami\u010dno vsebino. Vendar pa so te storitve obi\u010dajno koristne v primerih, ko delate z brezstanjskimi spletnimi storitvami. <\/p>\n<p><b>Pogovorimo se o poslovni logiki. Strukturiranje poslovne logike, tokov nalog in komponent<\/b><\/p>\n<p>Torej, uspeli smo razpravljati o razli\u010dnih infrastrukturnih vidikih sistema. Verjetno se uporabnik sploh ne spra\u0161uje o vseh teh elementih va\u0161ega sistema in, iskreno, se zanje povsem ni\u010d ne obremenjuje. Uporabnika zanima, kak\u0161na je interoperabilnost z va\u0161im sistemom, kaj lahko dose\u017ee, \u010de ravna tako, pa tudi na kak\u0161en na\u010din sistem izvaja uporabni\u0161ke ukaze in kaj po\u010dne z uporabni\u0161kimi podatki.<\/p>\n<p>Kot je razvidno iz naslova tega \u010dlanka, sem nameraval govoriti o programski arhitekturi in oblikovanju sistemov. Zato nisem nameraval obravnavati vzorcev oblikovanja programske opreme, ki opisujejo, kako nastajajo programske komponente. Vendar, \u010dim ve\u010d razmi\u0161ljam o tem, bolj se mi zdi, da je meja med vzorci oblikovanja programske opreme in arhitekturnimi vzorci zelo zamegljena, in ti dve koncepti sta tesno povezani. Vzemimo na primer, <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">sledenje dogodkom<\/a><\/noindex> (event sourcing). Ko enkrat obvladate ta arhitekturni vzorec, vpliva skoraj na vse vidike va\u0161ega sistema: dolgoro\u010dno shranjevanje podatkov, raven doslednosti, sprejeto v va\u0161em sistemu, oblike komponent v njem, itd. Zato sem se odlo\u010dil omeniti nekatere arhitekturne vzorce, ki se neposredno nana\u0161ajo na poslovno logiko. \u010ceprav se bom v tem \u010dlanku moral omejiti na preprost seznam, vam priporo\u010dam, da se z njim seznanite in razmislite o idejah, povezanih s temi vzorci. Tukaj so:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">Na\u010dela SOLID<\/a><\/noindex> <\/li>\n<li>Koncepcije <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">Projektiranje usmjereno na predmet<\/a><\/noindex>, posebno <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">agregati<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">timski rad i doga\u0111aji<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Heksagonalna arhitektura<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">Razdvajanje odgovornosti na timove i zahtjeve (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Registracija doga\u0111aja<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Glum\u010dev model<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">Dizajnerski obrasci MVC, MVVM i MVP<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Kollaborativni pristupi<\/b><\/p>\n<p>Izuzetno je malo vjerovatno da \u0107ete na projektu biti jedini koji snosi odgovornost za proces dizajniranja sustava. Naprotiv, vjerojatno \u0107ete sura\u0111ivati s ekipom koja radi unutar va\u0161eg zadatka, kao i izvan njega. U tom \u0107e slu\u010daju mo\u017eda biti potrebno zajedni\u010dki procijeniti odabrana tehnolo\u0161ka rje\u0161enja s kolegama, istaknuti poslovne potrebe i razumjeti kako najbolje paralelizirati zadatke.<\/p>\n<p><img decoding=\"async\" alt=\"Arhitektura programske opreme in projektiranje sistemov: splo\u0161na slika in vodnik po virih\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Slika <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> s spletne strani Unsplash<\/i><\/p>\n<p>Prvo je potrebno razviti preciznu i op\u0107e prihva\u0107enu predstavu o poslovnom cilju koji poku\u0161avate posti\u0107i i o kojim se promjenjivim elementima radi. Tehnike grupnog modeliranja, posebno <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">storming doga\u0111aja<\/a><\/noindex> (event storming) zna\u010dajno poma\u017eu ubrzati ovaj proces i pove\u0107avaju va\u0161e \u0161anse za uspjeh. Ovim radom mo\u017eete se baviti prije ili nakon \u0161to definirate <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">granice svojih usluga<\/a><\/noindex>, a zatim ga produbljivati kako proizvod sazrijeva. Oslanjaju\u0107i se na razinu suglasnosti koja \u0107e ovdje biti postignuta, tako\u0111er mo\u017eete formulirati <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">jedinstveni jezik<\/a><\/noindex> za onaj ograni\u010deni kontekst u kojem radite. Kada bude potrebno govoriti o arhitekturi va\u0161eg sustava, mo\u017ee vam pomo\u0107i <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">C4 model<\/a><\/noindex>, koji je predlo\u017eio <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>, posebno kada je potrebno razumjeti koliko duboko \u0107ete morati u\u0107i u detalje problema, vizualiziraju\u0107i stvari koje \u017eelite prenijeti.<\/p>\n<p>Vjerojatno u ovoj temi postoji i druga zrela tehnologija, koja nije manje korisna od projektiranja usmjerenog na predmet. Ipak, na neki na\u010din se vra\u0107amo razumijevanju predmetne oblasti, pa \u0107e vam znanje i iskustvo u podru\u010dju <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">projektiranja usmjerenog na predmet<\/a><\/noindex> biti korisni.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/461283\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412\u043e\u0442 \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0432 \u0441\u0443\u0445\u043e\u043c \u043e\u0441\u0442\u0430\u0442\u043a\u0435: \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432 \u0445\u0430\u0431\u0440\u043e\u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043e\u0441\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b + \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 2019 \u0433\u043e\u0434, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36518","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.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\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\/sl\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\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:12:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:07+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\udd47Programska arhitektura in oblikovanje sistemov: splo\u0161na slika in vodnik po virih | ProHoster","description":"Pozdravljeni, kolegi. Danes vam predstavljamo prevod \u010dlanka Tugberka Ugurluja, ki se je odlo\u010dil v primerjavi z manj\u0161o obse\u017enostjo opisati principe zasnove sodobne programske opreme.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster","og:description":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","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:12:07+00:00","article:modified_time":"2019-10-31T19:12:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36518","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 03:40:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:43:33","updated":"2026-01-22 03:40:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}