{"id":29289,"date":"2024-09-02T10:00:00","date_gmt":"2024-09-02T08:00:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=29289"},"modified":"2024-09-02T13:19:55","modified_gmt":"2024-09-02T11:19:55","slug":"nuovi-framework","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/","title":{"rendered":"L&#8217;adozione di nuovi framework potrebbe far fallire il tuo progetto"},"content":{"rendered":"\n<p>Nel mondo dello sviluppo software, l&#8217;attrazione per le novit\u00e0 \u00e8 sempre forte. \u00c8 allettante mettere le mani su un nuovo prodotto, magari il primo a risolvere una serie di problemi che gli altri framework non riescono ad affrontare.<\/p>\n\n\n\n<p>Questi nuovi progetti spesso vantano una comunit\u00e0 piccola ma energica, <strong>promettono di accelerare i tempi di sviluppo<\/strong> e presentano innovazioni interessanti rispetto ai concorrenti. Tutto ci\u00f2 sembra molto promettente, ma \u00e8 davvero la scelta giusta per un progetto a lungo termine?<\/p>\n\n\n\n<p>Donald Knuth, uno dei padri dell&#8217;informatica moderna, commentava il proprio codice in questo modo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>Fate attenzione ai bug nel codice soprastante; ho solo dimostrato che \u00e8 corretto, non l'ho testato.<\/em><\/pre>\n\n\n\n<p>Se fosse stata scritta da un programmatore junior, questa frase potrebbe sembrare una battuta. Ma detta da <strong>Knuth<\/strong>, oltre a essere umoristica, potrebbe anche segnalare che quella parte di codice non era testabile, ma solo sintatticamente corretta.<\/p>\n\n\n\n<p>A volte \u00e8 molto pi\u00f9 semplice dimostrare un concetto, descriverne il funzionamento e documentarlo, rispetto alla sua reale applicazione, che potrebbe coinvolgere una serie di aspetti non considerati dalla dimostrazione.<\/p>\n\n\n\n<p>Questo concetto si pu\u00f2 parafrasare cos\u00ec: &#8220;<em>Non \u00e8 detto che un&#8217;idea brillante funzioni sempre nella realt\u00e0<\/em>&#8220;. Pensando a ci\u00f2, non posso non considerare il mondo delle blockchain: sulla carta strumenti eccellenti, ma nella pratica spesso criticati per prestazioni e utilizzo delle risorse.<\/p>\n\n\n\n<p>Uscendo dal mondo software, pensiamo a <strong><a href=\"https:\/\/www.wired.com\/2015\/01\/well-didnt-work-segway-technological-marvel-bad-doesnt-make-sense\/\">prodotti come Segway<\/a><\/strong> che, nonostante fosse un&#8217;idea brillante, non ha avuto il successo sperato. O a Google Glass, che nonostante fosse un prodotto innovativo, non \u00e8 mai decollato.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-e-i-framework\">E i framework?<\/h2>\n\n\n\n<p>I nuovi framework e, pi\u00f9 in generale, le tecnologie software, soffrono spesso di un hype iniziale che galvanizza i programmatori, distraendoli da una solida analisi della loro efficacia nel lungo termine. I concetti utilizzati in quel nuovo software sono applicabili a tutti i progetti? <strong>Sono facilmente integrabili con altre tecnologie?<\/strong> Ci sono solide aziende che investono in quella tecnologia? La comunit\u00e0 \u00e8 attiva e supporta il prodotto?<\/p>\n\n\n\n<p>I cosiddetti &#8220;early adopters&#8221; sono spesso attratti dalle novit\u00e0, ma frequentemente non si rendono conto dei rischi che questa scelta comporta. Se va tutto bene, hanno fatto una scelta fortunata che ha portato al successo il proprio software. Ma se il prodotto scelto non riesce a mantenere le promesse, si ritrovano con un software che non funziona come dovrebbe e che richiede un lavoro di manutenzione e refactoring molto pi\u00f9 pesante di quanto previsto.<\/p>\n\n\n\n<p>Per chi sviluppa software da oltre 30 anni,<strong> il nome Visual Objects far\u00e0 suonare qualche campanello<\/strong>: doveva essere il nuovo Clipper e portare milioni di programmatori DOS in ambiente Windows. Un&#8217;idea fantastica, ma che non ha funzionato: troppi problemi, troppi bug, troppi limiti. Ai tempi aveva alle spalle un&#8217;azienda come Computer Associates, che poteva permettersi di investire milioni di dollari in un prodotto, ma nonostante questo, non \u00e8 mai decollato.<\/p>\n\n\n\n<p>Ecco perch\u00e9, quando si tratta di scegliere un framework o una tecnologia per un progetto, \u00e8 importante considerare non solo le sue caratteristiche tecniche, <strong>ma anche la sua sostenibilit\u00e0<\/strong> a lungo termine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-l-orizzonte-temporale-una-dimensione-cruciale\">L&#8217;orizzonte temporale: una dimensione cruciale<\/h2>\n\n\n\n<p>Ogni volta che valuto un progetto, cerco di anticiparne il ciclo di vita, o almeno quello che dovrebbe essere, basandomi sull&#8217;esperienza e sulle informazioni a mia disposizione. La sfera di cristallo non esiste e il futuro non \u00e8 prevedibile, ma ci sono segnali che fanno capire se un progetto sar\u00e0 di breve, media o lunga durata.<\/p>\n\n\n\n<p>Per comprendere quanto un progetto possa durare, \u00e8 importante considerare vari aspetti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Obiettivi a lungo termine<\/strong>: Quali sono gli obiettivi del progetto? \u00c8 un prodotto che risolve un singolo problema o qualcosa di strutturato per durare anni o solo pochi mesi?<\/li>\n\n\n\n<li><strong>Stabilit\u00e0 del mercato<\/strong>: Il mercato in cui il progetto opera \u00e8 stabile o in rapida evoluzione? L&#8217;effervescenza di un mercato pu\u00f2 portare a cambiamenti rapidi che richiedono una maggiore flessibilit\u00e0 da parte del progetto.<\/li>\n\n\n\n<li><strong>Competizione<\/strong>: Qual \u00e8 il livello di competizione nel settore in cui opera il progetto? Lavorare in un&#8217;arena dove magari gli altri attori provengono da aziende pi\u00f9 grandi e strutturate pu\u00f2 richiedere una maggiore attenzione alla qualit\u00e0 e alla sostenibilit\u00e0 del progetto.<\/li>\n\n\n\n<li><strong>Tendenze del settore<\/strong>: Quali sono le tendenze attuali nel settore in cui opera il progetto? Alcuni progetti nascono gi\u00e0 vecchi, perch\u00e9 si basano su tecnologie obsolete o su modelli di business superati.<\/li>\n\n\n\n<li><strong>Risorse disponibili<\/strong>: Quali risorse sono disponibili per lo sviluppo e la manutenzione del progetto? Si tratta di progetti &#8220;one man show&#8221; o ci sono team strutturati dietro?<\/li>\n<\/ul>\n\n\n\n<p>Questi sono solo alcuni degli indicatori possibili, ma basarsi solo sul nome e su ci\u00f2 che viene promesso \u00e8 spesso una sottovalutazione del rischio.<\/p>\n\n\n\n<p>Quando si utilizzano framework o tecnologie giovani, \u00e8 importante considerare che potrebbero non essere supportati a lungo termine o potrebbero non essere in grado di adattarsi ai cambiamenti del mercato. Questo pu\u00f2 portare a costi di manutenzione elevati, a problemi di compatibilit\u00e0 e a una maggiore complessit\u00e0 del codice.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"581\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-4-leonardo-ai-1024x581.jpg\" alt=\"\" class=\"wp-image-29295\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-4-leonardo-ai-1024x581.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-4-leonardo-ai-300x170.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-4-leonardo-ai-768x436.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-4-leonardo-ai.jpg 1184w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">La scelta di un framework o di una tecnologia dovrebbe essere guidata non solo dall&#8217;entusiasmo per l&#8217;innovazione, ma anche da una valutazione ponderata dei rischi e dei benefici a lungo termine.<\/figcaption><\/figure>\n\n\n\n<p>D&#8217;altra parte, occorre anche valutare i progetti che si intendono realizzare. Potrebbero essere progetti nati e conclusi nel giro di un fine settimana: in questo caso l&#8217;esigenza primaria \u00e8 la risoluzione del problema. Altri potrebbero dover reggere per pochi mesi per soddisfare un&#8217;esigenza specifica. Infine, esistono progetti destinati a durare anni, su cui un&#8217;azienda intende costruire la propria base operativa: in queste situazioni la scelta del framework e l&#8217;architettura di progetto diventa cruciale e non pu\u00f2 essere basata solo sulla moda del momento.<\/p>\n\n\n\n<p>L&#8217;orizzonte temporale \u00e8 una dimensione che ogni architetto del software dovrebbe tenere in considerazione, perch\u00e9 influenza notevolmente le aspettative e le scelte che si possono fare.<\/p>\n\n\n\n<p>Per un progetto &#8220;one-shot&#8221;, si pu\u00f2 tranquillamente adottare il framework CIRO, creato da un nomade della Tanzania, utilizzato solo dal suo gruppo di amici, con un unico rilascio fatto alcuni anni fa, se risolve in maniera sbalorditiva un problema cruciale per il progetto. Se invece devo realizzare qualcosa che deve durare oltre la scadenza di un dolce al cucchiaio, forse dovrei moderare la mia aggressivit\u00e0 nella scelta dei componenti software da impiegare e basarmi su KPI differenti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-il-rischio-dell-abbandono\">Il rischio dell&#8217;abbandono<\/h2>\n\n\n\n<p>Mi \u00e8 capitato di usare prodotti sia &#8220;closed source&#8221; che &#8220;open source&#8221;, il cui creatore \u00e8 scomparso nel nulla, cos\u00ec come si \u00e8 dissolta la comunit\u00e0 che ne faceva parte. Se ci\u00f2 accade con prodotti &#8220;closed&#8221;, \u00e8 sicuramente molto preoccupante, ma non cadete nell&#8217;illusione che sia tutto rose e fiori se avviene con prodotti &#8220;open&#8221;. Un conto \u00e8 utilizzare un prodotto, un altro \u00e8 svilupparlo e conoscerlo in ogni sua virgola.<\/p>\n\n\n\n<p>La mente di chi progetta una soluzione \u00e8 solitamente intrappolata tra le righe di codice del prodotto stesso ed \u00e8 certamente pi\u00f9 immersa nelle sue logiche interne rispetto a chi lo usa, che spesso sfrutta solo una parte delle sue potenzialit\u00e0. Non pensate quindi che &#8220;open&#8221; significhi &#8220;c&#8217;\u00e8 un problema: lo risolvo io&#8221;, perch\u00e9 non \u00e8 sempre cos\u00ec.<\/p>\n\n\n\n<p>Linus Torvalds, <a href=\"https:\/\/www.codemotion.com\/magazine\/it\/open-source\/linux-la-rivoluzione-dellopen-source-e-il-suo-impatto-sulla-vita-dei-dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">creatore di Linux<\/a>, ha un&#8217;opinione forte su questo argomento:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>Il software \u00e8 come il sesso: \u00e8 migliore quando \u00e8 libero e gratuito.<\/em><\/pre>\n\n\n\n<p>Anche se Torvalds utilizza questa citazione per promuovere il software open source, \u00e8 importante ricordare che &#8220;gratuito&#8221; non significa necessariamente &#8220;senza costi&#8221; e che la libert\u00e0 di disporre dei sorgenti di un progetto non necessariamente significa poterlo mantenere e farlo evolvere.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-l-importanza-dell-analisi-periodica\">L&#8217;importanza dell&#8217;analisi periodica<\/h2>\n\n\n\n<p>Questo \u00e8 uno dei motivi per cui dovremmo sempre eseguire un&#8217;analisi della vita dei prodotti che adottiamo. Un&#8217;analisi da ripetere periodicamente, che tenga conto del contesto attuale, della maturit\u00e0 del progetto e delle sue prospettive future.<\/p>\n\n\n\n<p>Se sui progetti brevi si pu\u00f2 ignorare questo aspetto, su quelli che superano gli anni di sviluppo, il problema diventa incombente: o si aggiorna il prodotto e le sue dipendenze, o ci si trova in un vicolo cieco a causa delle innumerevoli intrecciature del proprio codice.<\/p>\n\n\n\n<p>Un&#8217;analisi periodica ci permette di valutare se il framework o la tecnologia che stiamo utilizzando \u00e8 ancora adatto alle nostre esigenze, se \u00e8 supportato attivamente dalla comunit\u00e0 e se \u00e8 in grado di adattarsi ai cambiamenti del mercato.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-il-rischio-dei-servizi-non-standard\">Il rischio dei servizi non standard<\/h2>\n\n\n\n<p>Questo si applica anche a tutti i problemi che possono scaturire dall&#8217;adozione di un servizio senza standard, che potrebbe essere ritirato dal mercato o raddoppiare i prezzi da una stagione all&#8217;altra.<\/p>\n\n\n\n<p>Jeff Bezos ha una visione interessante su come le aziende dovrebbero approcciarsi alla tecnologia:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>Bisogna essere testardi nella visione e flessibili nei dettagli<\/em><\/pre>\n\n\n\n<p>Questa filosofia pu\u00f2 essere applicata anche alla scelta dei framework, dei servizi e dello sviluppo software: mentre i dettagli tecnici possono cambiare, i principi di base come la scalabilit\u00e0, la manutenibilit\u00e0 e l&#8217;interoperabilit\u00e0 dovrebbero rimanere costanti.<\/p>\n\n\n\n<p>Per questo motivo, realizzare un software fortemente accoppiato con un framework potrebbe portare a problemi di manutenzione e scalabilit\u00e0 in futuro. Se il framework non \u00e8 pi\u00f9 supportato o non \u00e8 in grado di adattarsi ai cambiamenti del mercato, <strong>potremmo trovarci in una situazione in cui \u00e8 necessario riscrivere gran parte del codice<\/strong> per adattarlo a una nuova tecnologia.<\/p>\n\n\n\n<p>Ho visto prodotti fare scelte tecniche che, sulla carta, sembravano le migliori, e col tempo accorgersi che l&#8217;accoppiamento software che era stato realizzato era talmente forte che cambiare una parte significava dover cambiare tutto il resto. Anche questo problema si pu\u00f2 evitare con una corretta analisi e una scelta ponderata dei componenti utilizzati, disaccoppiando utilizzo da implementazione e accettando di dover cambiare una parte del software se necessario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusione\">Conclusione<\/h2>\n\n\n\n<p>Quando si tratta di nuovi framework, il rischio di sprecare tempo e risorse \u00e8 considerevole. Se amate l&#8217;incertezza e la durata del progetto non \u00e8 un fattore che volete considerare, siete liberi di fare qualsiasi scelta e di costruire un prodotto ricco di domande irrisolte.<\/p>\n\n\n\n<p>In caso di errori, tenete presente che <strong>potrebbe essere necessario ricominciare da zero<\/strong>, a meno che il vostro software non sia sufficientemente modulare da permettere la sostituzione di un componente senza dover riscrivere tutto il resto.<\/p>\n\n\n\n<p>La scelta di un framework o di una tecnologia dovrebbe essere guidata non solo dall&#8217;entusiasmo per l&#8217;innovazione, ma anche da una valutazione ponderata dei rischi e dei benefici a lungo termine. La sostenibilit\u00e0, la manutenibilit\u00e0 e la scalabilit\u00e0 dovrebbero essere sempre in cima alle nostre priorit\u00e0 quando prendiamo decisioni architetturali.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nel mondo dello sviluppo software, l&#8217;attrazione per le novit\u00e0 \u00e8 sempre forte. \u00c8 allettante mettere le mani su un nuovo prodotto, magari il primo a risolvere una serie di problemi che gli altri framework non riescono ad affrontare. Questi nuovi progetti spesso vantano una comunit\u00e0 piccola ma energica, promettono di accelerare i tempi di sviluppo&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\">Read more<\/a><\/p>\n","protected":false},"author":246,"featured_media":29293,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10269],"tags":[10329],"collections":[],"class_list":{"0":"post-29289","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-architettura-del-software","8":"tag-framework","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>L&#039;adozione di nuovi framework potrebbe far fallire il tuo progetto - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Scopri perch\u00e9 l&#039;adozione di nuovi framework, seppur innovativi, potrebbe mettere a rischio il successo del tuo progetto software a lungo termine.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"L&#039;adozione di nuovi framework potrebbe far fallire il tuo progetto\" \/>\n<meta property=\"og:description\" content=\"Scopri perch\u00e9 l&#039;adozione di nuovi framework, seppur innovativi, potrebbe mettere a rischio il successo del tuo progetto software a lungo termine.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-02T08:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-02T11:19:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1184\" \/>\n\t<meta property=\"og:image:height\" content=\"672\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matteo Baccan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matteo Baccan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\"},\"author\":{\"name\":\"Matteo Baccan\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\"},\"headline\":\"L&#8217;adozione di nuovi framework potrebbe far fallire il tuo progetto\",\"datePublished\":\"2024-09-02T08:00:00+00:00\",\"dateModified\":\"2024-09-02T11:19:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\"},\"wordCount\":1633,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg\",\"keywords\":[\"Framework\"],\"articleSection\":[\"Architettura del software\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\",\"name\":\"L'adozione di nuovi framework potrebbe far fallire il tuo progetto - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg\",\"datePublished\":\"2024-09-02T08:00:00+00:00\",\"dateModified\":\"2024-09-02T11:19:55+00:00\",\"description\":\"Scopri perch\u00e9 l'adozione di nuovi framework, seppur innovativi, potrebbe mettere a rischio il successo del tuo progetto software a lungo termine.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg\",\"width\":1184,\"height\":672,\"caption\":\"perch\u00e9 esplorare nuovi framework potrebbe far fallire il tuo progetto\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Architettura del software\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"L&#8217;adozione di nuovi framework potrebbe far fallire il tuo progetto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\",\"name\":\"Matteo Baccan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg\",\"caption\":\"Matteo Baccan\"},\"description\":\"Matteo Baccan is a professional software engineer and trainer with over 30 years of experience in the IT industry. He has worked for several companies and organizations, dealing with design, development, testing, and management of web and desktop applications, using various languages and technologies. He is also a passionate computer science educator, author of numerous articles, books, and online courses aimed at all levels of expertise. He runs a website and a YouTube channel where he shares video tutorials, interviews, reviews, and programming tips. Active in open-source communities, he regularly participates in programming events and competitions. He defines himself as a \\\"realistic dreamer\\\" who loves to experiment, innovate, and share his knowledge and passions, following the motto: \\\"Never stop learning, because life never stops teaching.\\\"\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"L'adozione di nuovi framework potrebbe far fallire il tuo progetto - Codemotion Magazine","description":"Scopri perch\u00e9 l'adozione di nuovi framework, seppur innovativi, potrebbe mettere a rischio il successo del tuo progetto software a lungo termine.","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:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/","og_locale":"en_US","og_type":"article","og_title":"L'adozione di nuovi framework potrebbe far fallire il tuo progetto","og_description":"Scopri perch\u00e9 l'adozione di nuovi framework, seppur innovativi, potrebbe mettere a rischio il successo del tuo progetto software a lungo termine.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-09-02T08:00:00+00:00","article_modified_time":"2024-09-02T11:19:55+00:00","og_image":[{"width":1184,"height":672,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg","type":"image\/jpeg"}],"author":"Matteo Baccan","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Matteo Baccan","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/"},"author":{"name":"Matteo Baccan","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1"},"headline":"L&#8217;adozione di nuovi framework potrebbe far fallire il tuo progetto","datePublished":"2024-09-02T08:00:00+00:00","dateModified":"2024-09-02T11:19:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/"},"wordCount":1633,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg","keywords":["Framework"],"articleSection":["Architettura del software"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/","name":"L'adozione di nuovi framework potrebbe far fallire il tuo progetto - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg","datePublished":"2024-09-02T08:00:00+00:00","dateModified":"2024-09-02T11:19:55+00:00","description":"Scopri perch\u00e9 l'adozione di nuovi framework, seppur innovativi, potrebbe mettere a rischio il successo del tuo progetto software a lungo termine.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg","width":1184,"height":672,"caption":"perch\u00e9 esplorare nuovi framework potrebbe far fallire il tuo progetto"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/nuovi-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/"},{"@type":"ListItem","position":3,"name":"Architettura del software","item":"https:\/\/www.codemotion.com\/magazine\/it\/backend-it\/architettura-del-software\/"},{"@type":"ListItem","position":4,"name":"L&#8217;adozione di nuovi framework potrebbe far fallire il tuo progetto"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1","name":"Matteo Baccan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/02\/matteo-baccan-100x100.jpg","caption":"Matteo Baccan"},"description":"Matteo Baccan is a professional software engineer and trainer with over 30 years of experience in the IT industry. He has worked for several companies and organizations, dealing with design, development, testing, and management of web and desktop applications, using various languages and technologies. He is also a passionate computer science educator, author of numerous articles, books, and online courses aimed at all levels of expertise. He runs a website and a YouTube channel where he shares video tutorials, interviews, reviews, and programming tips. Active in open-source communities, he regularly participates in programming events and competitions. He defines himself as a \"realistic dreamer\" who loves to experiment, innovate, and share his knowledge and passions, following the motto: \"Never stop learning, because life never stops teaching.\"","url":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-600x600.jpg","author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg",1184,672,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-300x170.jpg",300,170,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-768x436.jpg",768,436,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-1024x581.jpg",1024,581,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg",1184,672,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai.jpg",1184,672,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-100x100.jpg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/08\/06-EsplorareNuoviFramework-articolo-2-leonardo-ai-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_comment_info":0,"uagb_excerpt":"Nel mondo dello sviluppo software, l&#8217;attrazione per le novit\u00e0 \u00e8 sempre forte. \u00c8 allettante mettere le mani su un nuovo prodotto, magari il primo a risolvere una serie di problemi che gli altri framework non riescono ad affrontare. Questi nuovi progetti spesso vantano una comunit\u00e0 piccola ma energica, promettono di accelerare i tempi di sviluppo&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/29289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/246"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=29289"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/29289\/revisions"}],"predecessor-version":[{"id":29302,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/29289\/revisions\/29302"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/29293"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=29289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=29289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=29289"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=29289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}