{"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\/et\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Tarkvaraarhitektuur ja s\u00fcsteemide projekteerimine: \u00fcldine \u00fclevaade ja allikate teejuht","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, kolleegid.<\/p>\n<p>T\u00e4na esitame teie ette Tugberk Ugurlu artikli t\u00f5lke, kus ta p\u00fc\u00fcab l\u00fchidalt kokku v\u00f5tta kaasaegsete tarkvaras\u00fcsteemide projekteerimise p\u00f5him\u00f5tted. Siin on, mida autor enda kohta \u00fctleb:<\/p>\n<p><img decoding=\"async\" alt=\"Tarkvaraarhitektuur ja s\u00fcsteemide projekteerimine: \u00fcldine \u00fclevaade ja allikate teejuht\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nKuna on selgelt v\u00f5imatu kajastada sellist hiiglaslikku teemat nagu arhitektuurimuster + projekteerimismustrid 2019. aasta seisuga, soovitame mitte ainult h\u00e4rra Ugurlu teksti, vaid ka mitmeid linke, mida ta seal hoolikalt v\u00e4lja on toonud. Kui teile meeldib - avaldame ka kitsama spetsialiseerumise tekstid jaotatud s\u00fcsteemide projekteerimisest.<\/p>\n<p><img decoding=\"async\" alt=\"Tarkvaraarhitektuur ja s\u00fcsteemide projekteerimine: \u00fcldine \u00fclevaade ja allikate teejuht\" 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>Pilt <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Isaac Smith<\/a><\/noindex> Unsplashi saidilt<\/i><\/p>\n<p>Kui teil pole kunagi selliste v\u00e4ljakutsetega kokku puutunud nagu tarkvaras\u00fcsteemi projekteerimine nullist, siis v\u00f5ib t\u00f6\u00f6 alustamine m\u00f5nikord olla segane ja ebaselge. Mina usun, et esmalt tuleb m\u00e4\u00e4ratleda piirid, et kuidagi kindlalt aru saada, mida t\u00e4pselt soovite projekteerida, ja siis \u2013 rullida varrukad ja t\u00f6\u00f6tada, mitte neist piiridest v\u00e4ljuda. Hea l\u00e4htepunkt v\u00f5iks olla m\u00f5ni toode v\u00f5i teenus (ideaalis selline, mis teile v\u00e4ga meeldib) ja uurida selle teostust. Teid v\u00f5ib \u00fcllatada, kui lihtne see toode v\u00e4lja n\u00e4eb, samas kui tegelikult on seal peidus tohutu keerukus. \u00c4rge unustage: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">lihtne \u2013 tavaliselt keeruline<\/a><\/noindex>, ja see on normaalne.<\/p>\n<p>M\u00f5tleksin, et parim n\u00f5uanne, mida ma saan anda neile, kes alustavad s\u00fcsteemi projekteerimist, on: \u00e4rge tehke mingeid eeldusi! Alates algusest on oluline konkreetselt m\u00e4\u00e4ratleda faktid, mis selle s\u00fcsteemi kohta on teada, ja sellega seotud ootused. Siin on m\u00f5ned head k\u00fcsimused, millele vastused aitavad teil projekteerimisega alustada:<\/p>\n<ul>\n<li>Mis on probleem, mida me proovime lahendada? <\/li>\n<li>Milline on maksimaalne kasutajate arv, kes meie s\u00fcsteemiga suhtlevad?<\/li>\n<li>Milliseid andmete salvestamise ja lugemise mustreid me kasutame? <\/li>\n<li>Millised on oodatavad rikkejuhud ja kuidas me kavatseme nendega toime tulla?<\/li>\n<li>Millised on s\u00fcsteemi j\u00e4rjepidevuse ja k\u00e4ttesaadavuse ootused? <\/li>\n<li>Kas on mingeid n\u00f5udeid, mis on seotud v\u00e4lishindamise ja regulatsiooniga, mida tuleb arvesse v\u00f5tta?<\/li>\n<li>Milliseid konfidentsiaalseid andmevariante me kavatseme hoida?<\/li>\n<\/ul>\n<p>\nNeed on vaid m\u00f5ned k\u00fcsimused, mis on olnud kasulikud nii mulle kui ka meeskondadele, kellega olen aastate jooksul koos t\u00f6\u00f6tanud. Kui tead vastuseid nendele k\u00fcsimustele (ja teistele, mis on selles kontekstis asjakohased), siis saame j\u00e4rk-j\u00e4rgult s\u00fcveneda \u00fclesande tehnilistesse detailidesse.<\/p>\n<p><b>Seame algtaseme<\/b><\/p>\n<p>Mida ma siin \u201ealgtaseme\u201d all m\u00f5istan? T\u00f5epoolest, t\u00e4nap\u00e4eval on enamik tarkvarat\u00f6\u00f6stuse probleeme \u201elahendatavad\u201d juba olemasolevate meetodite ja tehnoloogiatega. Seega, juhindudes sellest maastikust, sa saad teatud eelise, silmitsi seistes \u00fclesannetega, mida keegi on enne sind lahendanud. Pea meeles, et programmid kirjutatakse \u00e4riliste ja kasutajate probleemide lahendamiseks, seega p\u00fc\u00fcame lahendada \u00fclesande k\u00f5ige vahetum ja lihtsam (kasutaja vaatenurgast) viisil. Miks on seda oluline meeles pidada? V\u00f5ib-olla meeldib sulle oma koordinaats\u00fcsteemis iga\u00fche jaoks unikaalseid lahendusi otsida, kuna arvad, et \u201ekui ma j\u00e4rgiksin mustritele, ei oleks ma t\u00f5eline programmeerija\u201d? Tegelikult on <b>kunst siin otsuste tegemises, kus ja mida teha<\/b>. Loomulikult seisavad me k\u00f5ik aeg-ajalt silmitsi ainulaadsete probleemidega, millest iga\u00fchel on oma v\u00e4ljakutsed. Kuid kui meie algtase on selgelt m\u00e4\u00e4ratletud, teame, millele oma energia suunata: kas otsime valmis lahendusi probleemile v\u00f5i uurime seda s\u00fcgavamalt, et paremini m\u00f5ista.<\/p>\n<p>M\u00f5tle, et mul \u00f5nnestus teid veenda, et kui spetsialist m\u00f5istab kindlalt, mis on m\u00f5ne suurep\u00e4rase tarkvaras\u00fcsteemi arhitektuuri komponent, siis on need teadmised hindamatud, et omandada arhitekti kunst ja luua tugev alus antud valdkonnas.<\/p>\n<p>H\u00e4sti, kust alustada? <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> omab GitHubis hoidlat nimega <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, mille materjalide p\u00f5hjal saate \u00f5ppida suurte s\u00fcsteemide projekteerimist ja valmistuda sellele teemale suunatud vestlusteks. Hoidlas on sektsioon n\u00e4idistega <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">t\u00e4iendavatest arhitektuuridest<\/a><\/noindex>, kus k\u00e4sitletakse, kuidas m\u00f5ni tuntud ettev\u00f5te l\u00e4heneb oma s\u00fcsteemide kujundamisele, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">n\u00e4iteks Twitter, Uber jne.<\/a><\/noindex>, n\u00e4iteks Twitter, Uber jne.<\/p>\n<p>Kuid enne kui liikuda selle materjali juurde, uurime l\u00e4hemalt k\u00f5ige olulisemaid arhitektuurilisi v\u00e4ljakutseid, millega praktikas silmitsi seistakse. See on t\u00e4htis, kuna tuleb t\u00e4psustada PALJU aspekte sellest keerulisest ja mitmetahulisest probleemist ning seej\u00e4rel lahendada see antud s\u00fcsteemi regulatsioonide kohaselt. <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">Jackson Gabbard<\/a><\/noindex>, endine Facebooki t\u00f6\u00f6taja, salvestas <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">50-minutilise video s\u00fcsteemide projekteerimise intervjuudest<\/a><\/noindex>, kus jagas oma kogemusi sadade kandidaatide vaatamisest. Kuigi video k\u00e4sitleb otseselt suurte s\u00fcsteemide projekteerimist ja edukaid kriteeriume, mis on olulised sellise positsiooni kandidaadi leidmisel, on see siiski ammendav ressurss, et m\u00f5ista, millised asjad on s\u00fcsteemide projekteerimisel k\u00f5ige olulisemad. Samuti pakun <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">video kokkuv\u00f5tet<\/a><\/noindex> .<\/p>\n<p><b>Koguge teadmisi andmete hoidmise ja v\u00e4ljav\u00f5tmise kohta.<\/b> <\/p>\n<p>Reeglina m\u00f5jutab teie otsus, kuidas andmeid pikaajaliselt salvestada ja edastada, s\u00fcsteemi j\u00f5udlust kriitiliselt. Seet\u00f5ttu peate k\u00f5igepealt m\u00f5istma andmete salvestamise ja lugemise ootusi teie s\u00fcsteemis. J\u00e4rgmiseks peate oskama neid n\u00e4itajaid hinnata ja tegema valiku, tuginedes nendele hinnangutele. Kuid suudate seda \u00fclesannet t\u00f5husalt t\u00e4ita ainult siis, kui tunnete andmete salvestamise olemasolevaid mustreid. P\u00f5him\u00f5tteliselt t\u00e4hendab see kindlate teadmist, mis on seotud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">andmebaasi valikuga<\/a><\/noindex>. <\/p>\n<p>Andmebaase saab pidada andmestruktuurideks, mis omavad erakordset skaleeritavust ja vastupidavust. Seet\u00f5ttu peab andmestruktuuride teadmine teile olema \u00e4\u00e4rmiselt kasulik ka andmebaaside valimisel. N\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">Redis<\/a><\/noindex> \u2013 on andmestruktuuride server, mis toetab erinevaid v\u00e4\u00e4rtuste t\u00fc\u00fcpe. See v\u00f5imaldab t\u00f6\u00f6tada selliste andmestruktuuridega nagu loendid ja hulgad, lugeda andmeid tuntud algoritmide abil, n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, korraldades sellist t\u00f6\u00f6d pikaajalise ja k\u00f5rge k\u00e4ttesaadavusega viisil. <\/p>\n<p><img decoding=\"async\" alt=\"Tarkvaraarhitektuur ja s\u00fcsteemide projekteerimine: \u00fcldine \u00fclevaade ja allikate teejuht\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Pilt <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zell<\/a><\/noindex> Unsplashi saidilt<\/i><\/p>\n<p>Kui olete erinevate andmesalvestuspatternditega piisavalt kursis, liikuge andmete j\u00e4rjepidevuse ja k\u00e4ttesaadavuse uurimisele. Esiteks peate omandama <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">CAP-teoreemi<\/a><\/noindex> v\u00e4hemalt \u00fcldiselt, seej\u00e4rel t\u00e4iendama oma teadmisi, uurides p\u00f5hjalikumalt v\u00e4ljakujunenud mustreid <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">j\u00e4rjepidevuse<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">k\u00e4ttesaadavuse<\/a><\/noindex>. Nii saate teavet sel alal ning m\u00f5istate, et andmete lugemine ja kirjutamine on tegelikult kaks v\u00e4ga erinevat probleemi, millest iga\u00fcks toob endaga kaasa oma spetsiifilised v\u00e4ljakutsed. Varustatud mitmete j\u00e4rjepidevuse ja k\u00e4ttesaadavuse tagamise mudelitega, saate oluliselt t\u00f5sta s\u00fcsteemi j\u00f5udlust, tagades samas andmete katkematu edastamise teie rakendustesse.<\/p>\n<p>L\u00f5puks, l\u00f5petades jutu andmemagamise k\u00fcsimustest, tasub mainida ka vahem\u00e4lu. Kas see peaks toimuma nii kliendis kui serveris? Millised andmed saavad olema teie vahem\u00e4lus? Ja miks? Kuidas te organiseerite vahem\u00e4lu t\u00fchistamise? Kas see toimub regulaarselt, teatud aja j\u00e4rel? Kui jah, siis kui sageli? Nende teemade uurimist soovitan alustada <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">j\u00e4rgmisest jaost<\/a><\/noindex> \u00fclaltoodud s\u00fcsteemide projekteerimise k\u00e4siraamatust. <\/p>\n<p><b>Kommunikatsioonimustrid<\/b><\/p>\n<p>S\u00fcsteemid koosnevad erinevatest komponentidest; need v\u00f5ivad olla erinevad protsessid, mis t\u00f6\u00f6tavad \u00fche ja sama f\u00fc\u00fcsilise s\u00f5lme sees, v\u00f5i erinevad masinad, mis tegutsevad teie v\u00f5rgu erinevates osades. M\u00f5ned neist ressurssidest teie v\u00f5rgus v\u00f5ivad olla privaatsete, kuid teised peavad olema avalikud ja avatud tarbijatele, kes nendeni v\u00e4ljastpoolt p\u00e4\u00e4sevad.<\/p>\n<p>Oluline on tagada nende ressursside omavaheline suhtlemine ning informatsiooni vahetamine kogu s\u00fcsteemi ja v\u00e4lismaailma vahel. S\u00fcsteemide projekteerimise kontekstis seisame ka siin silmitsi uute ainulaadsete v\u00e4ljakutsetega. Uurime, kuidas v\u00f5ivad olla kasulikud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">as\u00fcnkroonsed \u00fclesandekeerad<\/a><\/noindex>, ning millised r<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">ikkilised suhtlemismustrid on olemas<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Tarkvaraarhitektuur ja s\u00fcsteemide projekteerimine: \u00fcldine \u00fclevaade ja allikate teejuht\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Pilt <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> Unsplashi saidilt<\/i><\/p>\n<p>V\u00e4lismaailmaga suhtlemise korraldamisel on alati v\u00e4ga oluline <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">turvalisus<\/a><\/noindex>, mille tagamiseks tuleb l\u00e4heneda t\u00f5siselt ja sellega aktiivselt tegeleda. <\/p>\n<p><b>\u00dchenduste jaotamine<\/b><\/p>\n<p>Ma ei ole kindel, kas selle teema esitlemine eraldi jaguna on k\u00f5igile \u00f5igustatud. Sellegipoolest tutvustan siin seda kontseptsiooni p\u00f5hjalikult, pidades silmas, et selle jao materjal on k\u00f5ige t\u00e4psemalt kirjeldatud termini \"\u00fchenduste jaotamine\" (connection distribution) abil.<\/p>\n<p>S\u00fcsteemid moodustuvad \u00f5igesti \u00fchendatud komponentide hulgast, ning nende vaheline suhtlemine korraldatakse sageli kehtivate protokollide, n\u00e4iteks TCP ja UDP alusel. Kuid neid protokolle \u00fcksi ei piisa sageli, et rahuldada k\u00f5iki t\u00e4nap\u00e4evaste s\u00fcsteemide vajadusi, mis t\u00f6\u00f6tavad sageli suure koormuse all ja s\u00f5ltuvad tugevalt kasutajate vajadustest. Tihti on vajalik leida \u00fchenduste jaotamise viise, et toime tulla selliste k\u00f5rgete koormustega s\u00fcsteemis.<\/p>\n<p>Selle jaotamise alus on tuntud <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">domeeninimede s\u00fcsteem<\/a><\/noindex> (DNS). Selline s\u00fcsteem v\u00f5imaldab muundada domeeninime, kasutades n\u00e4iteks kaalutud \u00fcmmargusi algoritme (weighted round robin) ja viivituse p\u00f5hiseid meetodeid, mis aitavad koormust jaotada. <\/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\">Koormuse jaotamine<\/a><\/noindex> on oluline, ja praktiliselt iga suur s\u00fcsteem Internetis, millega me t\u00e4na kokku puutume, asub \u00fche v\u00f5i mitme koormuse tasakaalustaja taga. Koormuse tasakaalustajad aitavad jaotada kliendi p\u00e4ringud mitmete saadavalolevate instantside vahel. Koormuse tasakaalustajad v\u00f5ivad olla nii riistvaralised kui ka tarkvaralised, kuid praktikas puutume sagedamini kokku tarkvaralistega, n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> ja <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\">Tagasip\u00f6\u00f6rdumisproksi<\/a><\/noindex> on kontseptuaalselt samuti v\u00e4ga sarnased koormuse tasakaalustajatele, kuigi nende vahel on rida <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">selgelt eristuvaid erinevusi<\/a><\/noindex>. Neid erinevusi on kindlasti vaja arvesse v\u00f5tta, projekteerides s\u00fcsteemi teie vajadusi silmas pidades.<\/p>\n<p>Samuti tuleks teada <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">sisu edastamise v\u00f5rkudest<\/a><\/noindex> (CDN). CDN \u2013 see globaalne jaotatud proxy-serverite v\u00f5rk, mis toimetab teavet nendest s\u00f5lmedest, mis asuvad konkreetse kasutaja l\u00e4hedal. CDN-v\u00f5rkude kasutamine on soovitatav, kui t\u00f6\u00f6tate staatiliste failidega, nagu JavaScript, CSS ja HTML. Lisaks on t\u00e4nap\u00e4eval laialdaselt kasutusel pilveteenused, mis pakuvad liiklusjuhtimise lahendusi, n\u00e4iteks <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>, mis tagavad teile globaalse jaotuse ja v\u00e4hendatud latentsuse d\u00fcnaamilise sisu t\u00f6\u00f6tlemisel. Siiski on sellised teenused tavaliselt kasulikud olukordades, kus on vaja t\u00f6\u00f6tada seisundita veebiteenustega. <\/p>\n<p><b>R\u00e4\u00e4gime \u00e4riloogikast. \u00c4riloogika, t\u00f6\u00f6voogude ja komponentide struktureerimine<\/b><\/p>\n<p>Nii et, oleme j\u00f5udnud arutada mitmesuguseid s\u00fcsteemi infrastruktuurilisi aspekte. T\u00f5en\u00e4oliselt ei p\u00f6\u00f6ra kasutaja nende s\u00fcsteemi elementide \u00fcle pead ja ausalt \u00f6eldes ei muretse nende p\u00e4rast \u00fcldsegi. Kasutajat huvitab see, kuidas teie s\u00fcsteemiga suhelda, mida on v\u00f5imalik saavutada, kui toimida teatud viisil, ja ka see, kuidas s\u00fcsteem t\u00e4idab kasutaja k\u00e4ske ning kuidas ja mida teeb kasutaja andmetega.<\/p>\n<p>Nagu artikli pealkirjast selgub, kavatsen ma r\u00e4\u00e4kida tarkvaraarhitektuurist ja s\u00fcsteemide kavandamisest. Seet\u00f5ttu ei olnud ma plaaninud k\u00e4sitleda tarkvaraarenduspatente, mis kirjeldavad, kuidas programmeerimise komponente luuakse. Kuid mida rohkem ma sellele m\u00f5tlen, seda enam tundub mulle, et piir tarkvarapatentide ja arhitektuuriliste mustrite vahel on v\u00e4ga h\u00e4gune ning need kaks kontseptsiooni on tihedalt seotud. V\u00f5tame n\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">s\u00fcndmuste registreerimist<\/a><\/noindex> (event sourcing). Kui v\u00f5tate selle arhitektuurimustri omaks, m\u00f5jutab see praktiliselt k\u00f5iki teie s\u00fcsteemi aspekte: andmete pikaajaline s\u00e4ilitamine, s\u00fcsteemis kehtiv koosk\u00f5lvusaste, komponentide struktuur jne. Seet\u00f5ttu otsustasin mainida m\u00f5ningaid arhitektuurimustreid, mis on otse seotud \u00e4ri loogikaga. Kuigi selles artiklis pean v\u00f5ib-olla piirduma lihtsa loendiga, soovitan teil tutvuda sellega ja m\u00f5elda nende mustritega seotud ideedele. Palun vaadake:<\/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)\">SOLID p\u00f5him\u00f5tted<\/a><\/noindex> <\/li>\n<li>Kontseptsioonid <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\">Ainult selle objekti projekteerimine<\/a><\/noindex>, sealhulgas <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">agregaadid<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">k\u00e4skude ja s\u00fcndmuste<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Heksagonaalne arhitektuur<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">Vastutuse jagamine k\u00e4skude ja p\u00e4ringute vahel (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">S\u00fcndmuste registreerimine<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Tegelaste mudel<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">Mustreid nagu MVC, MVVM ja MVP<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Koost\u00f6\u00f6 l\u00e4henemisviisid<\/b><\/p>\n<p>On ebatakse, et te oleksite projekti ainus liige, kes vastutab s\u00fcsteemi projekteerimise protsessi eest. Vastupidi, t\u00f5en\u00e4oliselt peate suhtlema kolleegidega, kes t\u00f6\u00f6tavad nii teie \u00fclesande raames kui ka v\u00e4ljaspool seda. Sellisel juhul v\u00f5ib osutuda vajalikuks koos kolleegidega hinnata valitud tehnoloogilisi lahendusi, v\u00e4lja selgitada \u00e4ri vajadused ja m\u00f5ista, kuidas \u00fclesandeid paremini jagada.<\/p>\n<p><img decoding=\"async\" alt=\"Tarkvaraarhitektuur ja s\u00fcsteemide projekteerimine: \u00fcldine \u00fclevaade ja allikate teejuht\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Pilt <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> Unsplashi saidilt<\/i><\/p>\n<p>Esimese asjana on vajalik v\u00e4lja t\u00f6\u00f6tada t\u00e4pne ja laialdaselt tunnustatud arusaam sellest, milline on see \u00e4ri eesm\u00e4rk, mida proovite saavutada, ning milliste d\u00fcnaamiliste elementidega tuleb teha koost\u00f6\u00f6d. Grupi modelleerimise tehnikad, sealhulgas <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">s\u00fcndmuste \u0161storm<\/a><\/noindex> (event storming) aitavad m\u00e4rgatavalt kiirendada seda protsessi ja suurendavad teie edukuse t\u00f5en\u00e4osust. Selle t\u00f6\u00f6ga saab tegeleda enne v\u00f5i p\u00e4rast seda, kui olete m\u00e4\u00e4ratlenud <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">teie teenuste piirid<\/a><\/noindex>, ja seej\u00e4rel s\u00fcvendada seda toote k\u00fcpsemise k\u00e4igus. Tuginedes siin saavutatud koosk\u00f5lastuse tasemele, saate samuti formuleerida <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">\u00fchise keele<\/a><\/noindex> teie kitsas kontekst, milles te t\u00f6\u00f6tate. Kui peate r\u00e4\u00e4kima oma s\u00fcsteemi arhitektuurist, v\u00f5ib teil olla abi <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">C4 mudelist<\/a><\/noindex>, mille on esitanud <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>, eriti kui peate m\u00f5istma, kui s\u00fcgavale peate probleemide \u00fcksikasjadesse laskuma, visualiseerides asju, mida soovite edastada.<\/p>\n<p>T\u00f5en\u00e4oliselt on sellel teemal ka teisi k\u00fcpsemaid tehnoloogiaid, mis on sama kasulikud kui objektorienteeritud projekteerimine. Kuid me naaseme l\u00f5puks ikka ja taas valdkonna arusaamise juurde, seega on teadmised ja kogemused <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\">objektorienteeritud projekteerimise<\/a><\/noindex> kasuks.<br \/>\n<br \/>Allikas: <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.0.1 - 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 \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\" \/>\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\/et\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Tarkvara arhitektuur ja s\u00fcsteemide projekteerimine: \u00fclevaade ja ressursijuht | ProHoster","description":"Tere, kolleegid. T\u00e4na esitame t\u00f5lke Tugberk Ugurlu artiklist, kes on v\u00e4iksemas mahus nautinud kaasaegsete tarkvaras\u00fcsteemide projekteerimise p\u00f5him\u00f5tteid. Siin on, mida autor enda kohta \u00fctleb: Kuna on t\u00f5eliselt v\u00f5imatu k\u00e4sitleda sellist tohutut teemat nagu arhitektuurimustrit ja projekteerimismustreid alates 2019. aastast, soovitame","canonical_url":"https:\/\/prohoster.info\/et\/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":"et_EE","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 \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","og:url":"https:\/\/prohoster.info\/et\/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\/et\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}