<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Refactoring &#8211; Associazione ROOT APS</title>
	<atom:link href="https://www.rootclub.it/tag/refactoring/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.rootclub.it</link>
	<description>APS ROOT il circolo più nerd nel raggio di 12 parsec.</description>
	<lastBuildDate>Mon, 22 Jun 2026 06:44:16 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.10</generator>

<image>
	<url>https://www.rootclub.it/wp-content/uploads/2018/10/cropped-logo14c-1-32x32.png</url>
	<title>Refactoring &#8211; Associazione ROOT APS</title>
	<link>https://www.rootclub.it</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">153411733</site>	<item>
		<title>Perché copiare e incollare potrebbe salvarti la vita (e il fegato)</title>
		<link>https://www.rootclub.it/perche-copiare-e-incollare-potrebbe-salvarti-la-vita-e-il-fegato/</link>
					<comments>https://www.rootclub.it/perche-copiare-e-incollare-potrebbe-salvarti-la-vita-e-il-fegato/#respond</comments>
		
		<dc:creator><![CDATA[Lamberto Tedaldi]]></dc:creator>
		<pubDate>Mon, 22 Jun 2026 06:44:16 +0000</pubDate>
				<category><![CDATA[webnews]]></category>
		<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[Programming Tips]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://www.rootclub.it/perche-copiare-e-incollare-potrebbe-salvarti-la-vita-e-il-fegato/</guid>

					<description><![CDATA[L'astrazione errata è il killer silenzioso dei progetti software. Scopriamo perché tornare indietro e duplicare il codice è spesso l'unica mossa da pro per evitare il caos.]]></description>
										<content:encoded><![CDATA[<figure class="aing-post-image wp-block-image size-full alignwide" style="margin-bottom: 1.5em;width: 100%"><a href="https://www.rootclub.it/wp-content/uploads/2026/06/Perche-copiare-e-incollare-potrebbe-salvarti-la-vita-e-il-fegato-1782110651.png"><img decoding="async" src="https://www.rootclub.it/wp-content/uploads/2026/06/Perche-copiare-e-incollare-potrebbe-salvarti-la-vita-e-il-fegato-1782110651.png" alt="Perché copiare e incollare potrebbe salvarti la vita (e il fegato)" style="width: 100% !important;max-width: 100% !important;height: auto !important" /></a></figure>
<p></p>
<p>Quante volte vi è capitato di trovarvi a fissare uno snippet di codice che sembra un puzzle di Escher, dove ogni riga di logica è legata a un parametro assurdo che serve solo a gestire un&#8217;eccezione scoperta tre mesi fa?</p>
<p>Se la risposta è &#8216;troppo spesso&#8217;, allora siete nel club giusto. Oggi parliamo di un concetto che farebbe inorridire qualsiasi guru del &#8216;Clean Code&#8217; scritto da un manager che non ha mai visto un terminale: preferire la duplicazione rispetto alla &#8216;wrong abstraction&#8217;.</p>
<p>Il pattern è tragico, quasi cinematografico, tipo un film horror dove il protagonista ignora i segnali d&#8217;allarme. Tutto inizia con un programmatore (chiamiamolo Dev A) che vede due pezzi di codice simili e, con l&#8217;entusiasmo di chi ha appena scoperto l&#8217;open source, decide di estrarre una funzione. &#8216;Ecco fatto, codice pulito, elegante, DRY (Don&#8217;t Repeat Yourself)!&#8217;, pensa Dev A mentre va a prendersi un caffè.</p>
<p>Poi passa il tempo. Arriva un nuovo requisito. Il programmatore B deve usare quella funzione, ma il nuovo caso d&#8217;uso è &#8216;quasi&#8217; identico, ma non proprio. E allora cosa fa? Aggiunge un parametro. E un altro `if`. E una variabile booleana che controlla un flag che a sua volta dipende da una configurazione globale. In breve: trasforma un&#8217;astrazione elegante in un mostro di condizini incatenate che nessuno riesce più a debuggare senza piangere.</p>
<p>Qui scatta la trappola del &#8216;sunk cost fallacy&#8217;, ovvero la tendenza a non voler buttare via il lavoro già fatto perché &#8216;è troppo complesso per essere sbagliato&#8217;. È lo stesso ragionamento che usiamo quando continuiamo a guardare un film pessimo solo perché abbiamo già pagato il biglietto.</p>
<p>La soluzione di Sandi Metz, che è pura genialità tattica, è brutale: tornate indietro. Se l&#8217;astrazione è diventata un incubo di parametri e switch, smontatela. Inlineate il codice, riportatelo dove serve, duplicate la logica e cancellate le parti inutili. Non è una ritirata, è una manovra di riposizionamento strategico.</p>
<p>Sì, avrete codice duplicato. Sì, i vostri colleghi più puristi potrebbero guardarvi male. Ma avrete un codice che è facile da leggere, facile da modificare e, soprattutto, non esploderà alla prossima pull request. A volte, per andare avanti, l&#8217;unica strada è fare un passo indietro e accettare un po&#8217; di &#8216;wasted effort&#8217; pur di non finire intrappolati in un labirinto di astrazioni fallimentari.</p>
<p>E per chi vuole approfondire il design senza troppi drammi, è uscita la seconda edizione di &#8217;99 Bottles of OOP&#8217;, disponibile ora in vari linguaggi tra cui JS, PHP e Ruby. Un piccolo consiglio per chi vuole smettere di creare mostri e iniziare a scrivere codice che non richieda un esorcista.</p>
<p class="aing-source"><em>Source: <a href="https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction" target="_blank" rel="noopener noreferrer">Prefer duplication over the wrong abstraction (2016)</a></em></p>
<p><!-- AI News Generator | Content: RSS Feed | Feed: 6217 chars | Final: 6217 chars --></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.rootclub.it/perche-copiare-e-incollare-potrebbe-salvarti-la-vita-e-il-fegato/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">12461</post-id>	</item>
	</channel>
</rss>
