{"id":3623,"date":"2023-06-13T13:29:49","date_gmt":"2023-06-13T13:29:49","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/the-power-of-hexagonal-architecture\/"},"modified":"2024-09-10T07:51:21","modified_gmt":"2024-09-10T07:51:21","slug":"il-potere-dellarchitettura-esagonale","status":"publish","type":"post","link":"https:\/\/thecodest.co\/it\/blog\/the-power-of-hexagonal-architecture\/","title":{"rendered":"Il potere dell'architettura esagonale"},"content":{"rendered":"<p>In questa guida completa, approfondiremo le sfumature di <strong>Architettura esagonale<\/strong>esplorando la sua definizione, le sue componenti e la sua storia. Faremo un confronto tra <strong>Architettura esagonale<\/strong> e altri modelli architetturali popolari, per evidenziare i suoi punti di forza unici. Inoltre, esamineremo il suo ruolo critico nella progettazione guidata dal dominio (DDD) e <a href=\"https:\/\/thecodest.co\/it\/dictionary\/microservices\/\">microservizi<\/a>che sono sempre pi\u00f9 significativi nel mondo della modernit\u00e0. <a href=\"https:\/\/thecodest.co\/it\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">sviluppo software<\/a>.<\/p>\n<h2>1. Introduzione all'architettura esagonale<\/h2>\n<p>Nel panorama dinamico di<strong> <a href=\"https:\/\/thecodest.co\/it\/dictionary\/software-architecture\/\">architettura del software<\/a><\/strong>, <strong>Architettura esagonale<\/strong>, noto anche come Porti e <strong>Schema degli adattatori<\/strong>\u00e8 emersa come un concorrente formidabile, sfidando progressivamente le norme di <strong>architettura tradizionale a strati<\/strong>.<\/p>\n<p>La necessit\u00e0 di una progettazione architettonica che garantisse una facile verifica e una maggiore manutenibilit\u00e0, <strong>Architettura esagonale<\/strong> \u00e8 stato concepito. La sua missione: fornire una solida <strong>applicazioni software<\/strong> senza essere condizionato dalle complessit\u00e0 e dalle incertezze del mondo esterno.<\/p>\n<p>Nel corso di questo articolo, intraprenderemo un viaggio attraverso gli annali di <strong>Architettura esagonale<\/strong> - un'architettura che si colloca al confine tra semplicit\u00e0 e potenza. Ne sveleremo la storia, la struttura e i principi e la confronteremo con altre architetture. <strong>modelli architettonici<\/strong>. Esamineremo il suo potenziale per elevare la qualit\u00e0 delle applicazioni software e ridurre la marea di debiti tecnici che assilla l'industria del software.<\/p>\n<h2>2. Definizione di architettura esagonale<\/h2>\n<p>Il suo cuore, <strong>Architettura esagonale<\/strong>, o i Porti e <strong>Architettura degli adattatori<\/strong>\u00e8 un modello di progettazione basato sulla segregazione delle preoccupazioni. Suddivide un'applicazione in due sezioni principali: l'interno e l'esterno.<\/p>\n<p>L'interno, definito anche nucleo dell'applicazione, ospita il <strong>logica aziendale<\/strong> e gli oggetti del dominio - il nucleo del valore del vostro software. Questo sancta sanctorum rimane distaccato dalle influenze esterne, preservando cos\u00ec l'integrit\u00e0 del software. <strong>logica aziendale<\/strong> e il modello di dominio.<\/p>\n<p>L'esterno, d'altra parte, \u00e8 il regno dei sistemi esterni - dalla <strong>interfaccia utente<\/strong> all'accesso al database - che interagiscono con il nucleo dell'applicazione. Queste interazioni sono gestite attraverso un meccanismo di porte e adattatori, che assicurano una separazione netta tra il sistema di gestione delle risorse e il sistema di gestione delle risorse. <strong>nucleo dell'applicazione<\/strong> e i suoi attori esterni.<\/p>\n<h2>3. Storia dell'architettura esagonale<\/h2>\n<p><strong>Architettura esagonale<\/strong> \u00e8 un'idea di Alistair Cockburn, un visionario che ha articolato per la prima volta questo concetto come risposta alle limitazioni dei sistemi tradizionali. <strong>architettura a strati<\/strong>. \u00c8 stata progettata per creare un sistema di <strong>strato di dominio<\/strong> che isola il nucleo <strong>logica aziendale<\/strong> da influenze esterne, come la <strong>interfaccia utente <a href=\"https:\/\/thecodest.co\/it\/dictionary\/what-is-code-refactoring\/\">codice<\/a><\/strong> e l'accesso al database.<\/p>\n<p>In versione tradizionale <strong>architettura a strati<\/strong>Le modifiche apportate a un livello potevano ripercuotersi su altri livelli, provocando conseguenze indesiderate. Inoltre, i test erano complicati dalle intricate dipendenze tra i livelli.<\/p>\n<p><strong>Architettura esagonale<\/strong> \u00e8 emersa come soluzione, offrendo un modello in cui i cambiamenti in una parte del sistema non avrebbero sconvolto le altre parti. In sostanza, ha cercato di rendere il <strong>logica aziendale<\/strong> indipendentemente dal fatto che l'accesso avvenga tramite una <a href=\"https:\/\/thecodest.co\/it\/blog\/find-your-ideal-stack-for-web-development\/\">web<\/a> interfaccia, un <strong>REST <a href=\"https:\/\/thecodest.co\/it\/blog\/compare-staff-augmentation-firms-that-excel-in-api-team-staffing-for-financial-technology-projects\/\">API<\/a><\/strong>o anche un <strong>linea di comando<\/strong>.<\/p>\n<h2>4. Componenti dell'architettura esagonale<\/h2>\n<p><strong>Architettura esagonale<\/strong>, che prende il nome dalla sua illusione esagonale nelle rappresentazioni diagrammatiche, comprende tre componenti fondamentali: il <strong>modello di dominio<\/strong>, porte (primarie e secondarie) e adattatori (primari e secondari).<\/p>\n<p>Il<strong> modello di dominio<\/strong> \u00e8 il cuore dell'applicazione software, incapsulando il <strong>regole aziendali<\/strong> e la logica di base. Gli oggetti del dominio che risiedono in questo modello contengono valori e regole aziendali specifici.<\/p>\n<p>Poi ci sono le porte, i condotti tra il <strong>modello di dominio<\/strong> e il mondo esterno. <strong>Porte primarie<\/strong> esporre i dati dell'applicazione <strong>logica aziendale<\/strong>che fungono da porta d'accesso al nucleo dell'applicazione. Rappresentano i casi d'uso supportati dall'applicazione.<\/p>\n<p><strong>Porte secondarie<\/strong>sono invece rivolti verso l'esterno. Rappresentano le interfacce che l'applicazione richiede al mondo esterno, come i livelli di persistenza o i servizi esterni.<\/p>\n<p>Infine, ci sono gli adattatori, che fungono da traduttori tra i file <strong>modello di dominio<\/strong> e il mondo esterno. Convertono <a href=\"https:\/\/thecodest.co\/it\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">dati<\/a> dal formato utilizzato da <strong>sistemi esterni<\/strong> al formato utilizzato dal programma <strong>logica aziendale<\/strong>e viceversa.<\/p>\n<h2>5. Porte e adattatori<\/h2>\n<p><strong>Porte e adattatori<\/strong> costituiscono il ponte tra il <strong>nucleo dell'applicazione<\/strong> e gli attori esterni. Le porte primarie rappresentano i casi d'uso aziendali che l'applicazione espone, consentendo agli attori esterni di interagire con l'applicazione. Si pensi a queste porte come alle interfacce di servizio della <strong>livello aziendale<\/strong>.<\/p>\n<p>Le porte secondarie, invece, sono interfacce richieste dall'applicazione al mondo esterno. Possono essere servizi come l'accesso al database, <a href=\"https:\/\/thecodest.co\/it\/dictionary\/web-services\/\">servizi web<\/a>o anche servizi temporali. Espongono ci\u00f2 che \u00e8 necessario per l'applicazione, indipendentemente da qualsiasi tecnologia o caratteristica specifica del fornitore.<\/p>\n<p>Gli adattatori sono le manifestazioni fisiche di queste porte. Traducono i dati dal formato utilizzato dalla porta <strong>logica aziendale<\/strong> al formato utilizzato dagli attori esterni e viceversa. Questi adattatori possono essere convertiti in adattatori specifici per la tecnologia delle API REST, dei database SQL o dei sistemi di messaggistica, ma possono anche essere script batch o <strong>interfaccia utente<\/strong> codice. Gli adattatori costituiscono il confine dell'applicazione, consentendo all'applicazione di essere indipendente dalla tecnologia.<\/p>\n<h2>6. Porte e adattatori primari e secondari<\/h2>\n<p>Le porte primarie rappresentano le operazioni che la nostra applicazione pu\u00f2 eseguire, ovvero i comandi che il nostro dominio principale pu\u00f2 accettare. Spesso sono implementate come interfacce in linguaggi come <a href=\"https:\/\/thecodest.co\/it\/blog\/top-programming-languages-to-build-e-commerce\/\">Java<\/a>che definisce le operazioni offerte dall'applicazione.<strong>Adattatori primari<\/strong>sono quindi le implementazioni di queste interfacce per specifici attori esterni.<\/p>\n<p>D'altra parte, le porte secondarie sono interfacce che il dominio principale utilizza per interagire con il mondo esterno. Queste possono includere interfacce per la persistenza degli oggetti del dominio o per l'invio di notifiche. <strong>Adattatori secondari<\/strong> sono le implementazioni effettive di queste interfacce - una <strong>Database SQL<\/strong> o un adattatore di notifica e-mail, ad esempio.<\/p>\n<p>Insieme, il <strong>porte e adattatori primari e secondari<\/strong> formano un confine flessibile e modulare intorno all'applicazione, separando la parte di <strong>logica del dominio<\/strong> dalle preoccupazioni tecniche. Esse impongono una netta separazione delle responsabilit\u00e0 e consentono alle diverse parti del sistema di evolvere in modo indipendente.<\/p>\n<h2>7. Regola di dipendenza e inversione di dipendenza<\/h2>\n<p>La regola della dipendenza \u00e8 un principio fondamentale <strong>Architettura esagonale<\/strong> che afferma che le dipendenze devono puntare verso il nucleo dell'applicazione. Il nucleo dell'applicazione non dipende da un particolare database, dall'interfaccia utente o da qualsiasi altra agenzia esterna.<\/p>\n<p>Questo principio \u00e8 strettamente legato al <strong>Principio di inversione della dipendenza<\/strong> (DIP), uno dei principi SOLID della progettazione orientata agli oggetti. DIP afferma che i moduli di alto livello (<strong>logica aziendale<\/strong> o <strong>strato di dominio<\/strong> non dovrebbero dipendere da moduli di basso livello (come l'adattatore di database). Invece, entrambi dovrebbero dipendere da astrazioni. Questa inversione delle dipendenze consente di isolare i moduli di alto livello dalle modifiche apportate ai moduli di basso livello, favorendo un progetto in cui il <strong>logica aziendale<\/strong> guida l'architettura complessiva.<\/p>\n<h2>8. Mappatura<\/h2>\n<p>La mappatura \u00e8 un processo essenziale per <strong>Architettura esagonale<\/strong>dove un adattatore specifico per la tecnologia converte i dati dal formato usato da <strong>sistemi esterni<\/strong> in un formato che il nostro <strong>strato di dominio<\/strong> in grado di comprendere. Questa mappatura facilita la traduzione tra le rappresentazioni interne ed esterne dei dati dell'applicazione.<\/p>\n<p>Ad esempio, quando una richiesta HTTP arriva alla nostra applicazione da un'interfaccia esterna, come un'applicazione <strong>API REST<\/strong>I dati della richiesta devono essere tradotti da JSON in oggetti di dominio utilizzabili dall'applicazione. Questa traduzione \u00e8 responsabilit\u00e0 degli adattatori.<\/p>\n<p>Al contrario, quando l'applicazione deve inviare una risposta, gli adattatori convertono gli oggetti del dominio in JSON. Ci\u00f2 consente all'applicazione principale di non conoscere le specificit\u00e0 del mondo esterno, garantendo al contempo la possibilit\u00e0 di interpretare correttamente i dati in entrata e di formattare quelli in uscita. <\/p>\n<h2>9. Vantaggi dell'architettura esagonale<\/h2>\n<p><strong>Architettura esagonale<\/strong> offre una grande quantit\u00e0 di vantaggi, che possono essere in gran parte attribuiti al disaccoppiamento delle applicazioni software dai loro elementi esterni e alla chiara delimitazione tra le diverse parti di un sistema.<\/p>\n<p>Uno dei vantaggi fondamentali \u00e8 la separazione delle preoccupazioni, che favorisce la manutenibilit\u00e0 e la leggibilit\u00e0 del codice. Il disaccoppiamento del nucleo <strong>logica aziendale<\/strong> dal <strong>mondo esterno<\/strong> consente di modificare gli adattatori, i database e i database specifici della tecnologia. <strong>interfacce utente<\/strong> senza alterare il nucleo <strong>logica aziendale<\/strong>.<\/p>\n<p><strong>Architettura esagonale<\/strong> eccelle anche nel campo della testabilit\u00e0. L'isolamento delle dipendenze esterne dell'architettura consente agli sviluppatori di eseguire test di regressione automatizzati e di scrivere <strong>suite di test automatizzate<\/strong> pi\u00f9 facilmente. Questo isolamento aumenta la resilienza dell'applicazione, poich\u00e9 le modifiche a un componente non avranno un impatto negativo sugli altri.<\/p>\n<p>Inoltre, l'architettura supporta pi\u00f9 adattatori per la stessa porta, aprendo la porta a pi\u00f9 adattatori per la stessa porta secondaria. Questa flessibilit\u00e0 permette all'applicazione di interagire con diversi tipi di database o di supportare vari <strong>interfaccia utente<\/strong> piattaforme.<\/p>\n<h2>10. Manutenibilit\u00e0<\/h2>\n<p>Nel campo dello sviluppo del software, la manutenibilit\u00e0 \u00e8 una caratteristica spesso ricercata, ma che gli stili architettonici tradizionali possono faticare a offrire. <strong>Architettura esagonale<\/strong> si distingue per la sua forte enfasi sulla manutenibilit\u00e0.<\/p>\n<p>Concentrandosi sulla separazione delle preoccupazioni, <strong>Architettura esagonale<\/strong> garantisce che le modifiche apportate a una parte dell'applicazione non si ripercuotano sulle altre parti. Questa caratteristica contribuisce a ridurre il tempo e lo sforzo spesi per la comprensione e il debug del codice.<\/p>\n<p>Inoltre, l'architettura incoraggia il riutilizzo del codice promuovendo un design in cui il nucleo centrale<strong> logica aziendale<\/strong> \u00e8 isolato dalle tecnologie specifiche utilizzate per l'applicazione. Questo disaccoppiamento consente agli sviluppatori di scambiare, aggiornare o rifattorizzare le applicazioni. <strong>interfacce esterne<\/strong> senza influenzare la logica di base, riducendo il rischio di introdurre bug.<\/p>\n<h2>11. Riduzione del debito tecnico<\/h2>\n<p>Il debito tecnico, una preoccupazione importante nello sviluppo del software, si riferisce al costo futuro del refactoring e della correzione di scorciatoie e hack nel codice. <strong>Architettura esagonale<\/strong> offre un approccio proattivo per ridurre tale debito.<\/p>\n<p>Facilitando una chiara separazione tra il nucleo <strong>logica aziendale<\/strong> e <strong>componenti esterni<\/strong>, <strong>Architettura esagonale<\/strong> riduce la probabilit\u00e0 di codice intrecciato che pu\u00f2 causare problemi di manutenzione e aggravare il debito tecnico. Anche la manutenibilit\u00e0 e la testabilit\u00e0 intrinseche dell'architettura contribuiscono a ridurre il debito tecnico, in quanto aiutano a prevenire l'introduzione di bug e a facilitare gli sforzi di refactoring.<\/p>\n<p>Inoltre, la capacit\u00e0 di <strong>Architettura esagonale<\/strong> per supportare le modifiche all'infrastruttura senza richiedere modifiche al sistema. <strong>logica aziendale<\/strong> fornisce un cuscinetto protettivo contro il debito tecnico. Questa capacit\u00e0 consente ai team di adattarsi alle modifiche dei requisiti o delle tecnologie senza dover riscrivere ampie porzioni dell'applicazione.<\/p>\n<h2>12. Architettura esagonale in pratica<\/h2>\n<p>In pratica, <strong>Architettura esagonale<\/strong> porta un approccio strutturato allo sviluppo del software. Il confine esagonale attorno al nucleo dell'applicazione fornisce una chiara demarcazione del punto in cui l'applicazione termina e la <strong>mondo esterno<\/strong> inizia.<\/p>\n<p>Gli adattatori fungono da gatekeeper, traducendo le richieste degli attori esterni in una forma comprensibile all'applicazione principale e viceversa. In questo modo, assicurano che l'applicazione principale rimanga agnostica rispetto alle specificit\u00e0 del mondo esterno, che si tratti di un database, di una <strong>API esterna<\/strong>, o un <strong>interfaccia utente<\/strong>.<\/p>\n<h2>13. Progettazione guidata dal dominio (DDD)<\/h2>\n<p>Il Domain-Driven Design (DDD) \u00e8 una metodologia di sviluppo del software che d\u00e0 la priorit\u00e0 ai concetti fondamentali del business, o ai concetti di <strong>logica del dominio<\/strong>come principale forza motrice del progetto. Questa metodologia si allinea molto bene con <strong>Architettura esagonale<\/strong>, che sottolinea anche l'importanza della <strong>logica aziendale<\/strong> e il <strong>modello di dominio<\/strong> nell'architettura.<\/p>\n<p>Nel contesto di <strong>Architettura esagonale<\/strong>Il DDD assicura che i moduli di alto livello dell'applicazione - i livelli di dominio - siano indipendenti dagli elementi esterni, come il sistema di gestione delle risorse. <strong>interfaccia utente<\/strong> o il database. Questa indipendenza \u00e8 garantita dalle porte e dagli adattatori, che proteggono il livello di dominio dalle specificit\u00e0 del database.<strong> sistemi esterni<\/strong>, consentendo cos\u00ec alla<strong> logica del dominio<\/strong> di evolversi in modo indipendente.<\/p>\n<p>Inoltre, <strong>Architettura esagonale<\/strong> integra i principi di progettazione strategica di DDD, compreso il concetto di contesti delimitati. Ciascun contesto delimitato in DDD pu\u00f2 essere immaginato come un esagono in <strong>Architettura esagonale<\/strong>con il modello di dominio al centro e il modello di <strong>porte e adattatori<\/strong> che fungono da confini.<\/p>\n<h2>14. Microservizi<\/h2>\n<p>I microservizi, un altro stile architettonico contemporaneo, possono trarre grande vantaggio da <strong>Architettura esagonale<\/strong>. La natura decentralizzata dei microservizi - in cui ogni servizio incapsula una specifica capacit\u00e0 aziendale - si allinea perfettamente con l'incapsulamento di <strong>logica aziendale<\/strong> all'interno del nucleo dell'esagono.<\/p>\n<p>Proprio come ogni <a href=\"https:\/\/thecodest.co\/it\/blog\/exploring-microservice-based-frontend-architecture\/\">microservizio<\/a> dovrebbe essere accoppiato in modo lasco con gli altri, ogni esagono in <strong>Architettura esagonale<\/strong> \u00e8 anche isolato dagli altri, comunicando solo attraverso le porte e gli adattatori definiti. Questo permette a ogni microservizio di avere il proprio <strong>architettura esagonale<\/strong>, che si traduce in un insieme di servizi autonomi e liberamente accoppiati.<\/p>\n<p>L'isolamento fornito da <strong>Architettura esagonale<\/strong> pu\u00f2 essere particolarmente utile quando si ha a che fare con la complessit\u00e0 e la natura distribuita dei microservizi. Isolando il <strong>logica aziendale di base<\/strong> dal mondo esterno, <strong>Architettura esagonale<\/strong> garantisce la <strong>logica aziendale<\/strong> rimane intatto, a prescindere dalle modifiche apportate ad altri servizi o <strong>sistemi esterni<\/strong>.<\/p>\n<h2>15. Confronto dell'architettura esagonale con altre architetture<\/h2>\n<p>Il modo in cui il software viene progettato pu\u00f2 avere un impatto profondo sulla sua evoluzione nel tempo. Confronto <strong>Architettura esagonale<\/strong> ad altre architetture d\u00e0 <a href=\"https:\/\/thecodest.co\/it\/blog\/why-us-companies-are-opting-for-polish-developers\/\">noi<\/a> una comprensione pi\u00f9 approfondita dei suoi punti di forza e dei potenziali compromessi.<\/p>\n<h2>16. Architettura esagonale vs. architettura a strati<\/h2>\n<p><strong>Architettura a strati <\/strong>\u00e8 un tradizionale <strong>modello architettonico<\/strong> che struttura un'applicazione in livelli logici, spesso livelli di presentazione, business e accesso ai dati. Lo svantaggio principale di questo pattern \u00e8 che incoraggia una forte dipendenza tra i livelli, portando a una situazione in cui i cambiamenti in un livello possono ripercuotersi sull'intera applicazione.<\/p>\n<p>Al contrario, <strong>Architettura esagonale<\/strong> riduce al minimo tali dipendenze. Invece dei livelli, ha un <strong>nucleo dell'applicazione<\/strong> circondato da adattatori intercambiabili. Le modifiche apportate a un server di database, ad esempio, influirebbero solo sull'adattatore corrispondente, lasciando il server <strong>nucleo dell'applicazione<\/strong> e altri adattatori.<\/p>\n<h2>17. Architettura esagonale vs. architettura pulita<\/h2>\n<p><strong>Architettura pulita<\/strong>, un altro <strong>modello architettonico<\/strong>condivide molte somiglianze con <strong>Architettura esagonale<\/strong>. Entrambi enfatizzano la separazione delle preoccupazioni, mirano a isolare il nucleo centrale <strong>regole aziendali<\/strong> da dettagli esterni, e attenersi al <strong>Principio di inversione della dipendenza<\/strong>.<\/p>\n<p>Tuttavia, <strong>Architettura esagonale<\/strong> si concentra maggiormente sul modo in cui l'applicazione interagisce con l'interfaccia <strong>all'esterno<\/strong> mondo utilizzando porte e adattatori, mentre <strong>Architettura pulita<\/strong> fornisce una struttura pi\u00f9 dettagliata per gli strati interni dell'architettura. In altre parole, <strong>Architettura pulita<\/strong> pu\u00f2 essere visto come un sottoinsieme di <strong>Architettura esagonale<\/strong>con ulteriori indicazioni sull'organizzazione della struttura interna dell'applicazione.<\/p>\n<h2>18. Architettura esagonale vs. architettura a cipolla<\/h2>\n<p><strong>Architettura a cipolla<\/strong> \u00e8 un altro stile architettonico che mira a isolare la <strong>logica aziendale di base<\/strong> dal <strong>interfacce esterne<\/strong> e infrastruttura. \u00c8 composto da diversi strati concentrici con il modello di dominio al centro, e ogni strato pu\u00f2 dipendere solo dagli strati al suo interno.<\/p>\n<p>Sebbene condividano un obiettivo comune, Hexagonal e <strong>Architettura a cipolla <\/strong>Lo raggiungono in modi leggermente diversi. <strong>Architettura a cipolla<\/strong> pone molta enfasi sulla direzione delle dipendenze, assicurandosi che tutte le dipendenze vadano verso l'interno. <strong>Architettura esagonale<\/strong>pur approvando le dipendenze rivolte verso l'interno, pone maggiore enfasi sull'interazione con il <strong>mondo esterno <\/strong>attraverso le porte e gli adattatori.<\/p>\n<h2>19. Test nell'architettura esagonale<\/h2>\n<p>Un punto di forza fondamentale di<strong> Architettura esagonale<\/strong> \u00e8 l'attenzione alla testabilit\u00e0. Isolando l'applicazione principale dalla<strong> mondo esterno<\/strong> attraverso porte e adattatori, l'Architettura Esagonale permette l'esecuzione di <strong>test automatizzati<\/strong> che pu\u00f2 fornire fiducia nella stabilit\u00e0 e nella correttezza del software.<\/p>\n<p>In un <strong>Architettura esagonale<\/strong>, il <strong>porte primarie<\/strong>che incapsulano il nucleo <strong>regole aziendali<\/strong>possono essere testati indipendentemente dal mondo esterno. Ad esempio, invece di comunicare con un database reale durante i test, un sistema di <strong>adattatore per database<\/strong> pu\u00f2 essere sostituito da un doppio test che simula il comportamento di un database reale. Questo permette agli sviluppatori di concentrarsi sul test del database <strong>regole aziendali<\/strong>piuttosto che l'interazione con il database.<\/p>\n<p>Inoltre, <strong>test di regressione automatizzati<\/strong> possono essere facilmente costruiti per convalidare che il sistema si comporti come previsto quando vengono apportate delle modifiche. Questo livello di testabilit\u00e0 \u00e8 un vantaggio significativo quando si tratta di mantenere e aggiornare il software, in quanto aiuta a individuare e risolvere i problemi nelle prime fasi del processo. <a href=\"https:\/\/thecodest.co\/it\/blog\/how-the-codests-team-extension-model-can-transform-your-in-house-development-team\/\">processo di sviluppo<\/a>.<\/p>\n<p>Inoltre, la struttura di<strong> Architettura esagonale<\/strong> supporta anche i test di integrazione. Sostituendo il <strong>componenti esterni<\/strong> (come un server di database o un <strong>API esterna<\/strong>) con i doppi di prova, gli sviluppatori possono testare come l'applicazione <strong>nucleo dell'applicazione<\/strong> si integra con questi componenti senza dover utilizzare i sistemi esterni. Ci\u00f2 pu\u00f2 migliorare notevolmente la velocit\u00e0 e l'affidabilit\u00e0 dei test.<\/p>\n<h2> Conclusione<\/h2>\n<p><strong>Architettura esagonale<\/strong> emerge come una soluzione allettante nella vasta gamma di strategie di sviluppo del software. Si distingue per il fatto di disaccoppiare la <strong>nucleo dell'applicazione<\/strong> dall'ambiente esterno, garantendo cos\u00ec un alto grado di manutenibilit\u00e0, testabilit\u00e0 e flessibilit\u00e0. Questa separazione facilita agli sviluppatori la possibilit\u00e0 di concentrarsi sul cuore del progetto. <strong>logica aziendale<\/strong>e, allo stesso tempo, di rafforzare la resilienza del software contro le alterazioni del <strong>sistemi esterni<\/strong>.<\/p>\n<p>Sebbene l'architettura esagonale presenti degli svantaggi, la sua moltitudine di vantaggi la rende una risorsa preziosa per la cassetta degli attrezzi di qualsiasi sviluppatore. Nel regno di <strong>architettura del software<\/strong>Il modello esagonale continua ad affermare il proprio dominio.<\/p>\n<p>Questo articolo, costellato di <strong>esempi di codice<\/strong>L'obiettivo \u00e8 quello di fornire una comprensione approfondita di <strong>Architettura esagonale<\/strong> e i suoi potenziali vantaggi. Tenete presente che il segreto di un'architettura efficace non risiede nella cieca adesione agli schemi, ma nella comprensione dei principi sottostanti e nella loro ponderata implementazione per soddisfare requisiti specifici.<\/p>\n<p>Nell'ambito dell'Architettura Esagonale, l'interfaccia definita tra il sistema <strong>livello applicativo<\/strong> e il <strong>strato dati<\/strong> \u00e8 di fondamentale importanza. Che si tratti di un <a href=\"https:\/\/thecodest.co\/it\/dictionary\/what-is-a-software-architect\/\">architetto del software<\/a> che sta valutando l'adozione di questa metodologia, o un <a href=\"https:\/\/thecodest.co\/it\/blog\/hire-vue-js-developers\/\">sviluppatore<\/a> Cercando di comprenderne le complessit\u00e0, \u00e8 chiaro che l'influenza di questa architettura continua a crescere. La dimostrazione dei vari modi in cui pu\u00f2 essere efficacemente utilizzata. Per esempio, in un <strong><a href=\"https:\/\/thecodest.co\/it\/dictionary\/what-is-fintech-in-banking\/\">bancario<\/a> applicazione<\/strong>, il <strong>interfaccia del repository<\/strong> pu\u00f2 fungere da adattatore secondario, facendo da ponte con il sistema <strong>nucleo dell'applicazione<\/strong> con <strong>codice esterno<\/strong>. Questa separazione consente la flessibilit\u00e0 di scambiare il <strong>implementazione concreta<\/strong> di un <strong>file system<\/strong> o una tecnologia specifica, senza impattare sui servizi applicativi.<\/p>\n<p>Il <strong>sviluppo <a href=\"https:\/\/thecodest.co\/it\/dictionary\/how-to-lead-software-development-team\/\">squadra<\/a><\/strong> pu\u00f2 ora lavorare sul <strong>lato sinistro<\/strong> dell'applicazione senza preoccuparsi di <strong>fattori esterni<\/strong>, assicurando cos\u00ec un progresso senza soluzione di continuit\u00e0. E cos\u00ec, concludiamo la nostra esplorazione del mondo di <strong>Architettura esagonale<\/strong>uno stile architettonico che continua a estendere la sua influenza nel panorama dello sviluppo del software.<br \/>\n<a href=\"https:\/\/thecodest.co\/contact\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/interested_in_cooperation_.png\" alt=\"banner di cooperazione\" \/><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Esplorate il potere dell'Architettura Esagonale nel migliorare la manutenibilit\u00e0, la testabilit\u00e0 e l'adattabilit\u00e0 del software.<\/p>","protected":false},"author":2,"featured_media":3624,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>The Power of Hexagonal Architecture - The Codest<\/title>\n<meta name=\"description\" content=\"Explore the power of Hexagonal Architecture in software development, enhancing maintainability, testability, and flexibility. Learn how this architectural style, also known as Ports and Adapters, separates core business logic from external systems, supporting Domain-Driven Design, microservices, and reducing technical debt.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/it\/blog\/il-potere-dellarchitettura-esagonale\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Power of Hexagonal Architecture\" \/>\n<meta property=\"og:description\" content=\"Explore the power of Hexagonal Architecture in software development, enhancing maintainability, testability, and flexibility. Learn how this architectural style, also known as Ports and Adapters, separates core business logic from external systems, supporting Domain-Driven Design, microservices, and reducing technical debt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/it\/blog\/il-potere-dellarchitettura-esagonale\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-13T13:29:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-10T07:51:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/unlocking_the_possibilities_with_hexagonal_architecture.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"The Power of Hexagonal Architecture\",\"datePublished\":\"2023-06-13T13:29:49+00:00\",\"dateModified\":\"2024-09-10T07:51:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/\"},\"wordCount\":2868,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/unlocking_the_possibilities_with_hexagonal_architecture.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/\",\"name\":\"The Power of Hexagonal Architecture - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/unlocking_the_possibilities_with_hexagonal_architecture.png\",\"datePublished\":\"2023-06-13T13:29:49+00:00\",\"dateModified\":\"2024-09-10T07:51:21+00:00\",\"description\":\"Explore the power of Hexagonal Architecture in software development, enhancing maintainability, testability, and flexibility. Learn how this architectural style, also known as Ports and Adapters, separates core business logic from external systems, supporting Domain-Driven Design, microservices, and reducing technical debt.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/unlocking_the_possibilities_with_hexagonal_architecture.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/unlocking_the_possibilities_with_hexagonal_architecture.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/the-power-of-hexagonal-architecture\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Power of Hexagonal Architecture\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/it\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Il potere dell'architettura esagonale - The Codest","description":"Scoprite la potenza dell'Architettura esagonale nello sviluppo del software, che migliora la manutenibilit\u00e0, la testabilit\u00e0 e la flessibilit\u00e0. Scoprite come questo stile architettonico, noto anche come Ports and Adapters, separa la logica aziendale principale dai sistemi esterni, supportando il Domain-Driven Design, i microservizi e riducendo il debito tecnico.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/it\/blog\/il-potere-dellarchitettura-esagonale\/","og_locale":"it_IT","og_type":"article","og_title":"The Power of Hexagonal Architecture","og_description":"Explore the power of Hexagonal Architecture in software development, enhancing maintainability, testability, and flexibility. Learn how this architectural style, also known as Ports and Adapters, separates core business logic from external systems, supporting Domain-Driven Design, microservices, and reducing technical debt.","og_url":"https:\/\/thecodest.co\/it\/blog\/il-potere-dellarchitettura-esagonale\/","og_site_name":"The Codest","article_published_time":"2023-06-13T13:29:49+00:00","article_modified_time":"2024-09-10T07:51:21+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/unlocking_the_possibilities_with_hexagonal_architecture.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"The Power of Hexagonal Architecture","datePublished":"2023-06-13T13:29:49+00:00","dateModified":"2024-09-10T07:51:21+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/"},"wordCount":2868,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/unlocking_the_possibilities_with_hexagonal_architecture.png","articleSection":["Software Development"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/","url":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/","name":"Il potere dell'architettura esagonale - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/unlocking_the_possibilities_with_hexagonal_architecture.png","datePublished":"2023-06-13T13:29:49+00:00","dateModified":"2024-09-10T07:51:21+00:00","description":"Scoprite la potenza dell'Architettura esagonale nello sviluppo del software, che migliora la manutenibilit\u00e0, la testabilit\u00e0 e la flessibilit\u00e0. Scoprite come questo stile architettonico, noto anche come Ports and Adapters, separa la logica aziendale principale dai sistemi esterni, supportando il Domain-Driven Design, i microservizi e riducendo il debito tecnico.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/unlocking_the_possibilities_with_hexagonal_architecture.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/unlocking_the_possibilities_with_hexagonal_architecture.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/the-power-of-hexagonal-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"The Power of Hexagonal Architecture"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/it\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts\/3623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/comments?post=3623"}],"version-history":[{"count":5,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts\/3623\/revisions"}],"predecessor-version":[{"id":8012,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/posts\/3623\/revisions\/8012"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/media\/3624"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/media?parent=3623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/categories?post=3623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/it\/wp-json\/wp\/v2\/tags?post=3623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}