{"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\/it\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","title":{"rendered":"In breve: Clean Architecture, Robert C. Martin","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Questa sar\u00e0 una narrazione sull'impressione di un libro, e verranno considerati alcuni concetti e conoscenze che, grazie a questo libro, sono stati appresi.<\/p>\n<h3>Architettura<\/h3>\n<p>\nPuoi, leggendo questa pubblicazione, dare una risposta chiara alla domanda: che cos'\u00e8 l'architettura? Che cos'\u00e8 l'architettura nel contesto della programmazione e del design? Qual \u00e8 il suo ruolo? Ci sono abbastanza incertezze in questo termine. E sembra tutto chiaro, ma \u00e8 anche in un certo senso astratto e privo di precisione. Martin ritiene, e io concordo con lui, che un'applicazione abbia due componenti: <\/p>\n<ol>\n<li>Comportamento (behavior) \u2014 funzioni e compiti che il programma (componente, servizio) svolge.<\/li>\n<li>Architettura \u2014 questo termine riguarda in maggior misura la modifica dell'applicazione.<\/li>\n<\/ol>\n<p>\nMa anche se l'applicazione svolge molto bene il compito che deve eseguire, ci\u00f2 non significa affatto che abbia una buona architettura. L'architettura non riguarda il comportamento dell'applicazione. L'architettura riguarda la facilit\u00e0 di modifica, l'architettura riguarda la facilit\u00e0 di distribuzione, l'architettura riguarda l'indipendenza dello sviluppo. L'architettura riguarda la velocit\u00e0 con cui la comprensione arriva a una nuova persona nel team.<\/p>\n<p>Ecco come costruire questa architettura, come liberarsi del mal di testa riguardo a piccole modifiche dei requisiti da parte del PM o di un stakeholder: di questo parler\u00e0 il libro.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>A proposito degli autori<\/h3>\n<p>\nPrima di dire qualcosa su questo libro, voglio dire un po' su di me.<br \/>\nAttualmente sono un Strong Junior Developer, specializzato nello sviluppo di servizi tramite ASP .NET CORE.<\/p>\n<p>Lavoro gi\u00e0 da un anno in una 'galleria' e sembra che me la cavi poco a poco.<\/p>\n<p>Ho gi\u00e0 letto questo libro 2 volte e lo consiglio a tutti:<\/p>\n<ul>\n<li>sviluppatori di sistemi embedded;<\/li>\n<li>front-end developers;<\/li>\n<li>back-end developers;<\/li>\n<li>e anche DevOps.<\/li>\n<\/ul>\n<p>\nIn generale, a chiunque abbia qualche legame con lo sviluppo del software, intendo lo sviluppo diretto di varie cose, qui non includiamo Sales e PM (anche se sarebbe utile sapere perch\u00e9 un dev pu\u00f2 impiegare il doppio del tempo per un compito), consiglio di leggere questo libro.<br \/>\nE ora cercher\u00f2 di argomentare perch\u00e9 la penso cos\u00ec.<\/p>\n<p>Un po' sull'autore di questo libro (perch\u00e9 per me l'autorit\u00e0 di chi scrive gioca un ruolo importante). Penso che mi capirete; anche se non \u00e8 sempre corretto, se vi parla una persona di autorit\u00e0 nel settore, riponete molto pi\u00f9 fiducia in ci\u00f2 che dice. Ad esempio, penso che crederete di pi\u00f9 a una diagnosi formulata dal vostro medico piuttosto che a quella di una persona qualsiasi nella folla (che ha cercato i sintomi su Google).<\/p>\n<p>Robert Martin, noto anche come Uncle Bob (zio Bob), lavora nel campo della programmazione, in vari sistemi (dai servizi web ai sistemi embedded), dal 1970. \u00c8 un consulente tecnico e architetto, ha scritto per vari periodici tecnici ed \u00e8 un programmatore molto esperto, nonch\u00e9 una persona che ha avuto uno dei ruoli chiave nella creazione dei ben noti principi SOLID (si pu\u00f2 dire sia il creatore). Vorrei anche aggiungere che questo libro mi \u00e8 stato consigliato dal mio team leader con oltre 15 anni di esperienza.<\/p>\n<h2>Sul libro<\/h2>\n<p><\/p>\n<h3>Dipendenze<\/h3>\n<p>\nPrima di leggere il libro, ho letto molte articoli sullo stesso Habr, dove veniva spesso citata la parola \"dipendenza\". Cos'\u00e8, chi dipende da chi, cosa significa esattamente \"dipendere\", e come pu\u00f2 un certo classe dipendere da un'altra? <\/p>\n<p>E cos\u00ec, mentre leggevo il libro, ho appreso due concetti:<\/p>\n<p>La dipendenza \u00e8 un termine che significa che una certa classe (componente, servizio) \u00e8 a conoscenza di un'altra classe (componente, servizio), e questa conoscenza, a livello di codice, \u00e8 definita (ora i programmatori Java, C# e C lo capiranno) da un certo import del namespace. In altre parole: avete la classe A con namespace Default.Classes e la classe B Another.Classes. Ecco, se nel codice sorgente della classe A compare using Another.Classes; \u2014 questo significa che la classe A dipende dalla classe B. <br \/>\nPer capire nello schema dove si trova la classe dipendente e dove no, guardate la direzione della freccia: nella 1) la freccia punta dalla classe A verso la classe B. Questo significa che la classe B \u00e8 pi\u00f9 indipendente della classe A. E le modifiche nella classe A non causeranno alcun \"danno\" alla classe B.<\/p>\n<p><img decoding=\"async\" alt=\"In breve: 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>\nUna delle principali ragioni che mi hanno spinto a leggere questo libro \u00e8 stata la spiegazione dei principi SOLID dalla fonte originale, perch\u00e9 zio Rob ha sviluppato questi principi e si pu\u00f2 dire che grazie a lui sentiamo questo nome \u2014 SOLID.<br \/>\nPer coloro che non lo sanno, questi principi suggeriscono di progettare le proprie applicazioni secondo 5 regole:<\/p>\n<p>S \u2014 SRP (Principio di Responsabilit\u00e0 Unica)<br \/>\nO \u2014 OCP (Principio Aperto-Chiuso)<br \/>\nL \u2014 LSP (Principio di Sostituzione di Liskov)<br \/>\nI \u2014 ISP (Principio di Segregazione delle Interfacce)<br \/>\nD \u2014 DIP (Principio di Inversione delle Dipendenze)<\/p>\n<p>Tutti questi principi possono essere applicati a livello di classi e oggetti, a livello di moduli e componenti e a livello di layer (servizi).<\/p>\n<p>Se pensate che il Principio di Responsabilit\u00e0 Unica significhi che una classe o un modulo debba fare solo una cosa, dovete assolutamente leggere almeno il capitolo su SOLID. Questa definizione \u00e8 una conseguenza, ma non la definizione del principio stesso.<\/p>\n<h3>Sull'Inversione delle Dipendenze<\/h3>\n<p>\nVoglio attirare l'attenzione sulla spiegazione del Principio di Inversione delle Dipendenze (quella che \u00e8 la D di SOLID). Durante la lettura del libro, ho capito che non \u00e8 solo un principio, ma anche un meccanismo e uno strumento, grazie al quale potete cambiare la direzione delle vostre dipendenze e rendere, ad esempio, la logica di business (DOMAIN) indipendente dai dettagli di implementazione del livello di accesso ai dati (DAL).<\/p>\n<p><img decoding=\"async\" alt=\"In breve: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/0bceb51ecdb3d220d8a311d0ccdb26d7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnche se il principio stesso, insieme agli altri di SOLID, significa un po' diverso dal meccanismo, questo meccanismo \u00e8 utilizzato per tutta la durata del libro ed \u00e8 uno dei principali metodi per invertire e cambiare la direzione delle vostre dipendenze, che \u00e8 anche usato nel DDD.<\/p>\n<h3>Sulla presa di decisioni architetturali<\/h3>\n<p>\nSpesso nel libro verr\u00e0 menzionato un principio riguardante la presa di decisioni architetturali importanti: quale database utilizzare, quale framework adottare, quale libreria integrare, quale motore di ricerca utilizzare, ecc.<\/p>\n<p>Quindi, l'autore ritiene che dobbiate prendere il MINOR numero possibile di tali decisioni. Perch\u00e9 i requisiti possono cambiare, i limiti delle performance anche, e la componente comportamentale tende a cambiare. Durante il processo di sviluppo, una certa decisione pu\u00f2 apparire meno efficace rispetto a un'altra, meno conveniente rispetto a un'altra. E la forza della vostra architettura definir\u00e0 quanto rapidamente e senza dolore riuscirete a sostituire una tecnologia con un'altra (su questo, tra l'altro, insiste l'OCP).<\/p>\n<p>Ad esempio, improvvisamente potreste decidere di utilizzare MongoDb al posto di Postgresql, o addirittura file, o utilizzare dati mockati, le cui operazioni verranno eseguite in memoria. E in alcune condizioni, questo potrebbe richiedere di riscrivere quasi tutta la logica. <\/p>\n<p>Per evitare che si verifichino situazioni del genere, possiamo utilizzare alcuni meccanismi che ritardano il pi\u00f9 possibile il momento della decisione. Uno di questi meccanismi \u00e8 l'astrazione.<\/p>\n<h3>Riferimenti a DDD<\/h3>\n<p>\nDDD \u2014 Domain Driven Design \u2014 \u00e8 un approccio allo sviluppo di servizi con logiche di business complesse, critiche ai cambiamenti, volto a massimizzare la comprensione delle posizioni di leadership del progetto (PM, responsabili vendite, ecc.), insieme ai membri del team. In altre parole, per fare in modo che tra tutti i membri del progetto ci sia un linguaggio comune e che ognuno possa comprendere l'altro, in modo che tutti pensino all'interno di un dominio con le stesse regole di business.<\/p>\n<p>Se siete sostenitori di DDD, o desiderate esserlo, o se non comprendete qualcosa in merito ma volete capire \u2014 il libro \u00e8 una lettura obbligatoria, soprattutto la seconda parte del libro.<\/p>\n<p>Qui l'autore spiega l'esistenza della Dependency Rule e perch\u00e9, seguendola, costruirete un'architettura corretta per l'applicazione. Perch\u00e9 le dipendenze devono rivolgersi verso i componenti di High Policy. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/domain\/\"   title=\"dominio\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4077\">dominio<\/a> (High Policy component) deve essere indipendente dall'infrastruttura e come questo semplificher\u00e0 il vostro deployment e sviluppo.<\/p>\n<p><img decoding=\"async\" alt=\"In breve: Clean Architecture, Robert C. Martin\" src=\"\/wp-content\/uploads\/2019\/08\/be7b51d067415390e0098339fb6cda46.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Astrazione<\/h3>\n<p>\nZio Rob parla anche di come i dettagli di implementazione possano danneggiare il vostro sistema e impedirne l'evoluzione senza dolori in futuro.<\/p>\n<p>Ricordate!<br \/>\nIl DB \u00e8 un dettaglio di implementazione.<br \/>\nI clienti (Web, Mobile, ecc.) sono dettagli di implementazione.<br \/>\nI framework sono dettagli di implementazione.<\/p>\n<p>Da tutto ci\u00f2 bisogna massimizzare l'astrazione e non dipendere, utilizzando la Dependency Inversion sopra descritta con interfacce e astratti, la Dependency Rule e altri meccanismi.<\/p>\n<h3>Metodi di costruzione dei moduli<\/h3>\n<p>\nQuesta sezione mi \u00e8 piaciuta particolarmente come sviluppatore di servizi su ASP .NET CORE. Infatti, qui si parla di metodologie per costruire un'architettura unitaria del servizio a partire da componenti pronti. <\/p>\n<p>Robert ha descritto 4 possibili schemi di separazione dei livelli.<\/p>\n<p>Ha chiarito perch\u00e9 il meccanismo spesso utilizzato dell'architettura a 3 livelli: UI (controller), Servizi (Dominio), DAL (Database) \u2014 sia piuttosto scadente rispetto ad altri. Ho visto pochi progetti, ma in ognuno, ad esempio in un microservizio nel backend, viene utilizzata appunto l'architettura a tre livelli. <\/p>\n<p>Inoltre, abbastanza spesso, viene utilizzata l'architettura uno-componente-uno-servizio. In generale, entrambe sono valide, ma ha abbastanza svantaggi rispetto a come viene costruita, per esempio, l'architettura utilizzando il DDD, soprattutto nei servizi critici per le modifiche e complessi.<\/p>\n<p>In sintesi, si conclude questa recensione del libro. Il libro stesso mi \u00e8 piaciuto molto, non mi pento di averlo letto, grazie all'autore. A voi, cari lettori, grazie per l'attenzione, non giudicate severamente \u2014 questa pubblicazione si basa sulle impressioni del libro e sul mio personale entusiasmo.<br \/>\n<br \/>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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\udd47In breve: Clean Architecture, Robert C. Martin | ProHoster","description":"Questo sar\u00e0 un racconto sulle impressioni sul libro e verranno esaminati alcuni concetti e conoscenze che, grazie a questo libro, sono state apprese. Architettura Potete, leggendo questa pubblicazione, fornire.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/korotko-o-glavnom-clean-architecture-robert-c-martin","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/37273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=37273"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37273\/revisions"}],"predecessor-version":[{"id":163180,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37273\/revisions\/163180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/27958"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=37273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=37273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=37273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}