Farene ved tredjeparts kodeavhengighet

Hvis du abonnerer på en tjeneste fra en lenke på denne siden, kan Reeves and Sons Limited tjene en provisjon. Se vår etisk uttalelse.

Det er noen få gode ting med måten programvare fungerer på Internett. Til å begynne med er det et enormt uoffisielt nettverk av millioner av mennesker som bidrar til et enormt arkiv med kodefragmenter som hjelper til med å drive mange flere millioner applikasjoner.

Hver gang du ser en liten lenke nederst på en webside som sier “Powered by So-And-So”, er du vitne til denne samarbeidseffekten i aksjon.

Og selvfølgelig er hovedårsaken til at folk liker denne tredjepartsdelingen og samarbeidet, at det kan spare deg for mange timer i utviklingstid, fordi du ikke finner på noe som allerede eksisterer. Men selv med disse store fordelene med tredjeparts kodedelingssystemet, er det mange grunner til at du kanskje vil unngå å bruke disse kodefragmentene, som vi er i ferd med å se ...

1. Potensielle sikkerhetsrisikoer

Fordi nesten all kode som driver noe på nettet er åpen kildekode, er det en god innsats at hvis det er skadelig nyttelast i en gitt applikasjon, vil den raskt bli oppdaget av utviklermiljøet og raskt korrigert.

Men mange av disse kodefragmentene lastes ned hundrevis eller til og med tusenvis av ganger per dag, og ikke alle administrative team gjør en god jobb med å opprettholde et sikkert kodedelingssystem.

Jo større og mer komplisert en applikasjon er, jo lettere er det å smitte den ved å legge til noen få linjer med kode på et eller annet dunkelt sted. Nesten ingen tar seg tid til å granske hver kodelinje i et program, fordi de vanligvis antar at koden kan stole på.

En dyktig programmerer kan vanligvis gjøre en god jobb med å tilsløre kodens ondsinnede natur, og bare en annen dyktig programmerer vil finne ut hva formålet er ... hvis det ondsinnede kodefragmentet oppdages.

2. Du eier det ikke

Dette er faktisk en kombinasjon av problemer. Den første er at du kan være underlagt forskjellige lisensvilkår. Når du har flere kodefragmenter som brukes på en enkelt webside eller applikasjon, kan du faktisk være underlagt flere forskjellige lisensvilkår og vilkår, og noen av disse kan faktisk være i konflikt med hverandre.

Selvfølgelig plager nesten ingen å lese disse kjedelige listene med vilkår og betingelser, men det kan potensielt være en feil. Spesielt ville det være en feil hvis en eller annen betingelse i lisensavtalen førte til at du bryter noen lover i hjemlandet eller i landet der serveren din befinner seg.

Det andre problemet er at hvis du ikke eier kode, har du ingen kontroll over den, og du trenger ikke nødvendigvis forstå alt den gjør eller hvordan den fungerer. Det betyr at hvis noen gjør noen endringer i koden, kan du sitte fast med den endringen, spesielt hvis du trofast installerer oppdateringer, oppdateringer, oppgraderinger og nye versjoner så snart de er utgitt som stabile, eller hvis du er helt avhengig av innholdslevering nettverk for tredjepartsløsninger.

3. Du får ofte mye mer enn du trenger

Tredjepartskode fungerer vanligvis for å gjøre jobben du ønsker, men noen ganger inneholder den alle slags ekstra funksjoner du ikke trenger og sannsynligvis aldri vil bruke. I noen tilfeller kan du ikke fjerne eller fjerne ekstrafunksjonene. Du må kanskje også gå på akkord. Funksjonen kan gjøre noe veldig nær det du har tenkt, men ikke akkurat det du har tenkt. Du handler vakkert for å ha mindre arbeid å gjøre, og det er ikke alltid en god handel.

4. Flere nivåer av tredjepartsavhengighet kan føre til reelle problemer

Mange open source-prosjekter bruker de samme tredjepartskodefragmentene på forskjellige måter for å produsere programvaren sin. Det meste av tiden er ikke en dårlig ting, men det kan føre til problemer. I disse dager installerer ikke mange utviklere engang fragmentene de bruker, men drar dem i løpet av tiden fra innholdsleveringsnettverk på forespørsel. Faren for dette ble spektakulært illustrert av Venstre-Pad-hendelsen i 2016.

Hver kjede er bare så sterk som dens svakeste ledd. Denne kjedingen av avhengigheter betyr at hvis en kobling hvor som helst langs kjeden er ødelagt eller kompromittert, er hele kjeden i fare for funksjonsfeil. I noen situasjoner kan det være ganske kostbart. Ingen ville ha mistanke om kraften i de 11 kodelinjene som var i den godartede lille funksjonen som ble kalt Left-Pad, men da den aktuelle kjedeforbindelsen mislyktes, bragte den mange store nettsteder til å stanse. Hoveddelen av det var at de fleste som brukte Left-Pad, ante ikke at de brukte det, hva det gjorde eller hvordan de løste problemet. Som det fremgår av punkt 2, hvis du ikke eier det, kan du ikke nødvendigvis forstå det.

Left-Pad var en veldig enkel funksjon som bare legger til noen få mellomrom på venstre side av en linje for å sikre at linjen har riktig lengde. Nå er problemet at enhver kompetent programmerer lett kan gjenskape den funksjonaliteten. Det er absolutt ikke behov for at noe program skal være avhengig av denne tredjepartsfunksjonen, og likevel brukte tusenvis av nettsteder programvare som inkluderte den, inkludert Netflix, Facebook og Reddit. Det var bare et hell med hell at det i dette tilfellet var en veldig enkel funksjon som brakk kjeden, og ikke noen virkelig kompliserte funksjoner som hadde sin egen kjede avhengigheter.

Hovedpoenget er at hvis du kan bygge det selv, burde du sannsynligvis!

Til slutt bestemmer beslutningen om å bruke tredjeparts kodeblokker i prosjektet ditt, en serie kompliserte beslutninger som aldri bør tas lett. Faktorene du må vurdere er sikkerhet, lovlighet, kostnader, tid og stabilitet.

For å gjøre beslutningsprosessen enklere, vil sannsynligvis følgende testforhold hjelpe.

HVIS noen av disse faktorene er sanne:

  • funksjonen du ønsker er enkel
  • du (eller teamet ditt) har muligheten til å opprette funksjonen
  • det er god tid til å lage funksjonen
  • søknaden din trenger god sikkerhet
  • har du bekymringer for potensielle juridiske problemer forbundet med tredjepartslisenser
  • det er viktig at søknaden din aldri skal mislykkes

DÅ skulle du bygge det selv,

ELSE kan det være mer effektivt å bruke tredjepartsfunksjonene, forutsatt at du er klar over de potensielle problemene og at du har en strategi på plass for hva du vil gjøre hvis disse problemene oppstår.

header image med tillatelse fra Stephanie Tucker

Bogdan Rancea

Bogdan er et grunnleggende medlem av Inspired Mag, etter å ha opparbeidet seg nesten 6 års erfaring i løpet av denne perioden. På fritiden liker han å studere klassisk musikk og utforske billedkunst. Han er ganske besatt av fixies også. Han eier 5 allerede.

kommentarer 0 Responses

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

Vurdering *

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.