{"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\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","title":{"rendered":"L\u00fchidalt k\u00f5ige olulisest: Clean Architecture, Robert C. Martin","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>See on r\u00e4\u00e4gib raamatu muljetest, samuti k\u00e4sitletakse m\u00f5ningaid m\u00f5isteid ja teadmisi, mis t\u00e4nu sellele raamatule on omandatud.<\/p>\n<h3>Arhitektuur<\/h3>\n<p>\nKas sa, lugedes seda publikatsiooni, saad anda selge vastuse k\u00fcsimusele, mis on arhitektuur? Mis on arhitektuur programmeerimise ja projekteerimise kontekstis? Milline roll tal on? Selle termini osas on siiski palju ebaselgust. Tundub, et k\u00f5ik on selge, kuid kuidagi abstraktne ja ilma t\u00e4psuseta. Martin peab, ja mina n\u00f5ustun temaga, et rakendusel on kaks komponenti: <\/p>\n<ol>\n<li>K\u00e4itumine (behavior) \u2014 funktsioonid ja \u00fclesanded, mida programm (komponent, teenus) t\u00e4idab.<\/li>\n<li>Arhitektuur \u2014 see termin r\u00e4\u00e4gib eelk\u00f5ige rakenduse muutmisest.<\/li>\n<\/ol>\n<p>\nKuid isegi kui rakendus t\u00e4idab v\u00e4ga h\u00e4sti \u00fclesannet, mida ta peab t\u00e4itma, ei t\u00e4henda see, et tal on hea arhitektuur. Arhitektuur ei ole rakenduse k\u00e4itumise kohta. Arhitektuur on kergesti muudetavuse, arhitektuur on kergesti juurutamise, arhitektuur on arendamise s\u00f5ltumatuse kohta. Arhitektuur on kiirus, millega uuele tiimiliikmele arusaamine tuleb.<\/p>\n<p>Ja kuidas seda arhitektuuri ehitada, kuidas vabaneda peavalust v\u00e4ikeste n\u00f5udmiste muutuste t\u00f5ttu PM-ilt v\u00f5i sidusr\u00fchmalt: sellest r\u00e4\u00e4gibki raamat.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Autoritest<\/h3>\n<p>\nEnne kui ma midagi r\u00e4\u00e4gin selle raamatuga seoses, tahan \u00f6elda natuke enda kohta.<br \/>\nPraegu olen ma Strong Junior Developer, spetsialiseerudes teenuste arendamisele ASP .NET CORE abil.<\/p>\n<p>Olen juba aasta t\u00f6\u00f6tanud \u00fches 'galeris', ja tundub, et hakkama saan.<\/p>\n<p>Seda raamatut olen juba kaks korda lugenud, ja soovitan lugemist k\u00f5igile:<\/p>\n<ul>\n<li>s\u00fcsteemide arendajatele;<\/li>\n<li>front-end arendajatele;<\/li>\n<li>back-end arendajatele;<\/li>\n<li>ja isegi devopsidele.<\/li>\n<\/ul>\n<p>\nKokkuv\u00f5ttes soovitan lugeda k\u00f5igile, kes on kuidagi seotud tarkvara arendamisega, m\u00f5tlen just otsese arendusega erinevate Sealide ja PM-ide kohta siin ei arvestata (kuigi oleks ka kasulik teada, miks arendaja kulutab \u00fclesandele kaks korda rohkem aega), soovitan seda raamatut lugeda.<br \/>\nJa n\u00fc\u00fcd p\u00fc\u00fcan argumenteerida, miks ma nii arvan.<\/p>\n<p>Veidi autori kohta sellest raamatust (kuna minu jaoks m\u00e4ngib autori autoriteet suurt rolli). Ma arvan, et te hakkate mind m\u00f5istma, kuigi see ei ole alati \u00f5ige, kuid kui autoriteetne inimene valdkonnas \u00fctleb midagi, tunnete te sellele palju rohkem usaldust. N\u00e4iteks usun, et usalte rohkem arsti poolt m\u00e4\u00e4ratud diagnoosi kui m\u00f5ne suvalise inimesel rahvas, kes on lihtsalt s\u00fcmptomeid internetist otsinud.<\/p>\n<p>Robert Martin, tuntud ka kui Unkle Bob (onu Bob) \u2014 on t\u00f6\u00f6tanud programeerimise valdkonnas, h\u00f5lmates erinevaid s\u00fcsteeme (veebiteenustest kuni integreeritud s\u00fcsteemideni) alates 1970. aastast. Ta on tehniline konsultant ja arhitekt, on kirjutanud erinevatesse tehnilistesse ajakirjadesse, on iseenesest v\u00e4ga kogenud programmeerija ja inimene, kes m\u00e4ngis \u00fcht v\u00f5tmerolli maailmakuulsate SOLID printsiipide loomisel (v\u00f5ib \u00f6elda, et nende looja). Samuti tahaksin lisada, et see raamat soovitas mulle minu tiimijuht, kellel on \u00fcle 15-aastane t\u00f6\u00f6kogemus.<\/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'i lehel, kus figureeris s\u00f5na \u201es\u00f5ltuvus\u201c. Mis see on, kes kellelt s\u00f5ltub, mida t\u00e4pselt t\u00e4hendab \u201es\u00f5ltuda\u201c ja kuidas m\u00f5ni klass v\u00f5ib kellestki s\u00f5ltuda? <\/p>\n<p>Ja raamatu lugemise k\u00e4igus m\u00f5istsin kaks asjaolu:<\/p>\n<p>S\u00f5ltuvus on termin, mis t\u00e4hendab, et mingi klass (komponent, teenus) teab mingist teisest klassist (komponendist, teenusest), ja see teadmine m\u00e4\u00e4ratakse koodi tasandil (n\u00fc\u00fcd saavad Java, C# ja C-i programmeerijad mind m\u00f5ista) kindla nimetu ruumi importimise kaudu. Teisis\u00f5nu: teil on klass A nimetu ruumiga Default.Classes ja klass B Another.Classes. Nii et kui klass A allika koodis kasutab using Another.Classes; \u2014 t\u00e4hendab see, et klass A s\u00f5ltub klassist B. <br \/>\nSelleks, et m\u00f5ista skeemil, 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 v\u00e4hem s\u00f5ltuv kui klass A. Ja muudatused klassis A ei kahjusta klassi B.<\/p>\n<p><img decoding=\"async\" alt=\"L\u00fchidalt k\u00f5ige olulisest: 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 peamine p\u00f5hjus, miks ma seda raamatut lugesin, oli S\u041eLID printsiipide selgitamine esmaste allikate kaudu, kuna onu Rob t\u00f6\u00f6tas nende printsiipide v\u00e4lja ja v\u00f5ib \u00f6elda, et just tema t\u00f5ttu kuuleme selle nime \u2014 SOLID.<br \/>\nNeedless to say, these principles suggest and recommend designing your applications according to 5 rules:<\/p>\n<p>S \u2014 SRP (Single Responsibility Principle)<br \/>\nO \u2014 OCP (Open-Closed Principle)<br \/>\nL \u2014 LSP (Liskov Substitution Principle)<br \/>\nI \u2014 ISP (Interface Segregation Principle)<br \/>\nD \u2014 DIP (Dependency Inversion Principle)<\/p>\n<p>All these principles can be applied at the levels of classes and objects, modules and components, and layers (services).<\/p>\n<p>If you think that the Single Responsibility Principle means that a class or module should only do one thing, then you definitely need to read at least the chapter about SOLID. Because that definition given above is a consequence, but not the definition of the principle itself.<\/p>\n<h3>About Dependency Inversion<\/h3>\n<p>\nI would like to pay special attention to the explanation of the Dependency Inversion Principle (the D from SOLID). While reading the book, I realized that it's not just a principle; it\u2019s also a mechanism and tool that allows you to change the direction of your dependencies and make, for example, your business logic (DOMAIN) independent from the implementation details of the Data Access Layer (DAL).<\/p>\n<p><img decoding=\"async\" alt=\"L\u00fchidalt k\u00f5ige olulisest: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/0bceb51ecdb3d220d8a311d0ccdb26d7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlthough the principle itself, along with the others in SOLID, means something slightly different from the mechanism, this mechanism is used throughout the book, and it is one of the main methods for inverting and changing the direction of your dependencies, which is also used in DDD.<\/p>\n<h3>On Making Architectural Decisions<\/h3>\n<p>\nThe book will often mention the principle of making important architectural decisions: regarding which database to use, which framework to use, which library to include, what to use as a search engine, etc.<\/p>\n<p>The author believes that you should make SUCH decisions AS LITTLE AS POSSIBLE. Because requirements can change, performance constraints can also change, and the behavioral aspect has a tendency to change. During development, some solution may seem less effective than another, less convenient than another. The strength of your architecture will determine how quickly and painlessly you can replace one technology with another (by the way, OCP emphasizes this).<\/p>\n<p>For example, suddenly, you may decide to use MongoDB instead of PostgreSQL, or even files, or use mocked data with which operations will be performed in memory. And under certain conditions, this may require rewriting almost all logic. <\/p>\n<p>Selle v\u00e4ltimiseks saame kasutada m\u00f5ningaid mehhanisme, mis viivad otsuse tegemise aega maksimaalselt kaugele. \u00dcks neist mehhanismidest on abstraktsioon.<\/p>\n<h3>Viidatud DDD-le<\/h3>\n<p>\nDDD \u2014 Domeenip\u00f5hine disain \u2014 l\u00e4henemine teenuste arendamisele keerulise \u00e4ri loogikaga, mis on muutuste suhtes kriitiline ja mis on suunatud projekti juhtide (PM-id, m\u00fc\u00fcgijuhid jne) maksimaalsele arusaamisele, et rikkaid andmeid saaksid m\u00f5ista projektiga seotud inimesed. See t\u00e4hendab, et k\u00f5ik projekti liikmed kasutavad \u00fchte ja sama keelt ja saavad \u00fcksteisest aru, et k\u00f5ik m\u00f5tleksid \u00fchiselt \u00fches domeenis l\u00e4htudes \u00fchtsetest \u00e4ri reeglitest.<\/p>\n<p>Kui olete DDD pooldaja, soovite seda olla v\u00f5i te ei saa sellest aru, aga soovite aru saada \u2014 raamat on kohustuslik lugeda, eriti raamatu teine osa.<\/p>\n<p>Siin selgitab autor S\u00f5ltuvuse reegli olemasolu, ja miks, j\u00e4rgides seda \u2014 ehitate te rakenduse \u00f5iget arhitektuuri. Miks s\u00f5ltuvused peaksid liikuma k\u00f5rge poliitika komponente; miks <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/domain\/\"   title=\"domeen\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4077\">domeen<\/a> (K\u00f5rge poliitika komponent) peab olema s\u00f5ltumatu infrastruktuurist ja kuidas see lihtsustab teie juurutamist ja arendamist<\/p>\n<p><img decoding=\"async\" alt=\"L\u00fchidalt k\u00f5ige olulisest: 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 detailid v\u00f5ivad teie s\u00fcsteemi kahjustada ja takistada selle edasist arengut ilma valuta.<\/p>\n<p>Pidage meeles!<br \/>\nAndmebaas on rakenduse detail<br \/>\nKliendid (Web, Mobile jne) \u2014 rakenduse detailid<br \/>\nRaamistikud on rakenduse detailid<\/p>\n<p>K\u00f5ikidest nendest tuleb maksimaalselt abstraktselt eralduda ja mitte s\u00f5ltuda, kasutades \u00fclaltoodud s\u00f5ltuvuse p\u00f6\u00f6ramise p\u00f5him\u00f5tet liideste ja abstraktsioonide ning S\u00f5ltuvuse reegli ja muude mehhanismide abil<\/p>\n<h3>Moodulite loomise meetodid<\/h3>\n<p>\nSee jaotis meeldis mulle eriti, kuna olen teenuste arendaja ASP .NET CORE-is. Siin r\u00e4\u00e4gitakse meetoditest, kuidas luua \u00fchtne teenuse arhitektuur valmis komponentidest. <\/p>\n<p>Robert kirjeldas 4 v\u00f5imaliku kihistiku jagamise skeemi.<\/p>\n<p>Ta andis m\u00f5ista, miks nii sageli kasutatav kolme kihiga arhitektuuri mehanism: UI (kontrollerid), Teenused (Domeen), DAL (Andmebaas) \u2014 on v\u00f5rreldes teistega \u00fcsna halb. Olen n\u00e4inud mitte palju projekte, kuid igas, n\u00e4iteks mikroteenuses, kasutatakse just kolme kihiga arhitektuuri. <\/p>\n<p>Samuti kasutatakse sageli arhitektuuri \u00fcks-komponent-\u00fcks-teenus. \u00dcldiselt on m\u00f5lemad head, kuid sellel on piisavalt palju puudusi, v\u00f5rreldes n\u00e4iteks DDD kasutamise arhitektuuriga, eriti kriitiliste muudatuste ja keeruliste teenuste puhul.<\/p>\n<p>Kokkuv\u00f5ttes j\u00f5udsin selle raamatu \u00fclevaate l\u00f5puni. Raamat ise mulle v\u00e4ga meeldis, ei kahetse loetut, t\u00e4nan autorit. Teile, kallid lugejad, ait\u00e4h t\u00e4helepanu eest, \u00e4rge olge liiga karmid \u2014 see publikatsioon p\u00f5hineb muljetest raamatust ja minu isiklikust entusiasmist.<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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - 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.\" \/>\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\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.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\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/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 lugu raamatust saadud muljetest ning k\u00e4sitletakse m\u00f5ningaid m\u00f5isted ja teadmisi, mida t\u00e4nu sellele raamatule on omandatud. Arhitektuur. Kas saate, lugedes seda publikatsiooni, arutleda?","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/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.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/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","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\/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}]}}