Il riutilizzo del codice è un metodo per progettare computer e altri sistemi, riutilizzando codice già esistente. Un sistema dovrebbe essere parzialmente o completamente composto da parti di componenti scritti in precedenza e/o da parti di un altro sistema. Il riutilizzo del codice è il metodo principale utilizzato per ridurre i costi di manodopera nello sviluppo di sistemi software complessi.
I discorsi sul "riutilizzo del codice" sono molto popolari tra i programmatori e per lo più ne parlano in modo positivo. A loro piace pensare che i progetti che hanno ideato siano "universali" e "adatti ad altri progetti". Ma è vero?

Riutilizzo del codice: ne vale la pena?

Il riutilizzo del codice è davvero utile se si sta creando qualcosa che si intende utilizzare come libreria per più progetti. Questo metodo consente di risparmiare tempo e risorse e di ridurre le riduzioni utilizzando risorse già create. L'idea chiave del riutilizzo del codice è che parti di un programma per computer scritto in un determinato momento possono essere utilizzate nella costruzione di altri programmi scritti in un momento successivo.
Alcuni codici cosiddetti "di riutilizzo" consistono semplicemente nel copiare alcuni o tutti i codici da un programma esistente a uno nuovo. Anche se le organizzazioni possono utilizzare questo approccio, possono trovarsi ad affrontare molti degli stessi problemi associati ai codici di licenza causati dall'accorciamento e dalla programmazione.

Tipi di riutilizzo del codice

Molti ricercatori hanno lavorato per rendere più semplice e veloce il metodo di riutilizzo del codice. Il riutilizzo del codice può essere ulteriormente classificato:
? Riutilizzo interno: l'organizzazione riutilizza i propri componenti. Questa può essere una buona decisione aziendale, in quanto l'organizzazione può voler controllare un componente critico per il progetto.
? Riutilizzo esterno: l'organizzazione può concedere in licenza un componente di terze parti. La licenza di un componente di terze parti costa di solito l'1-20% del costo di sviluppo all'interno dell'azienda. Il team deve anche considerare il tempo necessario per trovare, studiare e integrare il componente.
Per esempio, uno dei più grandi mercati di template è https://themeforest.net/. Qui le persone possono acquistare temi, apportare modifiche al testo e alle immagini e pubblicare il sito come se lo avessero costruito. Anche se non è un approccio sbagliato se siete una piccola impresa e avete bisogno di una soluzione rapida. La domanda principale è: e se si vuole costruire un sito simile a Facebook, si può trovare un modello e riutilizzarlo? Anche se è possibile, la risposta è no. Perché è difficile adattarsi alla base di codice di qualcun altro e anche molto difficile da aggiornare, e probabilmente è più facile iniziare un nuovo progetto da zero.

Vantaggi e svantaggi del metodo di riutilizzo del codice

Consideriamo i vantaggi e gli svantaggi del riutilizzo del codice. Il nostro obiettivo è ridurre i costi, aumentare l'affidabilità e migliorare la coerenza.
? Costo - il costo di utilizzo del software esistente è solitamente inferiore al costo di sviluppo di un prodotto equivalente. Il costo dell'acquisto di prodotti software è inferiore al costo dell'utilizzo di progetti open-source. Anche se modificare il codice esistente è più difficile che scriverne uno nuovo).
? Affidabilità - Quando si riscrive il codice, è facile trascurare due situazioni. La prima è un codice funzionale aggiunto dall'autore originale. La seconda è un nuovo codice aggiunto al codice sorgente dopo aver rilevato un difetto nel test. L'uso di codice collaudato è di solito più affidabile del codice nuovo.
? La coerenza - l'interfaccia esterna fornita dal sistema deve essere coerente: scrivere un nuovo codice che possa essere coerente con le altre parti del funzionamento del sistema.
Dobbiamo anche pensare alle dimensioni del progetto. Ad esempio, di seguito sono riportati i vantaggi e gli svantaggi del riutilizzo del codice per un sito web di piccole dimensioni.
Vantaggi:
? Rapidità di commercializzazione.
? Prezzo economico (di solito si tratta di una piccola tassa o di 10-30 USD al mese).
? Spesso include aggiornamenti.
Svantaggi:
? Il vostro prodotto finale non è unico (sembra una soluzione economica di un template).
? Spesso non sono molto personalizzabili.
? È comunque necessario assumere un programmatore o un programmatore freelance per realizzare il progetto.

Nel caso di applicazioni complesse e di grandi dimensioni, la situazione del riutilizzo del codice è diversa.

Vantaggi:
? Se una soluzione 100% corrisponde alle vostre esigenze e dispone di un'assistenza e di prezzi qualificati, ha senso utilizzarla.
Svantaggi:
? Il costo è comunque significativo (di solito un piano mensile a pagamento si paga per sempre).
? Avrete bisogno di un team interno per gestire le operazioni e lo sviluppo/miglioramento.
? È molto difficile lavorare con il codice base di qualcun altro, a volte addirittura impossibile perché può essere molto disordinato.

Rischi del riutilizzo del codice

Il riutilizzo del codice comporta alcuni rischi. Ci sono situazioni in cui può essere semplicemente impossibile. Un problema nel giustificare gli investimenti è che alcuni manager non concedono il tempo di padroneggiare il vecchio codice. Un altro rischio potenziale è la mancanza di comprensione dell'ambito e dei componenti del codice. Un altro rischio potenziale è l'incapacità di eseguire un'analisi.
Il desiderio di comprendere l'intero codice può essere un'impresa ardua, quindi è importante dividere il codice in componenti ed evidenziare le parti chiave da riutilizzare. Prendete il tempo necessario per identificare i componenti del codice che dovrebbero essere riutilizzati. A volte può essere necessario documentare completamente il codice. Ad esempio, in base ai requisiti normativi, ma i tentativi di riutilizzare e documentare l'intero codice di solito non sono efficaci. L'obiettivo principale dovrebbe essere quello di identificare i frammenti di codice da documentare e riutilizzare.

Riutilizzo del codice: quattro aspetti chiave del successo

I principali aspetti chiave per un riutilizzo efficace del codice sono:
1. Comprendere l'architettura del codice originale per identificare componenti, confini e interfacce.
2. Determinazione del potenziale di riutilizzo.
3. Valutazione del tempo impiegato per il riutilizzo rispetto alla ricreazione dei componenti.
4. Decidere su ogni componente: cosa riutilizzare e come (invariato, con modifiche minori o significative).

Conclusione

La cosa più importante è che è molto facile pensare "hmmm questa soluzione corrisponde all'80% di ciò che mi serve". Sicuramente è più conveniente aggiungere altre funzioni. Tuttavia, non vi consigliamo di farlo. È più difficile adattare la struttura e la soluzione esistente, cambiare il design e fare tutto con il codice di qualcun altro.
Il riutilizzo del codice è possibile finché ci si accontenta di un'imitazione o di una soluzione completamente uguale. Nel momento in cui si personalizza il codice esistente, diventa difficile mantenere la struttura nel modo corretto. Il riutilizzo del codice non è un'opzione possibile se si vogliono ottenere prestazioni eccellenti. Sebbene lo sviluppo personalizzato sia costoso, offre qualità se si scelgono gli sviluppatori giusti.