Duplicazione
La parola latina duplicazione è entrata nella nostra lingua come duplicazione. È l'atto e il risultato di duplicare: moltiplicare qualcosa per due o farla raddoppiare.
Per esempio: "Per ridurre al minimo la congestione del traffico nel centro città, l'amministrazione comunale ha annunciato la duplicazione della carreggiata di Centennial Avenue", "Devo duplicare il DVD il più presto possibile: non voglio perdere quel materiale per nessuna ragione", "Secondo diversi economisti, il raddoppio della tariffa dell'elettricità renderà più cari i prezzi di tutti i beni prodotti nel paese".
La duplicazione del DNA è il processo attraverso il quale l'acido desossiribonucleico viene duplicato, sintetizzando una copia esatta. Questo significa che, da una molecola di DNA, si generano due repliche.
La duplicazione è anche chiamata mutazione genetica che si verifica quando uno o più nucleotidi sono ripetuti nella sequenza del DNA. In altre parole, la duplicazione cromosomica è un fenomeno che comporta la ripetizione di una parte di un cromosoma.
Questa mutazione avviene nel contesto della duplicazione del DNA. Un overcrossing errato o qualche riarrangiamento strutturale può causare il disturbo. La duplicazione cromosomica non è visibile a occhio nudo: richiede studi molecolari e citogenetici.
Nel campo della programmazione informatica, infine, la duplicazione del codice si verifica quando la stessa sequenza di codice sorgente appare più di una volta nello stesso programma. Una tale sequenza è chiamata clone e può causare una serie di inconvenienti, come l'aumento delle dimensioni del file.
Gli sviluppatori di programmi considerano la duplicazione una situazione "indesiderabile", poiché porta a complicazioni inutili e va contro il concetto di ottimizzazione. Vale la pena ricordare che due porzioni di un file di codice, o il codice di un intero programma, possono essere molto simili senza essere considerati cloni: in questi casi, si parla di una "somiglianza casuale".
Perché due sequenze di codice rientrino nella categoria della duplicazione, almeno una delle seguenti condizioni deve essere soddisfatta:
* che sono identici al cento per cento, senza eccezioni;
* che sono identici una volta ignorati i commenti e gli spazi bianchi;
* che tutti i loro token (componenti lessicali che possiedono un significato coerente in un dato linguaggio di programmazione) sono identici;
* che il punto precedente è soddisfatto, anche se con alcune variazioni occasionali;
* che sono identici nella funzionalità.
Siccome la duplicazione del codice è considerata così negativa dai programmatori, è difficile capire perché qualcuno dovrebbe impegnarsi in questa pratica. Di solito è associato all'azione del "copia e incolla", e si verifica in progetti molto sciatti, di solito in prototipi, dove l'attenzione non è sull'ottimizzazione ma sul raggiungimento di risultati nel minor tempo possibile.
Gli esperti di programmazione criticano coloro che fanno questo errore come pigri, poiché lo stile di sviluppo consigliato si concentra sul riutilizzo del codice. È importante notare che il codice duplicato rende più difficile la comprensione da parte di terzi, ma anche del creatore stesso.
Guardiamo un esempio pratico di come evitare la duplicazione del codice. Supponiamo che stiamo sviluppando un elaboratore di testi e vogliamo includere uno strumento per copiare la formattazione di una stringa di testo in un'altra (ogni stringa può essere composta da uno o più caratteri). Generalmente, i programmi di questo tipo permettono di farlo in due modi: copiando la formattazione una volta sola, o mantenendo il pulsante associato attivo per fare tutte le copie che si desidera fino a quando non lo si disattiva definitivamente.
Nel codice, idealmente si dovrebbe creare una funzione in cui vengono eseguiti tutti i passi per copiare la formattazione di una stringa, e poi "chiamarla" da ogni parte del file in cui si ha bisogno, sia per copie singole che multiple. Sarebbe uno spreco di spazio duplicare questa porzione di codice in ciascuna di queste sezioni.