{"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\/novosti-interneta\/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 delle impressioni sul libro, oltre a esplorare 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 molte ambiguit\u00e0 in questo termine. E sembra che sia tutto chiaro, ma in un modo astratto e senza precisione. Martin sostiene, e io sono d'accordo con lui, che un'applicazione ha due componenti: <\/p>\n<ol>\n<li>Comportamento (behavior) \u2014 le funzioni e i compiti che il programma (componente, servizio) esegue.<\/li>\n<li>L'architettura \u2014 questo termine riguarda maggiormente la modifica dell'applicazione.<\/li>\n<\/ol>\n<p>\nMa anche se l'applicazione svolge molto bene il compito per cui \u00e8 stata progettata, questo non significa 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 nello 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 dal mal di testa quando ci sono piccole modifiche alle richieste del PM o dello stakeholder: di questo parla il libro.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Chi siamo<\/h3>\n<p>\nPrima di dire qualcosa su questo libro, voglio dire un po' di me.<br \/>\nAttualmente sono un Strong Junior Developer, specializzato nello sviluppo di servizi con ASP .NET CORE.<\/p>\n<p>Lavoro gi\u00e0 da un anno in una \"galleria\" e sembra che stia gestendo tutto poco a poco.<\/p>\n<p>Ho gi\u00e0 letto questo libro due volte e lo consiglio a tutti:<\/p>\n<ul>\n<li>sviluppatori di sistemi embedded;<\/li>\n<li>front-end developer;<\/li>\n<li>back-end developer;<\/li>\n<li>e persino devops.<\/li>\n<\/ul>\n<p>\nInsomma, a chiunque sia coinvolto nello sviluppo software, intendo direttamente nello sviluppo, escludendo vari Sales e PM (anche se sarebbe utile sapere perch\u00e9 un dev pu\u00f2 spendere il doppio del tempo su un compito), consiglio di leggere questo libro.<br \/>\nOra 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 conta molto). Penso che mi capirete, anche se non sempre \u00e8 giusto; ma se qualcuno di autorit\u00e0 nel settore vi dice qualcosa, mostrate certamente maggiore fiducia in ci\u00f2 che afferma. Ad esempio, penso che vi fidiate di pi\u00f9 della diagnosi che vi fa un medico piuttosto che di quella di una persona a caso (che ha cercato su Google i sintomi).<\/p>\n<p>Robert Martin, conosciuto anche come Uncle Bob, lavora nel campo della programmazione, in diverse aree (dai servizi web ai sistemi embedded), dal 1970. \u00c8 consulente tecnico e architetto, ha scritto per varie riviste tecniche, \u00e8 un programmatore molto esperto e una persona che ha giocato un ruolo chiave nella creazione dei noti principi SOLID (si pu\u00f2 dire che 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>Info sul libro<\/h2>\n<p><\/p>\n<h3>Dipendenze<\/h3>\n<p>\nPrima di leggere il libro, ho letto diversi articoli simili su Habr, dove si parlava di una parola come \"dipendenza\". Che 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 mentre leggevo il libro ho acquisito due concetti:<\/p>\n<p>La dipendenza \u00e8 un termine che significa che una certa classe (componente, servizio) \u00e8 consapevole di un'altra classe (componente, servizio), e questa conoscenza a livello di codice \u00e8 definita (ora gli sviluppatori Java, C# e C possono capirmi) da un determinato import di namespace. In altre parole: avete una classe A con namespace Default.Classes e una classe B Another.Classes. Se nel codice sorgente della classe A appare using Another.Classes; \u2014 significa che la classe A dipende dalla classe B. <br \/>\nPer capire nello schema dove si trova la classe dipendente e dove no \u2014 guardate la direzione della freccia: in 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 arrecheranno 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 ha spinto a leggere questo libro \u00e8 la spiegazione dei principi SOLID dalla fonte originale, poich\u00e9 zio Bob ha sviluppato questi principi e si pu\u00f2 dire che grazie a lui sentiamo questo nome: SOLID.<br \/>\nPer chi non lo sapesse, questi principi suggeriscono di progettare le proprie applicazioni seguendo 5 regole:<\/p>\n<p>S \u2014 SRP (Principio di responsabilit\u00e0 singola)<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 strati (servizi).<\/p>\n<p>Se pensate che il Principio di responsabilit\u00e0 singola significhi che una classe o un modulo debba fare solo una cosa, dovete assolutamente leggere almeno il capitolo sui SOLID. Perch\u00e9 quella definizione fornita sopra \u00e8 una conseguenza, ma non \u00e8 affatto la definizione del principio stesso.<\/p>\n<h3>Sull'inversione delle dipendenze<\/h3>\n<p>\nVorrei porre particolare attenzione sulla spiegazione del Dependency Inversion Principle (quello che \u00e8 la D di SOLID). Leggendo il libro, ho capito che non \u00e8 solo un principio, ma anche un meccanismo e uno strumento attraverso cui puoi cambiare la direzione delle tue dipendenze, rendendo, ad esempio, la logica di business (DOMAIN) indipendente dai dettagli di implementazione del Data Access Layer (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 qualcosa di diverso rispetto al meccanismo, quest'ultimo viene utilizzato per tutto il libro ed \u00e8 uno dei metodi principali per invertire e cambiare la direzione delle tue dipendenze, che tra l'altro \u00e8 impiegato nel DDD.<\/p>\n<h3>Sulle decisioni architetturali<\/h3>\n<p>\nMolto spesso, nel libro verr\u00e0 menzionato il principio riguardante l'adozione di decisioni architetturali importanti: quale database utilizzare, quale framework scegliere, quale libreria integrare, cosa utilizzare come motore di ricerca, ecc.<\/p>\n<p>Cos\u00ec, l'autore sostiene: dovresti prendere decisioni di questo tipo il pi\u00f9 raramente possibile. Infatti, i requisiti possono cambiare, le limitazioni delle performance anche, e la componente comportamentale tende a modificarsi. Durante il processo di sviluppo, una certa decisione pu\u00f2 apparire meno efficace rispetto ad un'altra, o meno comoda rispetto ad un'altra. La solidit\u00e0 della tua architettura determiner\u00e0 quanto rapidamente e senza problemi sarai in grado di sostituire una tecnologia con un'altra (questo \u00e8 ci\u00f2 che ribadisce l'OCP).<\/p>\n<p>Ad esempio, all'improvviso, potresti decidere di utilizzare MongoDB al posto di PostgreSQL, o addirittura file, o utilizzare dati mockati, con cui saranno eseguite operazioni in memoria. E in alcune condizioni, ci\u00f2 potrebbe costringerti a riscrivere quasi tutta la logica. <\/p>\n<p>Per evitare che si verifichino situazioni di questo tipo, possiamo utilizzare alcuni meccanismi che allontanano 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 un approccio allo sviluppo di servizi con una logica aziendale complessa e critica ai cambiamenti, mirato a massimizzare la comprensione da parte delle figure dirigenziali del progetto (PM, Sales Manager, ecc.) e dei membri del team. Cio\u00e8, affinch\u00e9 tutti i membri del progetto possano avere un linguaggio comune, in modo che ciascuno possa comprendere l'altro e pensare nello stesso dominio con le stesse regole aziendali.<\/p>\n<p>Se sei un sostenitore del DDD, o vuoi esserlo, o se non capisci qualcosa e desideri comprenderlo \u2014 questo libro \u00e8 imperdibile, specialmente la seconda parte.<\/p>\n<p>Qui l'autore spiega l'esistenza della Dependency Rule e perch\u00e9, seguendola, costruirai un'architettura dell'applicazione corretta. Perch\u00e9 le dipendenze dovrebbero seguire la direzione verso i componenti ad alta policy, e perch\u00e9 <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/domain\/\"   title=\"un dominio\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4077\">un dominio<\/a> (i componenti ad alta policy) dovrebbero essere indipendenti dall'infrastruttura e come questo semplificher\u00e0 il tuo 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 possono danneggiare il tuo sistema e ostacolare la sua evoluzione senza difficolt\u00e0 in futuro.<\/p>\n<p>Ricorda!<br \/>\nIl database \u00e8 un dettaglio di implementazione.<br \/>\nI clienti (Web, Mobile, ecc.) sono dettagli di implementazione.<br \/>\nI framework sono un elemento dell'implementazione<\/p>\n<p>\u00c8 fondamentale astrarsi il pi\u00f9 possibile da tutto ci\u00f2 e non dipendere da esso, utilizzando il Dependency Inversion descritto in precedenza con interfacce e astrazioni, la Dependency Rule e altri meccanismi<\/p>\n<h3>Metodi per la costruzione di moduli<\/h3>\n<p>\nQuesto segmento mi \u00e8 piaciuto particolarmente, come sviluppatore di servizi su ASP .NET CORE, perch\u00e9 discute le metodologie per costruire un'architettura di servizio unificata da componenti pronti all'uso. <\/p>\n<p>Robert ha descritto 4 possibili schemi di separazione dei livelli.<\/p>\n<p>Ha sottolineato perch\u00e9 il meccanismo dell'architettura a tre livelli, molto usato: UI (controller), Services (Domain), DAL (Database) \u2014 \u00e8 piuttosto inefficace rispetto ad altre soluzioni. Ho visto relativamente pochi progetti, ma in ognuno, ad esempio in microservizi, viene utilizzata l'architettura a tre livelli. <\/p>\n<p>Allo stesso modo, viene spesso utilizzata l'architettura uno-componente-uno-servizio. In generale, entrambe sono valide, ma presentano diverse lacune, a confronto con l'architettura basata su DDD, soprattutto in servizi critici con frequenti cambiamenti e complessit\u00e0.<\/p>\n<p>In definitiva, \u00e8 giunto al termine questo riassunto del libro. Il libro stesso mi \u00e8 piaciuto molto, non rimpiango di averlo letto, grazie all\u2019autore. A voi, cari lettori, grazie per l'attenzione, non giudicate troppo severamente \u2014 questa pubblicazione \u00e8 basata sulle impressioni del libro e sul mio entusiasmo personale.<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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.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\/novosti-interneta\/korotko-o-glavnom-clean-architecture-robert-c-martin\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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\/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\udd47In breve: Clean Architecture, Robert C. Martin | ProHoster","description":"Questa sar\u00e0 una narrazione dell'impressione avuta sul libro, oltre a considerare alcuni concetti e conoscenze che, grazie a questo libro, sono stati appresi. Architettura Puoi, leggendo questa pubblicazione, fornire.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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\/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","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}]}}