Hoppa till innehåll

Sammanfattning - "Stå-upp"-vlogg (2024)

Den här inspelningen är delad mellan de två kurserna: första delen handlar om 1DV025, andra delen — den som sammanfattas här — om 1DV026:s fjärde kursvecka.

Förhoppningen är att alla nu har lyckats ansluta med SSH till sin egen maskin. Informationen om hur man ansluter finns i Secrets-projektet i ens grupp i GitLab. När anslutningen inte fungerar är det nästan aldrig fel på själva servern, utan på VPN-anslutningen. Felet kan vara svårt att hitta, och det försvåras av att VPN:en är konfigurerad olika beroende på plattform. Att det fungerar för en Mac-användare säger alltså inget om varför det inte fungerar på Windows. Lyckas en Windows-användare men inte en annan är det troligare något i den egna konfigurationen som spökar.

Veckan är en normal vecka utan deadlines, och fokus ligger på Node.js. Föreläsningen är ungefär en och en halv timme och går igenom vad Node.js är, dess historia och nyckelprinciper, singeltrådade och multitrådade arkitekturer, blockerande och icke-blockerande kod, när Node.js är ett bra val och när det inte är det, samt pakethanteraren npm. Kursledningen framhåller att det är den här typen av allmänkunskap som gör vardagen som utvecklare enklare: den som vet hur verktygen fungerar under ytan står stadigare.

Namnet npm utläses ofta “Node Package Manager”, men enligt npm själva är det ingen förkortning. Kursledningen återger en skröna om att namnet valdes för att det är lätt att skriva på tangentbordet.

Föreläsningen har några år på nacken. Exemplet med filläsning använder det callback-baserade fs-paketet, men i dag finns en promise-baserad variant, fs/promises, som gör att man kan använda async/await på samma sätt som med fetch i webbläsaren. Presentationen är uppdaterad och markerar det äldre sättet som “old school”: bra att känna igen när man läser gammal kod, men inget man skriver i ny kod. Prefixet node: i import fs from 'node:fs/promises' behövs inte, men gör det lätt att se att det är ett inbyggt paket och inte ett tredjepartspaket.

När samma sak kan lösas på flera sätt frågar studenter ofta vilket sätt som är bäst. Svaret är att det beror på situationen och på ens egen kunskapsnivå. Det finns sällan ett bästa sätt, men ofta ett som är bättre. Lös uppgiften med det du kan.

Det finns ungefär tio sidor att läsa i kapitel 16 i kurslitteraturen, som handlar om JavaScript på servern med Node. Kursledningen rekommenderar att ha boken kvar i bokhyllan som referens för sådant man inte gör så ofta.

Övningsuppgiften “The Promising Web Scraper” handlar om asynkron programmering med promises och async/await. Den har ett lösningsförslag och en inspelning. Den är strategiskt viktig: examinationsuppgiften A2 är också en webbskrapa, som hämtar information från flera webbsidor och sammanställer den. Uppgifterna är inte identiska, så koden kan inte lyftas rakt av, men den som har gjort övningen har en mycket bra start. Den ger också en chans att fräscha upp hur man skriver JavaScript som körs i en terminalmiljö, utan grafiskt gränssnitt, och att föra över det man lärt sig om fetch från klientsidan, eftersom fetch finns i Node.js också.

Delkurs A består av A1 och A2, och det börjar dra ihop sig inför A2. Veckorna efter denna har inga egentliga läraktiviteter, utan är avsedda för att arbeta med examinationsuppgifterna. Tanken är att man då har lärt sig tillräckligt för att ta sig vidare på egen hand.

CCBY