Hvad er forskellen mellem genanvendelse af kode og kodeduplicering?


Svar 1:

Når vi flytter til softwarearkitektur, der er bygget på flere lagre, bliver flere mikroservices osv. Kodeduplikationer et voksende problem.

Lad os sige, at du har et lille stykke kode kaldet 'bruger-status', der kontrollerer, om en bruger er logget ind.

Du skal bruge denne funktion flere steder i dit brugersystem (sandsynligvis 4-5 mikroservices mindst). Dette skaber DUPLIKATIONER.

Dupliseret kode er meget dårlig, hovedsageligt fordi det betyder, at meget bug / opdatering / fix skal udføres flere steder (hvilket også har tendens til at ødelægge ting). Se mere her.

For at undgå det, bliver du nødt til at gøre disse små kodestykker genanvendelige. Du kan gøre det ved at eksportere dem fra din kode og end bruge dem på tværs af forskellige lagre.

En måde at gøre det på er at bruge mikropakker. Dette er en dårlig idé. Det vil tage en masse tid, kræfter og tilføje mange kompleksiteter og vedligeholdelsesproblemer.

En bedre løsning ville være at omdanne dem til Bit-komponenter. Bit er et OSS-projekt, der giver dig mulighed for nemt at oprette og genbruge små komponenter med meget lidt overhead. Du kan være vært for dem på din lokale maskine eller oprette forbindelse til community-hub for bitsrc gratis. Her er et eksempel på nogle ofte duplikerede hjælpefunktioner, der er foretaget genbrug.

Held og lykke!


Svar 2:

Genbrug af kode er at skrive en metode / funktion, der udfører ofte anvendt kode. Denne metode kan bruges så mange gange, når det kræves, når som helst og hvor som helst. Et eksempel kan findes i tredjepartsbiblioteker.

Kodeduplikation skriver den samme kode, der udfører næsten den samme funktion, når det er nødvendigt. Dette frarådes generelt, da vedligeholdelse af projektet vil være vanskeligt, det vil sige medmindre du holder styr på alle steder, hvor du brugte den gentagne kode.


Svar 3:

Efter min erfaring er genbrug, når du har eksisterende funktionalitet i program A, som du begynder at bruge i program B.

Duplicering er, når du bruger den samme eller næsten identiske funktionalitet flere gange i det samme program og skriver det ud hver gang. For eksempel åbner og læser du en fil og bruger hver gang den samme kode til at gøre dette. I stedet skal du skrive en generisk 'fil åben og læse' -funktion, der håndterer denne og ringe fra dine andre funktioner, hvilket reducerer kodebasen.