Come evitare la duplicazione del codice in due progetti simili?

2

Abbiamo un sito Web con molte funzionalità e ne avviamo ora un altro, che dovrebbe avere un sacco di codice comune con il primo.

Quale sarebbe l'approccio migliore per evitare la duplicazione del codice?

Possibili soluzioni che consideriamo:

  • metti questi progetti all'interno di una directory padre (ma in repository separati di git), e usa solo i componenti del primo progetto dal secondo
  • sposta le funzionalità comuni in repository separati (ciò richiederebbe per noi la riscrittura di un sacco di codice)
  • copia semplicemente il codice da un progetto all'altro
  • fai tutto all'interno di una directory e controlla Host http-header per separare la logica per ogni sito
  • (forse ci sono altre varianti)

Quali sono le migliori pratiche per questa situazione?

    
posta Oleg 14.12.2018 - 11:03
fonte

2 risposte

5

La pratica migliore è inserire il codice comune in una libreria, compilarlo e distribuire il binario in entrambi i progetti tramite un gestore di pacchetti.

Tuttavia, se il primo sito Web è a fine vita, probabilmente non lo si desidera modificare. Basta copiare il codice nelle librerie in modo da poterle riutilizzare correttamente la prossima volta

    
risposta data 14.12.2018 - 17:07
fonte
1

Innanzitutto, la duplicazione del codice non è così grave come la maggior parte di noi pensa. Ho visto più danni causati creando astrazioni e framework che consentono il riutilizzo piuttosto che dalla duplicazione reale.

Non tutto il codice è uguale e vorrei rivedere il codice e concentrarmi solo sulle parti che hanno potenziale per problemi di sicurezza e problemi di sicurezza. Qualunque altra cosa che sia un'impalcatura o che sia pertinentemente banale, me ne andrei così com'è.

La lingua e la pipeline di build che usi informeranno se è meglio creare una libreria o un repository condiviso.

Se si utilizza la libreria, tenere presente che ci sarà una deriva della versione - non tutti i progetti useranno sempre la stessa versione. Questo può o non può creare host di nuovi problemi, dipende dal tipo di software che abbiamo.

    
risposta data 18.12.2018 - 23:10
fonte

Leggi altre domande sui tag