{"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\/sk\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","title":{"rendered":"Kr\u00e1tko o hlavnom: Clean Architecture, Robert C. Martin","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Toto bude rozpr\u00e1vanie o dojmoch z knihy, a taktie\u017e bud\u00fa presk\u00faman\u00e9 niektor\u00e9 pojmy a poznatky, ktor\u00e9 boli v\u010faka tejto knihe z\u00edskan\u00e9.<\/p>\n<h3>Architekt\u00fara<\/h3>\n<p>\nM\u00f4\u017eete, \u010d\u00edtaj\u00fac t\u00fato publik\u00e1ciu, poskytn\u00fa\u0165 jasn\u00fa odpove\u010f na ot\u00e1zku, \u010do je architekt\u00fara? \u010co znamen\u00e1 architekt\u00fara v kontexte programovania a navrhovania? Ak\u00fa \u00falohu zohr\u00e1va? V tomto pojme je dos\u0165 nejasnost\u00ed. A zd\u00e1 sa, \u017ee je v\u0161etko jasn\u00e9, ale akosi abstraktn\u00e9, a bez presnosti. Martin je presved\u010den\u00fd, a ja s n\u00edm s\u00fahlas\u00edm, \u017ee aplik\u00e1cia m\u00e1 dve zlo\u017eky: <\/p>\n<ol>\n<li>Spr\u00e1vanie (behavior) \u2014 funkcie a \u00falohy, ktor\u00e9 program (komponent, slu\u017eba) vykon\u00e1va.<\/li>\n<li>Architekt\u00fara \u2014 tento pojem sa do ve\u013ekej miery t\u00fdka zmien aplik\u00e1cie.<\/li>\n<\/ol>\n<p>\nAle aj ke\u010f aplik\u00e1cia ve\u013emi dobre pln\u00ed \u00falohu, ktor\u00fa m\u00e1, neznamen\u00e1 to, \u017ee m\u00e1 dobr\u00fa architekt\u00faru. Architekt\u00fara nie je o spr\u00e1van\u00ed aplik\u00e1cie. Architekt\u00fara je o \u013eahkosti zmien, architekt\u00fara je o \u013eahkosti nasadenia, architekt\u00fara je o nez\u00e1vislosti v\u00fdvoja. Architekt\u00fara je o r\u00fdchlosti, s ktorou nov\u00e9 \u010dlovek v t\u00edme porozumie.<\/p>\n<p>A takto sa buduje t\u00e1to architekt\u00fara, ako sa zbavi\u0165 bolesti hlavy pri mal\u00fdch zmen\u00e1ch po\u017eiadaviek od PM-a alebo od akcion\u00e1ra: o tom a povie t\u00e1to kniha.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>O autoroch<\/h3>\n<p>\nPredt\u00fdm, ne\u017e poviem nie\u010do o tejto knihe, chcem poveda\u0165 nie\u010do o sebe.<br \/>\nMoment\u00e1lne som Strong Junior Developer, \u0161pecializujem sa na v\u00fdvoj slu\u017eieb prostredn\u00edctvom ASP .NET CORE.<\/p>\n<p>U\u017e rok pracujem na jednej \u201egalerke\u201c a zd\u00e1 sa, \u017ee si s t\u00fdm postupne por\u00e1dzam.<\/p>\n<p>T\u00fato knihu som u\u017e pre\u010d\u00edtal 2-kr\u00e1t a odpor\u00fa\u010dam ju v\u0161etk\u00fdm:<\/p>\n<ul>\n<li>v\u00fdvoj\u00e1rom embedded syst\u00e9mov;<\/li>\n<li>front-end v\u00fdvoj\u00e1rom;<\/li>\n<li>back-end v\u00fdvoj\u00e1rom;<\/li>\n<li>a dokonca DevOps-om.<\/li>\n<\/ul>\n<p>\nV podstate v\u0161etk\u00fdm, ktor\u00ed s\u00fa aspo\u0148 nejako zapojen\u00ed do v\u00fdvoja softv\u00e9ru, hovor\u00edm o priamom v\u00fdvoji, r\u00f4zni Sales a PM-ovia sem nie s\u00fa zahrnut\u00ed (aj ke\u010f by bolo u\u017eito\u010dn\u00e9 vedie\u0165, pre\u010do Dev trv\u00e1 dvakr\u00e1t dlh\u0161ie na \u00falohu), odpor\u00fa\u010dam pre\u010d\u00edta\u0165 si t\u00fato knihu.<br \/>\nA teraz sa pok\u00fasim od\u00f4vodni\u0165, pre\u010do to pova\u017eujem za d\u00f4le\u017eit\u00e9.<\/p>\n<p>Trochu o autorovi t\u00e9to knihy (proto\u017ee pro m\u011b je autorita pisatele velmi d\u016fle\u017eit\u00e1). Mysl\u00edm, \u017ee m\u011b pochop\u00edte, i kdy\u017e to nemus\u00ed b\u00fdt v\u017edy spr\u00e1vn\u00e9, ale pokud v\u00e1m n\u011bco \u0159\u00edk\u00e1 autoritativn\u00ed osoba v oboru \u2013 projevujete mnohem v\u011bt\u0161\u00ed d\u016fv\u011bru k jej\u00edmu slovu. Nap\u0159\u00edklad si mysl\u00edm, \u017ee v\u00edce uv\u011b\u0159\u00edte diagn\u00f3ze, kterou v\u00e1m stanov\u00ed l\u00e9ka\u0159, ne\u017e n\u011bkomu z davu (kdo si vygooglil symptomy).<\/p>\n<p>Robert Martin, zn\u00e1m\u00fd tak\u00e9 jako Uncle Bob (str\u00fd\u010dek Bob), pracuje v oblasti programov\u00e1n\u00ed, a to r\u016fzn\u00fdch syst\u00e9m\u016f (od webov\u00fdch slu\u017eeb po embedded syst\u00e9my), od roku 1970. Je technick\u00fdm konzultantem a architektem, psal do r\u016fzn\u00fdch technick\u00fdch \u010dasopis\u016f, je s\u00e1m o sob\u011b velmi zku\u0161en\u00fd program\u00e1tor a osoba, kter\u00e1 hr\u00e1la jednu z kl\u00ed\u010dov\u00fdch rol\u00ed p\u0159i vytv\u00e1\u0159en\u00ed zn\u00e1m\u00fdch princip\u016f SOLID (d\u00e1 se \u0159\u00edct, \u017ee je jejich tv\u016frcem). Tak\u00e9 bych r\u00e1d dodal, \u017ee mi tuto knihu doporu\u010dil m\u016fj t\u00fdmov\u00fd vedouc\u00ed s v\u00edce ne\u017e 15letou zku\u0161enost\u00ed.<\/p>\n<h2>O knize<\/h2>\n<p><\/p>\n<h3>Z\u00e1vislosti<\/h3>\n<p>\nP\u0159ed \u010dten\u00edm knihy jsem si p\u0159e\u010detl mnoho \u010dl\u00e1nk\u016f na tomt\u00e9\u017e Habr, kde se objevovalo slovo \"z\u00e1vislost\". Co to vlastn\u011b je, kdo na kom z\u00e1vis\u00ed, co p\u0159esn\u011b znamen\u00e1 \"z\u00e1viset\" a jak m\u016f\u017ee n\u011bjak\u00e1 t\u0159\u00edda z\u00e1viset na n\u011bkom? <\/p>\n<p>A tak jsem b\u011bhem \u010dten\u00ed knihy pochopil dva momenty:<\/p>\n<p>Z\u00e1vislost je term\u00edn, kter\u00fd znamen\u00e1, \u017ee n\u011bjak\u00e1 t\u0159\u00edda (komponenta, slu\u017eba) zn\u00e1 n\u011bjakou jinou t\u0159\u00eddu (komponentu, slu\u017ebu) a toto v\u011bd\u011bn\u00ed na \u00farovni k\u00f3du ur\u010duj\u00ed (te\u010f m\u011b d\u011bl\u00e1 \u010desky mluv\u010d\u00ed, C# a C program\u00e1to\u0159i pochop\u00ed) ur\u010dit\u00e9 importy namespace. Jin\u00fdmi slovy: m\u00e1te t\u0159\u00eddu A s namespace Default.Classes a t\u0159\u00eddu B Another.Classes. Pokud tedy ve zdrojov\u00e9m k\u00f3du t\u0159\u00eddy A figuruje \"using Another.Classes;\" \u2013 znamen\u00e1 to, \u017ee t\u0159\u00edda A z\u00e1vis\u00ed na t\u0159\u00edd\u011b B. <br \/>\nAbyste porozum\u011bli sch\u00e9matu, kde je z\u00e1visl\u00e1 t\u0159\u00edda a kde ne \u2013 pod\u00edvejte se na sm\u011br \u0161ipky: v 1) \u0161ipka bude ukazovat od t\u0159\u00eddy A sm\u011brem k t\u0159\u00edd\u011b B. To znamen\u00e1, \u017ee t\u0159\u00edda B je nez\u00e1vislej\u0161\u00ed ne\u017e t\u0159\u00edda A. A zm\u011bny v t\u0159\u00edd\u011b A nezp\u016fsob\u00ed \u017e\u00e1dnou \"\u0161kodu\" t\u0159\u00edd\u011b B.<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00e1tko o hlavnom: 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>\nJedn\u00edm z hlavn\u00edch d\u016fvod\u016f, pro\u010d jsem se rozhodl p\u0159e\u010d\u00edst tuto knihu \u2013 je vysv\u011btlen\u00ed princip\u016f SOLID z prim\u00e1rn\u00edho zdroje, proto\u017ee str\u00fd\u010dek Rob vyvinul tyto principy a d\u00e1 se \u0159\u00edct, d\u00edky n\u011bmu sly\u0161\u00edme toto ozna\u010den\u00ed \u2013 SOLID.<br \/>\nPre t\u00fdch, ktor\u00ed nie s\u00fa obozn\u00e1men\u00ed \u2014 tieto princ\u00edpy hovoria a odpor\u00fa\u010daj\u00fa navrhova\u0165 svoje aplik\u00e1cie v s\u00falade s piatimi pravidlami:<\/p>\n<p>S \u2014 SRP (Princ\u00edp jednej zodpovednosti)<br \/>\nO \u2014 OCP (Princ\u00edp otvorenosti a uzavretosti)<br \/>\nL \u2014 LSP (Liskov princ\u00edp substit\u00facie)<br \/>\nI \u2014 ISP (Princ\u00edp segreg\u00e1cie rozhran\u00ed)<br \/>\nD \u2014 DIP (Princ\u00edp inverzie z\u00e1vislost\u00ed)<\/p>\n<p>V\u0161etky tieto princ\u00edpy m\u00f4\u017eu by\u0165 aplikovan\u00e9 na \u00farovni tried a objektov, na \u00farovni modulov a komponentov, a na \u00farovni vrstiev (slu\u017eieb).<\/p>\n<p>Ak si mysl\u00edte, \u017ee Princ\u00edp jednej zodpovednosti znamen\u00e1, \u017ee trieda alebo modul by mal robi\u0165 len jednu vec \u2014 ur\u010dite by ste si mali pre\u010d\u00edta\u0165 aspo\u0148 kapitolu o SOLID. Preto\u017ee to definovanie vy\u0161\u0161ie je n\u00e1sledok, ale nie defin\u00edcia samotn\u00e9ho princ\u00edpu.<\/p>\n<h3>O Inverzii Z\u00e1vislost\u00ed<\/h3>\n<p>\nChcem zvl\u00e1\u0161\u0165 upozorni\u0165 na vysvetlenie Princ\u00edpu inverzie z\u00e1vislost\u00ed (to, \u010do je D zo SOLID). Po\u010das \u010d\u00edtania knihy som si uvedomil, \u017ee to nie je len princ\u00edp, je to aj mechanizmus a n\u00e1stroj, pomocou ktor\u00e9ho m\u00f4\u017eete meni\u0165 smer va\u0161ich z\u00e1vislost\u00ed, a rob\u00ed napr\u00edklad biznis logiku (DOMAIN) nez\u00e1vislou od detailov implement\u00e1cie vrstvy pr\u00edstupu k d\u00e1tam (DAL).<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00e1tko o hlavnom: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/0bceb51ecdb3d220d8a311d0ccdb26d7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHoci samotn\u00fd princ\u00edp, podobne ako ostatn\u00e9 v SOLID, znamen\u00e1 nie\u010do trochu in\u00e9 ako mechanizmus, samotn\u00fd mechanizmus sa pou\u017e\u00edva po\u010das celej knihy, a to je jeden z hlavn\u00fdch sp\u00f4sobov, ako invertova\u0165 a meni\u0165 smer va\u0161ich z\u00e1vislost\u00ed, ktor\u00fd sa, mimochodom, pou\u017e\u00edva pri DDD.<\/p>\n<h3>O prij\u00edman\u00ed architektonick\u00fdch rozhodnut\u00ed<\/h3>\n<p>\nVe\u013emi \u010dasto sa v knihe spom\u00edna princ\u00edp prij\u00edmania d\u00f4le\u017eit\u00fdch architektonick\u00fdch rozhodnut\u00ed: o tom, ak\u00fa datab\u00e1zu pou\u017ei\u0165, ak\u00fd framework pou\u017ei\u0165, ak\u00fa kni\u017enicu pripoji\u0165, \u010do pou\u017ei\u0165 ako vyh\u013ead\u00e1vac\u00ed engine at\u010f.<\/p>\n<p>Tak\u017ee autor tvrd\u00ed: mali by ste prij\u00edma\u0165 tak\u00e9ho rozhodnutia K\u013d\u00da\u010cOVO MENEJ. Preto\u017ee po\u017eiadavky sa m\u00f4\u017eu meni\u0165, obmedzenia t\u00fdkaj\u00face sa v\u00fdkonu tie\u017e, sama behavior\u00e1lna zlo\u017eka m\u00e1 tendenciu sa meni\u0165. Po\u010das v\u00fdvoja sa nejak\u00e9 rozhodnutie m\u00f4\u017ee zda\u0165 menej efekt\u00edvne ako in\u00e9, menej pohodln\u00e9 ako in\u00e9. A sila va\u0161ej architekt\u00fary ur\u010d\u00ed, ako r\u00fdchlo a bezbolestne budete m\u00f4c\u0165 nahradi\u0165 jednu technol\u00f3giu druhou (o \u010dom mimochodom hovor\u00ed OCP).<\/p>\n<p>Napr\u00edklad, n\u00e1hle sa rozhodnete pou\u017ei\u0165 namiesto Postgresql MongoDb, alebo dokonca s\u00fabory, alebo pou\u017e\u00edva\u0165 mockovan\u00e9 d\u00e1ta, s ktor\u00fdmi sa bude pracova\u0165 v pam\u00e4ti. A za ur\u010dit\u00fdch podmienok \u2014 to m\u00f4\u017ee vy\u017eadova\u0165 prepis takmer celej logiky. <\/p>\n<p>Aby sa tak\u00e9to situ\u00e1cie nevyskytovali, m\u00f4\u017eeme pou\u017ei\u0165 niektor\u00e9 mechanizmy, ktor\u00e9 posun\u00fa \u010das rozhodovania \u010do naj\u010falej. Jeden z t\u00fdchto mechanizmov je abstrakcia.<\/p>\n<h3>Odkazy na DDD<\/h3>\n<p>\nDDD \u2013 Design riaden\u00fd dom\u00e9nou \u2013 je pr\u00edstup k n\u00e1vrhu slu\u017eieb so zlo\u017eitou obchodnou logikou, kritickou na zmeny, ktor\u00fd je zameran\u00fd na maxim\u00e1lne pochopenie projektov\u00fdmi mana\u017e\u00e9rmi (PMs, predajn\u00fdmi mana\u017e\u00e9rmi at\u010f.) a be\u017en\u00fdmi pracovn\u00edkmi. T\u00fdm p\u00e1dom je potrebn\u00e9, aby v\u0161etci \u010dlenovia projektu mali ubiquitu\u00e1lny jazyk, ka\u017ed\u00fd mohol pochopi\u0165 druh\u00e9ho a v\u0161etci mysleli na jednodo\u00admninou s rovnak\u00fdmi obchodn\u00fdmi pravidlami.<\/p>\n<p>Ak ste pr\u00edvr\u017eencom DDD, alebo sa n\u00edm chcete sta\u0165, alebo ak v tom v\u00f4bec nerozumiete, ale chcete rozumie\u0165 \u2013 t\u00e1to kniha je povinn\u00e1 na pre\u010d\u00edtanie, najm\u00e4 druh\u00e1 \u010das\u0165 knihy.<\/p>\n<p>Tu autor vysvet\u013euje existenciu pravidla z\u00e1vislosti a pre\u010do, ak mu budete dodr\u017eiava\u0165, budete budova\u0165 spr\u00e1vnu architekt\u00faru aplik\u00e1cie. Pre\u010do by z\u00e1vislosti mali smerova\u0165 k komponentom s vysokou politikou, pre\u010do <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sk\/domain\/\"   title=\"dom\u00e9ny\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4077\">dom\u00e9ny<\/a> (komponent s vysokou politikou) by mal by\u0165 nez\u00e1visl\u00fd od infra\u0161trukt\u00fary a ako to u\u013eah\u010d\u00ed nasadzovanie a v\u00fdvoj.<\/p>\n<p><img decoding=\"async\" alt=\"Kr\u00e1tko o hlavnom: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/be7b51d067415390e0098339fb6cda46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Abstrahovanie<\/h3>\n<p>\nStr\u00fdko Rob tie\u017e rozpr\u00e1va o tom, ako realiz\u00e1cie m\u00f4\u017eu u\u0161kodi\u0165 va\u0161ej s\u00fastave a nedovoli\u0165 jej evolvova\u0165 bez bolesti v bud\u00facnosti.<\/p>\n<p>Pam\u00e4tajte!<br \/>\nDB je detail realiz\u00e1cie.<br \/>\nKlienti (Web, Mobiln\u00e9 at\u010f.) s\u00fa detaily realiz\u00e1cie.<br \/>\nFrameworky s\u00fa detaily realiz\u00e1cie.<\/p>\n<p>Od tohto v\u0161etk\u00e9ho je potrebn\u00e9 sa maxim\u00e1lne abstrahova\u0165 a nez\u00e1visie\u0165 na \u0148om, pri\u010dom sa vyu\u017e\u00edva vy\u0161\u0161ie op\u00edsan\u00fd inverzn\u00fd mechanizmus z\u00e1vislosti s rozhraniami a abstrakciami, pravidlo z\u00e1vislosti a in\u00e9 mechanizmy.<\/p>\n<h3>Met\u00f3dy budovania modulov<\/h3>\n<p>\nT\u00e1to \u010das\u0165 sa mi obzvl\u00e1\u0161\u0165 p\u00e1\u010dila, ako v\u00fdvoj\u00e1rovi slu\u017eieb na ASP .NET CORE, preto\u017ee sa tu rozpr\u00e1va o metodol\u00f3gi\u00e1ch budovania jednotnej architekt\u00fary slu\u017eby z hotov\u00fdch komponentov. <\/p>\n<p>Robert op\u00edsal 4 mo\u017en\u00e9 sch\u00e9my rozdelenia vrstiev.<\/p>\n<p>D\u00e1 sa to pochopi\u0165, pre\u010do je tak \u010dasto pou\u017e\u00edvan\u00fd mechanizmus trojvrstvovej architekt\u00fary: UI (ovl\u00e1da\u010de), Slu\u017eby (dom\u00e9na), DAL (datab\u00e1za) \u2013 dos\u0165 zl\u00fd v porovnan\u00ed s in\u00fdmi. Vid\u011bl som nie pr\u00edli\u0161 ve\u013ea projektov, ale v ka\u017edom, napr\u00edklad mikroservise, sa na backendu pou\u017e\u00edva pr\u00e1ve trojvrstv\u00e1 architekt\u00fara. <\/p>\n<p>Takisto sa \u010dasto pou\u017e\u00edva architekt\u00fara jeden-komponent-jeden-servis. V\u0161eobecne s\u00fa obidve celkom dobr\u00e9, no t\u00e1to m\u00e1 pomerne ve\u013ea nev\u00fdhod v porovnan\u00ed s architekt\u00farou zalo\u017eenou na DDD, najm\u00e4 pri kritick\u00fdch zmen\u00e1ch a zlo\u017eit\u00fdch slu\u017eb\u00e1ch.<\/p>\n<p>A tak sa skon\u010dila t\u00e1to recenzia na knihu. Kniha sa mi ve\u013emi p\u00e1\u010dila, ne\u013eutujem pre\u010d\u00edtan\u00e9, \u010fakujem autorovi. V\u00e1m, v\u00e1\u017een\u00ed \u010ditatelia, \u010fakujem za pozornos\u0165, nes\u00fa\u010fte pr\u00edli\u0161 strikne \u2014 tento pr\u00edspevok je zalo\u017een\u00fd na dojmoch z knihy a mojom osobnom nad\u0161en\u00ed.<br \/>\n<br \/>Zdroj: <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.3 - 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\/sk\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Kr\u00e1tko o hlavnom: Clean Architecture, Robert C. Martin | ProHoster","description":"Toto bude rozpr\u00e1vanie o dojmoch z knihy, ako aj niektor\u00e9 pojmy a znalosti, ktor\u00e9 boli v\u010faka tejto knihe osvojen\u00e9. Architekt\u00fara M\u00f4\u017eete, \u010d\u00edtaj\u00fac tento pr\u00edspevok, poskytn\u00fa\u0165.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/37273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=37273"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/37273\/revisions"}],"predecessor-version":[{"id":163180,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/37273\/revisions\/163180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/27958"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=37273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=37273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=37273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}