Facebooks nye pakke-manager til Javascript skal klare tusindvis af afhængigheder

13. oktober 2016 kl. 15:592
Facebooks nye pakke-manager til Javascript skal klare tusindvis af afhængigheder
Illustration: Jesper Stein Sandal.
Facebook blev træt af at arbejde uden om begrænsningerne i npm-klienten og endte med at skabe den nye klient Yarn.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Når man udvikler og vedligeholder systemer, der er afhængige af talrige biblioteker, så bliver det kompliceret at sørge for, at alt fungerer lige præcis som dokumenteret. Facebook oplevede problemer med at bruge klienten til pakke-manageren npm i stor skala, og firmaet er derfor endt med at lave sin egen klient Yarn.

Det skriver Facebooks udviklingsafdeling i et blogindlæg.

Pakker er blevet almindeligt i udvikling med Javascript, fordi projekterne bliver større end blot simple scripts på en enkelt hjemmeside, og så er det ønskværdigt at kunne genbruge kode. Det medfører, at applikationer bliver afhængige af biblioteker, som igen kan være afhængige af andre biblioteker.

Det giver problemer, når man når op på en vis skala, erfarede Facebook, som med frameworket React nåede op på 121.358 filer, som var afhængige af hinanden.

Artiklen fortsætter efter annoncen

Det gør det besværligt at opdatere og vedligeholde koden. Efter at have fiflet med at få npm til at skalere på en bedre måde, endte Facebook derfor med at lave sin egen pakke-manager, der trækker på det samme repository som npm.

Yarn er Facebooks bud på en ny pakke-manager til npm. Den væsentligste forskel er, at Yarn først gennemløber alle afhængigheder og derefter downloader dét, der skal bruges. Ved hjælp af caching og ved først bagefter at linke tingene sammen, så bliver der ikke spildt tid på at hente de samme pakker flere gange, og man er sikker på, at der hentes de versioner, der skal bruges.

Samtidig kan det ske parallelt, og ifølge Facebook tager processen nu blot få sekunder i forhold til flere minutter. Fordelen er samtidig, at det stadig er det samme repository, komponenterne hentes fra.

2 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
1
14. oktober 2016 kl. 06:20

Dengang jeg lærte at kode, var et bibliotek et sted man cyklede hen for at låne bøger, som man kunne skrive kodestumper ind i hånden fra!