's Picture

Vanilla JS och öppen källkod

Postad av Ricard Fredin

Under utvecklingen av Expressens nya utrikes-sajt Geo så tog vi i Labs-teamet beslutet att inte använda stora bibliotek och ramverk som jQuery, Angular, EmberJS m.fl. Bakgrunden till det var att vi ville bygga en lätt och snabb webbplats utan tunga beroenden och många onödiga requests.
Valet föll då på Vanilla JS för att kunna bygga bara precis det vi behöver och med så hög prestanda som webbläsarna tillåter.

Att skriva JavaScript utan t.ex. jQuery är lite annorlunda eftersom man går från förenklade funktioner till dess mer verbosa ursprungsfunktioner. Ett tydligt exempel på detta är att hämta ett DOM-element baserat på id:

document.getElementById('test-table'); // Vanilla JS  
$('#test-table'); // jQuery

En del saker man behöver bygga är större än några få funktioner och det finns en vinst i att inte uppfinna hjulet igen. Att då leta bibliotek och plugins för Vanilla JS är ett mycket större jobb än om man kör ex. jQuery. De flesta utvecklas inte längre än några få versioner och sen faller de i glömska och man vill helst använda aktuell kod som fungerar och får buggfixar om det behövs.

Geo var ett av kraven att vi skulle kunna visa bilder i ett bildspel och eftersom vi utvecklade för mobilen först så behövdes även ett gott touch-stöd. Efter mycket letande på Google och Github så lyckades vi inte hitta något verktyg som uppfyllde alla våra krav och behov. Vi hittade ett projekt vid namn Lory som uppfyllde de viktigaste baskraven såsom touch-stöd men också såg bra ut, var under aktiv utveckling och stämde in på de flesta krav vi hade på hur vårt bildspel skulle fungera praktiskt.

Som tur är så är Expressen en arbetsplats som inte är främmande för att ge tillbaka till öppen källkods-communityn.

Frågeställningen är då hur man går vidare med de funktioner som saknades utifrån vår interna kravspecifikation. Som tur är så är Expressen en arbetsplats som inte är främmande för att ge tillbaka till öppen källkods-communityn. Om man tittar på Expressens github-konto så finns både egna öppen källkods-projekt och bidrag till befintliga sådana.

Det som följde var flera pull requests1 med ny funktionalitet såsom custom events2 och stöd för responsiva bildspel med dynamisk bredd. Vi kanske återkommer med ett nytt blogginlägg i framtiden som mer ingående beskriver arbetet kring att bidra till öppen källkods-projekt i allmänhet och Lory i synnerhet.

PS. Missa inte vår nästa bloggpost, följ oss på Twitter!

Till startsidan