{"id":37273,"date":"2019-10-31T22:16:42","date_gmt":"2019-10-31T19:16:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/korotko-o-glavnom-clean-architecture-robert-c-martin\/"},"modified":"2019-10-31T22:16:42","modified_gmt":"2019-10-31T19:16:42","slug":"korotko-o-glavnom-clean-architecture-robert-c-martin","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/korotko-o-glavnom-clean-architecture-robert-c-martin","title":{"rendered":"L\u00fchidalt peamisest: Clean Architecture, Robert C. Martin","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>See on jutt raamatust, samuti k\u00e4sitleme m\u00f5ningaid m\u00f5isteid ja teadmisi, mida t\u00e4nu sellele raamatule on omandatud.<\/p>\n<h3>Arhitektuur<\/h3>\n<p>\nKas te suudate sellele postitusele lugedes selgelt vastata k\u00fcsimusele, mis on arhitektuur? Mis on arhitektuur programmeerimise ja disaini kontekstis? Millist rolli see m\u00e4ngib? Selles m\u00f5ttes on palju ebaselgust. K\u00f5ik tundub justkui selge, kuid siiski abstraktne ja t\u00e4psuseta. Martin \u00fctleb, ja ma olen temaga \u00fchel meelel, et rakendusel on kaks osa: <\/p>\n<ol>\n<li>K\u00e4itumine (behavior) \u2014 funktsioonid ja \u00fclesanded, mida programm (komponent, teenus) t\u00e4idab.<\/li>\n<li>Arhitektuur \u2014 see m\u00f5isted k\u00e4sitleb rohkem rakenduse muutmist.<\/li>\n<\/ol>\n<p>\nKuid isegi kui rakendus t\u00e4idab v\u00e4ga h\u00e4sti \u00fclesande, mille ta peab t\u00e4itma, ei t\u00e4henda see, et tal on hea arhitektuur. Arhitektuur ei ole rakenduse k\u00e4itumise kohta. Arhitektuur on seotud muudatuste lihtsusega, arhitektuur on seotud juurutamise lihtsusega, arhitektuur on seotud arendamise s\u00f5ltumatusega. Arhitektuur on seotud sellega, kui kiiresti uus inimene meeskonnas m\u00f5istmisele j\u00f5uab.<\/p>\n<p>Nii ehitatakse seda arhitektuuri, kuidas vabaneda peavalust, kui PM-ist v\u00f5i sidusr\u00fchmast tuleb v\u00e4ikseid n\u00f5udmiste muudatusi: sellest r\u00e4\u00e4gib ka raamat.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Autoritest<\/h3>\n<p>\nEnne kui r\u00e4\u00e4gin millestki selle raamatu kohta, tahan natuke endast r\u00e4\u00e4kida.<br \/>\nPraegu olen ma Strong Junior Developer, kes spetsialiseerub teenuste arendamisele ASP .NET CORE abil.<\/p>\n<p>Olen aastast t\u00f6\u00f6tanud \u00fches 'galerii' projektis ja paistab, et j\u00e4rk-j\u00e4rgult saan hakkama.<\/p>\n<p>Olen seda raamatut juba kaks korda lugenud ja soovitan seda k\u00f5igile:<\/p>\n<ul>\n<li>integraaltarkvara arendajatele;<\/li>\n<li>veebiarendajatele;<\/li>\n<li>tagaplaanide arendajatele;<\/li>\n<li>ja isegi dev-ops spetsialistidele.<\/li>\n<\/ul>\n<p>\nL\u00f5ppude l\u00f5puks, k\u00f5igile, kes on seotud tarkvara arendusega, silmas pidades otsest arendust, n\u00e4iteks erinevaid m\u00fc\u00fcgi- ja projektijuhte siia ei kaasata (kuigi oleks kasulik teada, miks arendaja v\u00f5ib \u00fclesande t\u00e4itmiseks kaks korda rohkem aega kulutada), soovitan seda raamatut lugeda.<br \/>\nJa n\u00fc\u00fcd p\u00fc\u00fcan ma p\u00f5hjendada, miks ma nii arvan.<\/p>\n<p>Veidi autori kohta, sest minu jaoks on autoriteet kirjutaja osas v\u00e4ga oluline. Arvan, et saate minust aru; kuigi see ei ole alati \u00f5ige, usaldate autoriteetse inimese s\u00f5nu rohkem, kui kellelegi, kes on lihtsalt rahvamassist (kes on s\u00fcmptomeid google'inud).<\/p>\n<p>Robert Martin, tuntud ka kui Uncle Bob (onkli Bob) \u2014 t\u00f6\u00f6tab programmeerimise valdkonnas, h\u00f5lmates erinevaid s\u00fcsteeme (alates veebi teenustest kuni sisseehitatud s\u00fcsteemideni) alates 1970. aastast. Ta on tehniline konsultant ja arhitekt, on kirjutanud erinevatesse tehnilistesse ajakirjadesse, olles v\u00e4ga kogenud programmeerija ning inimene, kes m\u00e4ngis \u00fcht olulist rolli k\u00f5igile tuntud SOLID p\u00f5him\u00f5tete loomisel (v\u00f5ib \u00f6elda, et on nende looja). Samuti tahaksin mainida, et see raamat on mulle soovitanud minu tiimijuht, kes omab rohkem kui 15-aastast t\u00f6\u00f6kogemust.<\/p>\n<h2>Raamatust<\/h2>\n<p><\/p>\n<h3>S\u00f5ltuvused<\/h3>\n<p>\nEnne raamatu lugemist lugesin ma \u00fcsna palju artikleid samal Habr'is, kus k\u00f5neldi sellisest s\u00f5nast nagu \"s\u00f5ltuvus\". Mis see on, kes keda s\u00f5ltub, mida t\u00e4pselt t\u00e4hendab \"s\u00f5ltuda\" ja kuidas v\u00f5ib m\u00f5ni klass s\u00f5ltuda kelleltki? <\/p>\n<p>Ja raamatu lugemise k\u00e4igus m\u00f5istsin kahte asja:<\/p>\n<p>S\u00f5ltuvus on termin, mis t\u00e4hendab, et m\u00f5ni klass (komponent, teenus) teab m\u00f5nest teisest klassist (komponendist, teenusest) ja see teadmine m\u00e4\u00e4ratakse kooditasemel (praegu saavad Java, C# ja C keele arendajad mind aru saada) teatud nimede impordiga. Teisis\u00f5nu: teil on klass A, mille nimede ruum on Default.Classes, ja klass B, mille nimede ruum on Another.Classes. Kui klassi A allika koodis kasutatakse 'using Another.Classes;', siis see t\u00e4hendab, et klass A s\u00f5ltub klassist B. <br \/>\nSkeemi m\u00f5istmiseks, kus on s\u00f5ltuv klass ja kus mitte \u2014 vaadake noole suunda: 1) nool osutab klassist A klassi B suunas. See t\u00e4hendab, et klass B on s\u00f5ltumatum kui klass A. Ja klassi A muutused ei kahjusta klassi B.<\/p>\n<p><img decoding=\"async\" alt=\"L\u00fchidalt peamisest: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/e8a54c03bc1aaf23aec3d24b002fc866.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>SOLID<\/h3>\n<p>\n\u00dcks peamisi p\u00f5hjuseid, miks ma selle raamatu lugemist alustasin, oli SOLID printsiipide selgitamine esmaallikast, kuna onu Bob arendas neid printsiipe ja v\u00f5ib \u00f6elda, et t\u00e4nu temale kuuleme seda nime \u2014 SOLID.<br \/>\nNeile, kes ei ole kursis \u2014 need printsiipe \u00f6eldakse ja soovitatakse, et oma rakendusi disainitaks vastavalt viiele reeglile:<\/p>\n<p>S \u2014 SRP (\u00dcksiku vastutuse printsiip)<br \/>\nO \u2014 OCP (Avatud-suletud printsiip)<br \/>\nL \u2014 LSP (Liskovi asenduse printsiip)<br \/>\nI \u2014 ISP (Liidese segregatsiooni printsiip)<br \/>\nD \u2014 DIP (S\u00f5ltuvuse p\u00f6\u00f6ramise printsiip)<\/p>\n<p>K\u00f5iki neid printsiibe saab rakendada klasside ja objektide, moodulite ja komponentide ning kihtide (teenuste) tasandil.<\/p>\n<p>Kui arvate, et \u00dcksiku vastutuse printsiip t\u00e4hendab, et klass v\u00f5i moodul peaks tegema ainult \u00fchte asja \u2014 siis peate kindlasti lugema v\u00e4hemalt peat\u00fckki SOLID-i kohta. Sest see eeltoodud m\u00e4\u00e4ratlus on tagaj\u00e4rg, mitte ei ole printsiibi enda m\u00e4\u00e4ratlemine.<\/p>\n<h3>S\u00f5ltuvuse p\u00f6\u00f6ramine<\/h3>\n<p>\nSoovin p\u00f6\u00f6rata erilist t\u00e4helepanu s\u00f5ltuvuse inversiooniprinsiibi (D SOLID\u2019ist) selgitusele. Raamatu lugemise k\u00e4igus m\u00f5istsin, et see ei ole lihtsalt p\u00f5him\u00f5te, vaid ka mehhanism ja t\u00f6\u00f6riist, millega saate muuta oma s\u00f5ltuvuste suunda ja n\u00e4iteks teha \u00e4riloogika (DOMAIN) s\u00f5ltumatuks andmejuhtimise kihist (DAL).<\/p>\n<p><img decoding=\"async\" alt=\"L\u00fchidalt peamisest: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/0bceb51ecdb3d220d8a311d0ccdb26d7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuigi ise p\u00f5him\u00f5te S\u00d5LIDis t\u00e4hendab koos teistega veidi midagi muud kui mehhanism, kasutatakse seda mehhanismi raamatus pidevalt, ning see on \u00fcks peamisi meetodeid teie s\u00f5ltuvuste inversiooniks ja suuna muutmiseks, mida tegelikult kasutatakse DDD-s.<\/p>\n<h3>Architektuuriotsuste tegemine<\/h3>\n<p>\nRaamatus mainitakse v\u00e4ga sageli p\u00f5him\u00f5tet oluliste architektuuriotsuste tegemisest: millist andmebaasi kasutada, millist raamistikku valida, millist teeki siduda, mida kasutada otsingumootorina jne.<\/p>\n<p>Autori arvates peaksite selliseid otsuseid langetama KUI V\u00d5IMALIKULT HARVA. Kuna n\u00f5uded v\u00f5ivad muutuda, v\u00f5ivad j\u00f5udluse piirangud samuti varieeruda ning k\u00e4itumuslik komponent kalduvad muutuma. Arendusprotsessi k\u00e4igus v\u00f5ib \u00fcks v\u00f5i teine lahendus osutuda v\u00e4hem t\u00f5husaks kui teine, v\u00e4hem mugavaks kui m\u00f5ni teine. Ja teie arhitektuuri tugevus m\u00e4\u00e4rab, kui kiiresti ja valutult suudate \u00fche tehnoloogia teise vastu vahetada (nagu viitab ka OCP).<\/p>\n<p>N\u00e4iteks, \u00fchel hetkel otsustate asendada Postgresql'i MongoDb\u2019ga, v\u00f5i hoopis kasutada faile, v\u00f5i kasutada simuleeritud andmeid, mille operatsioonid toimuvad m\u00e4lus. Teatud tingimustel v\u00f5ib see sundida \u00fcmber kirjutama peaaegu kogu loogika. <\/p>\n<p>Selliste olukordade v\u00e4ltimiseks saame kasutada teatud mehhanisme, mis viivad otsuste langetamise aega maksimaalselt edasi. \u00dcks neist mehhanismidest on abstraktsioon.<\/p>\n<h3>Viidatud DDD<\/h3>\n<p>\nDDD \u2014 Domain Driven Design \u2014 on l\u00e4henemine teenuste arendusele, kus on keeruline \u00e4riloogika, mis on muutustele kriitiline, ja mis on suunatud projekti juhtivate positsioonide (PM-ide, m\u00fc\u00fcgijuhid jne) maksimaalsele m\u00f5istmisele, koos rikka arendusega. Eesm\u00e4rk on, et k\u00f5ik projekti osalised r\u00e4\u00e4giksid \u00fchte keelt ehk ubiquitous language, mist\u00f5ttu saaks iga\u00fcks teist m\u00f5ista ning k\u00f5ik m\u00f5tleksid samas domeenis \u00fchiste \u00e4rireeglitega.<\/p>\n<p>Kui olete DDD pooldaja, v\u00f5i soovite selleks saada, v\u00f5i kui te ei m\u00f5ista midagi, aga soovite m\u00f5ista \u2014 siis see raamat on kohustuslik lugemine, eriti raamatu teine osa.<\/p>\n<p>Siin seletab autor, mis on Dependency Rule, ja miks selle j\u00e4rgimine aitab teil luua \u00f5ige rakenduse arhitektuuri. Miks s\u00f5ltuvused peavad liikuma suunas, kus on k\u00f5rge poliitika komponendid, miks <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/domain\/\"   title=\"domeeni\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4077\">domeeni<\/a> (k\u00f5rge poliitika komponent) peab olema s\u00f5ltumatu infrastruktuurist ja kuidas see lihtsustab teie juurutamist ja arendust.<\/p>\n<p><img decoding=\"async\" alt=\"L\u00fchidalt peamisest: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/be7b51d067415390e0098339fb6cda46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Abstraktsioon<\/h3>\n<p>\nOnu Rob r\u00e4\u00e4gib ka sellest, kuidas rakenduse \u00fcksikasjad v\u00f5ivad kahjustada teie s\u00fcsteemi ja takistada selle edasist evolutsiooni ilma valudeta.<\/p>\n<p>Pidage meeles!<br \/>\nDB on rakenduse \u00fcksikasjalik element.<br \/>\nKliendid (Web, mobiil jne) \u2014 on rakenduse \u00fcksikasjad.<br \/>\nRaamistikke on rakenduse teostamise element.<\/p>\n<p>K\u00f5igest sellest tuleb maksimaalselt abstraktselt l\u00e4heneda ja mitte s\u00f5ltuda, kasutades \u00fclaltoodud s\u00f5ltuvuse inversiooni, liideseid ja abstraktsioone, s\u00f5ltuvuse reeglit ning teisi mehhanisme.<\/p>\n<h3>Modulite \u00fclesehitamise meetodid.<\/h3>\n<p>\nSee jagu meeldis mulle eriti, kuna olen ASP .NET CORE teenuste arendaja. Siin r\u00e4\u00e4gitakse teenuse \u00fchtse arhitektuuri ehitamise metodoloogiatest, kasutades valmis komponente. <\/p>\n<p>Robert kirjeldas 4 v\u00f5imalikku kihtide lahendamist.<\/p>\n<p>Ta selgitas, miks nii tihti kasutatav kolm kihilist arhitektuuri mehhanism: UI (kontrollerid), teenused (domeen), DAL (andmebaas) on teistega v\u00f5rreldes piisavalt halb. Olen n\u00e4inud mitte v\u00e4ga palju projekte, kuid igas, n\u00e4iteks mikroteenuses, kasutatakse just kolme kihilist arhitektuuri tagaplaanil. <\/p>\n<p>Samuti kasutatakse sageli arhitektuuri, kus \u00fcks komponent on \u00fcks teenus. \u00dcldiselt on nad m\u00f5lemad head, kuid neil on rohkesti miinuseid, v\u00f5rreldes n\u00e4iteks DDD kasutamisega, eriti kriitiliselt muudetavates ja keerulistes teenustes.<\/p>\n<p>Kokkuv\u00f5ttes on see raamatukirjeldus j\u00f5udnud l\u00f5pule. Mulle meeldis raamat v\u00e4ga, ei kahetse, et seda lugesin. Ait\u00e4h autorile. Kallid lugejad, ait\u00e4h t\u00e4helepanu eest, palun \u00e4rge olge liiga ranged \u2013 see publikatsioon p\u00f5hineb raamatu muljetel ja minu isiklikul entusiasmiga.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464185\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c \u0447\u0435\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430? \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f? \u041a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u043e\u043d\u0430 \u0438\u0433\u0440\u0430\u0435\u0442? \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u044f\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0435\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0435. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27958,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c \u0447\u0435\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430? \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f? \u041a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u043e\u043d\u0430 \u0438\u0433\u0440\u0430\u0435\u0442? \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u044f\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0435\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0435.\" \/>\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\/novosti-interneta\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c: Clean Architecture, Robert C. Martin | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c \u0447\u0435\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430? \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f? \u041a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u043e\u043d\u0430 \u0438\u0433\u0440\u0430\u0435\u0442? \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u044f\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0435\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\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:16:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:16:42+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\udd47L\u00fchidalt: Clean Architecture, Robert C. Martin | ProHoster","description":"See on jutt raamatu muljetest, samuti k\u00e4sitletakse m\u00f5ningaid m\u00f5isted ja teadmisi, mida selle raamatu abil on omandatud. Arhitektuur. Kas saate, lugedes seda publikatsiooni, selgelt vastata k\u00fcsimusele, mis on arhitektuur? Mis on arhitektuur programmeerimise ja projekteerimise kontekstis? Milline roll tal on? Selle termini osas on piisavalt palju arusaamatusi.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/korotko-o-glavnom-clean-architecture-robert-c-martin","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\u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c: Clean Architecture, Robert C. Martin | ProHoster","og:description":"\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0438 \u043e \u043a\u043d\u0438\u0433\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u0439 \u043a\u043d\u0438\u0433\u0435, \u0431\u044b\u043b\u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u044b \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u041c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438 \u0432\u044b, \u0447\u0438\u0442\u0430\u044f \u044d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e, \u0434\u0430\u0442\u044c \u0447\u0435\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430? \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f? \u041a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u043e\u043d\u0430 \u0438\u0433\u0440\u0430\u0435\u0442? \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u044f\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0435\u0441\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0435.","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/korotko-o-glavnom-clean-architecture-robert-c-martin","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:16:42+00:00","article:modified_time":"2019-10-31T19:16:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37273","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-03-05 11:16:40","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:30:00","updated":"2026-03-05 11:16:40"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37273","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=37273"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37273\/revisions"}],"predecessor-version":[{"id":163180,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37273\/revisions\/163180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27958"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}