{"id":34614,"date":"2025-12-01T13:46:05","date_gmt":"2025-12-01T12:46:05","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=34614"},"modified":"2025-12-01T13:46:07","modified_gmt":"2025-12-01T12:46:07","slug":"un-grande-programmatore-toglie-non-aggiunge","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/","title":{"rendered":"Un grande programmatore toglie, non aggiunge"},"content":{"rendered":"\n<p>Scrivere software \u00e8 un atto che, in apparenza, chiunque pu\u00f2 compiere. Ci si siede, si accende un computer, si apre un IDE, un editor, VI se hai il cuore puro o qualsiasi altra cosa (s\u00ec, vale anche Notepad) e si inizia a digitare.<\/p>\n\n\n\n<p>Non servono nemmeno specifiche dettagliate: a cosa servono quando hai tutto in testa? A volte basta un&#8217;idea e la voglia di raggiungere un risultato. E qualcosa, inevitabilmente, accade.<\/p>\n\n\n\n<p>Il primo &#8220;Hello World&#8221; \u00e8 sempre un momento magico, ma \u00e8 solo l&#8217;inizio.<\/p>\n\n\n\n<p>Superato il primo ostacolo, si scopre che scrivere software \u00e8 un processo continuo di apprendimento e adattamento. Anche se all&#8217;inizio \u00e8 complicato, con il tempo si imparano i rudimenti: framework, librerie, design pattern. Si capisce come strutturare il codice, come modularizzarlo, come testarlo. E alla fine, dopo giorni o settimane di lavoro, si ottiene qualcosa che funziona\u2014magari non esattamente come l&#8217;avevamo in testa, ma funziona: e in quel momento \u00e8 un&#8217;esplosione di adrenalina e soddisfazione.<\/p>\n\n\n\n<p>Anche i pi\u00f9 pessimisti, quelli che fanno fatica a chiedere persino alla madre un bicchier d&#8217;acqua, dopo ore, giorni e settimane trovano sempre una soluzione.<\/p>\n\n\n\n<p>Un tempo c&#8217;erano gli amici, poi sono arrivati i forum. Oggi possiamo persino affidarci a un&#8217;intelligenza artificiale o a un agente: scriviamo la nostra idea, anche sgrammaticata, e inizia la magia.<\/p>\n\n\n\n<p>Ma oggi non voglio parlare di questo. Lasciamo stare per una volta l&#8217;aspetto romantico della programmazione, la credenza popolare che basti mettere le mani su una tastiera per fare cose incredibili, e non parliamo di come si costruisce il software o di come si arriva a un risultato\u2014il mondo \u00e8 pieno di corsi e manuali.<\/p>\n\n\n\n<p>Quello di cui vorrei parlare oggi \u00e8 uno degli aspetti pi\u00f9 complessi e meno discussi della programmazione: il coraggio di rimuovere del codice.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-la-vera-sfida-non-e-un-programma-che-funziona\">La vera sfida non \u00e8 un programma che funziona<\/h2>\n\n\n\n<p>Il risultato \u00e8 solo il primo gradino della costruzione di un software. Qualsiasi programmatore, pi\u00f9 o meno convinto dei propri mezzi, dir\u00e0 sempre di poterci riuscire. Magari mentir\u00e0 un po&#8217; sui tempi o sugli obiettivi reali, ma la sua risposta sar\u00e0 sempre: &#8220;Ce la faccio&#8221;. (Escludo da questo gruppo i pessimisti cronici che partono dicendo &#8220;\u00e8 impossibile&#8221;; quelli li scarteremo per praticit\u00e0).<\/p>\n\n\n\n<p>La vera sfida non \u00e8 quindi consegnare un programma funzionante. La vera sfida \u00e8 non farsi sopraffare dal proprio software: non perderne il controllo, non trasformare un banale servizio REST di 10 righe in un mostro mangia-disco (e parlo per esperienza personale).<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">La crescita del software \u00e8 entropia e il lavoro del programmatore esperto \u00e8 combattere questa entropia.<\/code><\/span><\/pre>\n\n\n<p>Spesso il codice viene paragonato a un asset, quando in realt\u00e0 \u00e8 una liability. Se ragioniamo pensando che il codice che scriviamo sia un patrimonio, perdiamo l&#8217;aspetto pi\u00f9 fondamentale di tutto il processo di creazione: quando scriviamo del codice stiamo creando un debito. Ogni riga di codice deve essere letta, capita, mantenuta, testata e, un giorno, aggiornata o rimossa.<\/p>\n\n\n\n<p>Meno codice c&#8217;\u00e8, minore \u00e8 la superficie di attacco per i bug e minore \u00e8 il costo di manutenzione.<\/p>\n\n\n\n<p>Questa cosa viene spesso sottovalutata, specialmente in contesti aziendali dove il focus \u00e8 sul &#8220;consegnare funzionalit\u00e0&#8221; piuttosto che sul &#8220;mantenere un codice sano e gestibile&#8221;.<\/p>\n\n\n\n<p>Chi invece lavora per aziende di prodotto illuminate dovrebbe sapere quanto \u00e8 importante anche la manutenzione, la rimozione del codice obsoleto, la gestione delle dipendenze. Perch\u00e9 un software non \u00e8 mai &#8220;finito&#8221;. \u00c8 un organismo vivente che evolve, cresce, a volte si ammala. Quando manca questa visione, manca una progettualit\u00e0 che prima o poi porter\u00e0 inevitabilmente al collasso.<\/p>\n\n\n\n<p>Ho avuto la fortuna\/sfortuna di seguire entrambe le tipologie di progetti. Alcuni dove c&#8217;era un solo obiettivo: consegnare, e che col tempo sono implosi in tonnellate di codice scoordinato; altri in cui era normale fare refactoring continuo, rimuovere codice obsoleto e mantenere una base di codice pulita e mantenibile. La differenza tra i due mondi \u00e8 abissale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-siamo-tutti-accumulatori-seriali\">Siamo tutti accumulatori seriali<\/h2>\n\n\n\n<p>Avete presente il programma &#8220;Sepolti in casa&#8221;? Persone che accumulano oggetti inutili, riempiendo le loro case fino a renderle invivibili. Il software soffre della stessa patologia.<\/p>\n\n\n\n<p>Che lo scriviamo noi o, peggio, che lo faccia un&#8217;IA, il codice inizia ad aumentare di volume. Prima poche classi, poche funzioni e pochi script, ma col tempo ci troviamo inondati non solo di codice nostro, ma anche di dipendenze esterne, librerie, moduli, plugin. Ammetto che anche io sono finito pi\u00f9 volte in questo gorgo, dato che mi impongo che ogni repository che creo sia self-contained, con tutte le dipendenze necessarie per funzionare\u2014ho visto progetti bloccarsi per la mancanza di una singola libreria.<\/p>\n\n\n\n<p>I VibeCoder che mi leggeranno forse non mi capiranno ancora, ma col tempo si accorgeranno che le IA hanno un obiettivo solo: produrre codice funzionante e, se non lo \u00e8, autoconvincersi che lo sia.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"545\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-2-nanobananpro_redux.png\" alt=\"\" class=\"wp-image-34624\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-2-nanobananpro_redux.png 1000w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-2-nanobananpro_redux-300x164.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-2-nanobananpro_redux-768x419.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>L&#8217;ultimo obiettivo di un&#8217;IA \u00e8 quello di ottimizzare il codice o ridurne la complessit\u00e0: questo aspetto non \u00e8 importante per loro ed \u00e8, ad ora, delegato completamente a noi umani. Se gli &#8220;umani&#8221; non si preoccupano del problema, men che meno se ne preoccuperanno le IA per noi.<\/p>\n\n\n\n<p>\u00c8 qui che il nostro ruolo cambia radicalmente. Le IA generative sono potenti &#8220;fabbriche di aggiunte&#8221;, capaci di scrivere migliaia di righe in pochi secondi. Questo sposta il ruolo dell&#8217;umano da &#8220;scrittore&#8221; a &#8220;editore&#8221; o &#8220;curatore&#8221;. La nostra abilit\u00e0 pi\u00f9 importante diventer\u00e0 la capacit\u00e0 di validare, semplificare e rifiutare il codice generato dall&#8217;IA, non solo di produrlo. Per questo \u00e8 importante dare una guida agli strumenti basati sul vibe: non basta dire &#8220;genera un CRM&#8221;, dobbiamo avere in testa l&#8217;architettura, le dipendenze, la manutenzione futura e di conseguenza spezzare tutto dando un boccone alla volta in pasto all&#8217;IA.<\/p>\n\n\n\n<p>Se volete rendervi conto se siete sul bordo del burrone o in caduta ormai libera, fate una prova: ispezionate la cartella <code>node_modules<\/code> di un vostro progetto, o quelle create da Maven o NuGet. In un mio progetto abbastanza semplice ho 1 MB di codice mio e 20 MB di node_modules. La sensazione che mi sia scappato di mano \u00e8 molto alta e sono appena all&#8217;inizio del progetto.<\/p>\n\n\n\n<p>Vi siete mai chiesti: &#8220;Perch\u00e9 il mio &#8216;Hello World&#8217; da tre righe richiede 200 MB di dipendenze?&#8221;? Se non l&#8217;avete mai fatto, fatelo. Scoprirete un mondo nuovo, spesso sottovalutato, che pu\u00f2 trasformare un progetto semplice in un incubo di manutenzione.<\/p>\n\n\n\n<p>Chattando con altri programmatori sento spesso frasi come questa:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Non sono passato da Vue 2 a Vue 3 perch\u00e9 ho 18 dipendenze che non posso aggiornare senza riscrivere met\u00e0 del progetto.<\/code><\/span><\/pre>\n\n\n<p>Sembra una scusa, ma \u00e8 una realt\u00e0 con cui molti sviluppatori si confrontano quotidianamente.<\/p>\n\n\n\n<p>Le dipendenze spesso vengono prese sottogamba: accumuliamo una montagna di funzionalit\u00e0 senza una vera ragione. Si aggiunge, si aggiunge, e poi si aggiunge ancora. \u00c8 facile aggiungere una funzionalit\u00e0, specialmente se la richiesta arriva da un cliente o da un product manager. Ma raramente ci si ferma a chiedere: &#8220;\u00c8 davvero necessaria questa funzionalit\u00e0?&#8221; e soprattutto non si torna mai indietro.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"545\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-3-nanobananpro_redux.png\" alt=\"\" class=\"wp-image-34625\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-3-nanobananpro_redux.png 1000w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-3-nanobananpro_redux-300x164.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-3-nanobananpro_redux-768x419.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>Questo fenomeno ha un nome: feature creep.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-feature-creep-il-nemico-silenzioso\">Feature Creep: il nemico silenzioso<\/h2>\n\n\n\n<p>La domanda che dobbiamo farci ogni giorno, quando vediamo una riga di codice ferma da anni, \u00e8: &#8220;\u00c8 davvero necessaria?&#8221;<\/p>\n\n\n\n<p>La risposta spesso \u00e8 &#8220;no&#8221;. Ma agire di fronte a quel &#8220;no&#8221; \u00e8 costoso. Spiegarlo a un cliente o a un product manager richiede una giustificazione tecnica e verbale solida, che pochi hanno il coraggio, o la forza, di sostenere.<\/p>\n\n\n\n<p>Il &#8220;feature creep&#8221; non \u00e8 solo un problema di codice, ma di prodotto. Un&#8217;interfaccia utente con troppi bottoni, opzioni e configurazioni soffre dello stesso problema. Il coraggio di &#8220;togliere&#8221; si applica anche al Product Manager che dice &#8220;no&#8221; a una nuova funzionalit\u00e0 per mantenere il prodotto focalizzato e semplice.<\/p>\n\n\n\n<p>Diffidate poi da chi vi dice:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Il problema \u00e8 il tuo fat client, non le dipendenze che usi.<\/code><\/span><\/pre>\n\n\n<p>Questo \u00e8 solo un modo per distogliere l&#8217;attenzione dal vero problema: l&#8217;accumulo incontrollato di codice e dipendenze. Non \u00e8 che un&#8217;architettura abbia un vantaggio su un&#8217;altra\u2014il problema dell&#8217;accumulo seriale rimane lo stesso.<\/p>\n\n\n\n<p>Volendo proprio essere pignoli, un fat client potrebbe avere dei vantaggi rispetto a un thin client sezionato in N servizi, dato che rappresenta un unico punto di controllo, rispetto a verificare servizi che sono, virtualmente, utilizzati da un numero incontrollato di client\u2014ma questo \u00e8 un altro discorso.<\/p>\n\n\n\n<p>Le funzionalit\u00e0 superflue e le dipendenze fuori controllo complicano tutto. Il software diventa fragile, lento, difficile da mantenere. Il debito tecnico cresce in modo invisibile, finch\u00e9 non diventa impossibile ignorarlo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-l-incubo-della-manutenzione\">L&#8217;incubo della manutenzione<\/h2>\n\n\n\n<p>Finch\u00e9 siamo &#8220;con la testa sul progetto&#8221; e lavoriamo quotidianamente a feature e refactoring, abbiamo qualche probabilit\u00e0 aggiuntiva di riuscire a gestire il caos. Ma inevitabilmente, se quel progetto viene messo da parte e dopo mesi viene ripreso, o se il team varia molto, l&#8217;inevitabile deriva \u00e8 il caos e l&#8217;aumento del debito tecnico.<\/p>\n\n\n\n<p>Pi\u00f9 alto \u00e8 il numero di dipendenze importate, maggiore \u00e8 il problema dell&#8217;obsolescenza trasversale.<\/p>\n\n\n\n<p>Ma con &#8220;dipendenze&#8221; non pensiamo solo alla libreria X o Y che usiamo per fare il parsing di un file JSON. Pensiamo a tutto l&#8217;ecosistema: versioni di linguaggio, librerie, framework, toolchain, sistemi di build, ambienti di esecuzione e via dicendo.<\/p>\n\n\n\n<p>A volte si finisce in un cul-de-sac tecnico: l&#8217;aggiornamento che ci serve va in conflitto con un&#8217;altra libreria fondamentale, che non \u00e8 ancora stata aggiornata o il cui manutentore \u00e8 sparito nel nulla. Poco importa se \u00e8 open source\u2014anche questo \u00e8 un concetto sopravvalutato nello sviluppo software.<\/p>\n\n\n\n<p>A quel punto le scelte sono poche: riscrivere parti del software, accettare il buco di sicurezza, o lasciare tutto com&#8217;\u00e8, sperando che non crolli.<\/p>\n\n\n\n<p>\u00c8 facile dire &#8220;il mio software \u00e8 perfetto&#8221;. Pu\u00f2 essere vero per le righe che hai scritto tu\u2014anche se spesso sono solo bias\u2014ma non lo \u00e8 per l&#8217;ecosistema di componenti esterne su cui poggia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-perche-non-togliamo\">Perch\u00e9 non togliamo?<\/h2>\n\n\n\n<p>Ma perch\u00e9 non togliamo? Perch\u00e9 abbiamo paura. Paura di rompere qualcosa (&#8220;E se questo codice serviva a quel caso X che non ho testato?&#8221;).<\/p>\n\n\n\n<p>Per togliere con coraggio servono due cose fondamentali: sicurezza tecnica e psicologica, ma soprattutto la volont\u00e0 di farlo.<\/p>\n\n\n\n<p>Serve anche una cultura aziendale che premi la sottrazione.<\/p>\n\n\n\n<p>In molte aziende, la produttivit\u00e0 \u00e8 misurata in &#8220;funzionalit\u00e0 consegnate&#8221; o &#8220;ticket chiusi&#8221;. Ma quante volte un programmatore viene lodato per aver rimosso 1000 righe di codice obsoleto? Una &#8220;Pull Request&#8221; con -1000 righe dovrebbe essere celebrata. Serve una cultura che veda il refactoring e la pulizia non come &#8220;lavori di casa&#8221;, ma come parte integrante e nobile del processo di sviluppo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-il-coraggio-di-togliere\">Il coraggio di togliere<\/h2>\n\n\n\n<p>I veri programmatori sono quelli capaci di ridurre.<\/p>\n\n\n\n<p>Ken Thompson, co-creatore di Unix e del linguaggio C, disse una volta:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Uno dei miei giorni pi\u00f9 produttivi \u00e8 stato eliminare 1000 righe di codice.<\/code><\/span><\/pre>\n\n\n<p>Non so quanto questa affermazione sia vera, ma il concetto \u00e8 potente. La vera maestria non sta nell&#8217;aggiungere, ma nel saper togliere senza perdere funzionalit\u00e0.<\/p>\n\n\n\n<p>C&#8217;\u00e8 anche una frase famosa di Tony Hoare, l&#8217;inventore di Quicksort:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Ci sono due modi per progettare software: uno \u00e8 renderlo cos\u00ec semplice che non ci siano palesemente difetti, l'altro \u00e8 renderlo cos\u00ec complicato che non ci siano palesi difetti. Il primo metodo \u00e8 molto pi\u00f9 difficile.<\/code><\/span><\/pre>\n\n\n<p>Come dargli torto? Del resto, la sua laurea in lettere, precedente alla carriera informatica, gli dava forse una marcia in pi\u00f9 nel comprendere l&#8217;eleganza della semplicit\u00e0.<\/p>\n\n\n\n<p>Ma visto che non esistono rose senza spine, oltre a questa perla, Hoare ci ha lasciato anche una delle pi\u00f9 grandi tragedie dell&#8217;informatica moderna: il concetto di &#8220;NULL POINTER&#8221;. Se vi ha mai rovinato una giornata, ora sapete chi ringraziare.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-only-the-brave-remove-stuff\">Only the brave remove stuff<\/h2>\n\n\n\n<p>Ma torniamo a noi. Come si fa, concretamente, a togliere?<\/p>\n\n\n\n<p>Il primo passo \u00e8 rimuovere il codice inutile. Sembra facile, ma \u00e8 qui che scattano le resistenze, sia strutturali che umane. Per vincere questa battaglia servono armi adeguate:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test automatici robusti: una suite di test che dia la fiducia che, se si rimuove qualcosa di essenziale, un test fallir\u00e0, proteggendoci da regressioni inaspettate.<\/li>\n\n\n\n<li>Sicurezza psicologica: un ambiente di lavoro dove &#8220;rompere&#8221; qualcosa in un ambiente di test o staging non \u00e8 un crimine, ma parte del processo di apprendimento e pulizia.<\/li>\n\n\n\n<li>Verifica continua dell&#8217;utilizzo: quante feature sono state implementate su richiesta di un cliente che oggi non \u00e8 pi\u00f9 tale? Quante procedure non vengono usate da nessuno? \u00c8 fondamentale porsi queste domande e agire di conseguenza.<\/li>\n\n\n\n<li>Affrontare la paura del &#8220;e se un giorno servisse?&#8221;: questa \u00e8 la scusa pi\u00f9 comune per non cancellare. Spoiler: quel giorno non arriver\u00e0 quasi mai. E se anche arrivasse, le esigenze saranno cambiate a tal punto che riscrivere il codice da zero sar\u00e0 comunque l&#8217;opzione migliore, piuttosto che adattare una soluzione vecchia e dimenticata. Il codice scritto per una &#8220;futura implementazione&#8221; \u00e8 un&#8217;ipoteca sul futuro che raramente viene riscattata.<\/li>\n<\/ul>\n\n\n\n<p>Il passo successivo \u00e8 semplificare le logiche complesse e ridurre al minimo le dipendenze. Esistono casi virtuosi di software pensati per avere zero o pochissime dipendenze, proprio per facilitare diffusione e manutenzione.<\/p>\n\n\n\n<p>Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro. Ogni riga che aggiungiamo \u00e8 una riga che dovremo mantenere, testare e su cui dovremo fare debug.<\/p>\n\n\n\n<p>Non \u00e8 un dramma cancellare. Con i sistemi di versionamento come Git, possiamo sempre recuperare ci\u00f2 che \u00e8 stato rimosso. Ma la verit\u00e0 \u00e8 che, nove volte su dieci, quel codice era solo zavorra.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"545\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-4-nanobananpro_redux.png\" alt=\"\" class=\"wp-image-34626\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-4-nanobananpro_redux.png 1000w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-4-nanobananpro_redux-300x164.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-4-nanobananpro_redux-768x419.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-la-vera-maestria-e-la-semplicita\">La vera maestria \u00e8 la semplicit\u00e0<\/h2>\n\n\n\n<p>\u00c8 facile aggiungere. Tutti sono bravi ad aggiungere. Ma togliere? \u00c8 l\u00ec che si gioca la vera partita.<\/p>\n\n\n\n<p>La maestria di uno sviluppatore senior si misura non tanto da quanto codice sa scrivere, ma da quanto codice sa eliminare preservando le funzionalit\u00e0 essenziali.<\/p>\n\n\n\n<p>Ci\u00f2 che ci frena \u00e8 la paura del &#8220;non lo tolgo perch\u00e9 forse servir\u00e0 domani&#8221;. Ma quel &#8220;domani&#8221; non arriva quasi mai. Come afferma il principio YAGNI (You Aren&#8217;t Gonna Need It): se non ti serve ora, non implementarlo.<\/p>\n\n\n\n<p>Il vero valore non sta nell&#8217;aggiungere, ma nel distillare l&#8217;essenziale, eliminare il rumore e costruire qualcosa che funzioni davvero. Questo \u00e8 il coraggio di togliere. Ed \u00e8 questo che differenzia un programmatore illuminato da qualcuno che non vede oltre il proprio fine settimana.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scrivere software \u00e8 un atto che, in apparenza, chiunque pu\u00f2 compiere. Ci si siede, si accende un computer, si apre un IDE, un editor, VI se hai il cuore puro o qualsiasi altra cosa (s\u00ec, vale anche Notepad) e si inizia a digitare. Non servono nemmeno specifiche dettagliate: a cosa servono quando hai tutto in&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\">Read more<\/a><\/p>\n","protected":false},"author":246,"featured_media":34623,"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":[10283],"tags":[11625],"collections":[],"class_list":{"0":"post-34614","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-dev-life-it","8":"tag-clean-code","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>Un grande programmatore toglie, non aggiunge - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro.\" \/>\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\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Un grande programmatore toglie, non aggiunge\" \/>\n<meta property=\"og:description\" content=\"Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\" \/>\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=\"2025-12-01T12:46:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-01T12:46:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"545\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\"},\"author\":{\"name\":\"Matteo Baccan\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1\"},\"headline\":\"Un grande programmatore toglie, non aggiunge\",\"datePublished\":\"2025-12-01T12:46:05+00:00\",\"dateModified\":\"2025-12-01T12:46:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\"},\"wordCount\":2186,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png\",\"keywords\":[\"clean code\"],\"articleSection\":[\"Dev Life\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\",\"name\":\"Un grande programmatore toglie, non aggiunge - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png\",\"datePublished\":\"2025-12-01T12:46:05+00:00\",\"dateModified\":\"2025-12-01T12:46:07+00:00\",\"description\":\"Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png\",\"width\":1000,\"height\":545,\"caption\":\"a great programmer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dev Life\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Un grande programmatore toglie, non aggiunge\"}]},{\"@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":"Un grande programmatore toglie, non aggiunge - Codemotion Magazine","description":"Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro.","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\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/","og_locale":"en_US","og_type":"article","og_title":"Un grande programmatore toglie, non aggiunge","og_description":"Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro.","og_url":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-12-01T12:46:05+00:00","article_modified_time":"2025-12-01T12:46:07+00:00","og_image":[{"width":1000,"height":545,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png","type":"image\/png"}],"author":"Matteo Baccan","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Matteo Baccan","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/"},"author":{"name":"Matteo Baccan","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/58743a83113a6ac22788ab19bea03ad1"},"headline":"Un grande programmatore toglie, non aggiunge","datePublished":"2025-12-01T12:46:05+00:00","dateModified":"2025-12-01T12:46:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/"},"wordCount":2186,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png","keywords":["clean code"],"articleSection":["Dev Life"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/","url":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/","name":"Un grande programmatore toglie, non aggiunge - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png","datePublished":"2025-12-01T12:46:05+00:00","dateModified":"2025-12-01T12:46:07+00:00","description":"Ogni progetto software che si rispetti dovrebbe dedicare tempo a eliminare e ripulire, come un rituale sacro. Ogni riga di codice \u00e8 un peso, una responsabilit\u00e0 che ci portiamo dietro.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png","width":1000,"height":545,"caption":"a great programmer"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/un-grande-programmatore-toglie-non-aggiunge\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Dev Life","item":"https:\/\/www.codemotion.com\/magazine\/it\/dev-life-it\/"},{"@type":"ListItem","position":3,"name":"Un grande programmatore toglie, non aggiunge"}]},{"@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\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-600x545.png","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\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png",1000,545,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-300x164.png",300,164,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-768x419.png",768,419,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png",1000,545,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png",1000,545,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux.png",1000,545,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-896x504.png",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/11\/17-IlCoraggioDiTogliere-1-nanobananpro_redux-600x545.png",600,545,true]},"uagb_author_info":{"display_name":"Matteo Baccan","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/matteo-baccan\/"},"uagb_comment_info":0,"uagb_excerpt":"Scrivere software \u00e8 un atto che, in apparenza, chiunque pu\u00f2 compiere. Ci si siede, si accende un computer, si apre un IDE, un editor, VI se hai il cuore puro o qualsiasi altra cosa (s\u00ec, vale anche Notepad) e si inizia a digitare. Non servono nemmeno specifiche dettagliate: a cosa servono quando hai tutto in&#8230;&hellip;","lang":"it","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34614","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=34614"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34614\/revisions"}],"predecessor-version":[{"id":34706,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/34614\/revisions\/34706"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/34623"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=34614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=34614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=34614"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=34614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}