Gitpod

Problem

Rigging av alt som trengs for utvikling tar mye tid

  • språk og rammeverk, f.eks. python, java, javafx osv.

  • støtteapplikasjoner og byggesystemer, f.eks. git, gradle, mavem, npm,, sbt osv.

  • IDE-er med nødvendige tillegg, f.eks. Eclipse, IntelliJ, VSCode

  • alt skal spille godt sammen, versjoner må være kompatible

Spesielt problematisk for kortvarig bruk, f.eks. øvinger og eksempler

Gitpod = VSCode + git + Docker

  • VSCode i nettleseren startes opp fra et git-kodelager

  • Arbeidsområdet og oppsettet hentes fra kodelageret

  • Virtuell linux-maskin m/terminal kjører i skyen

  • Støtter alle relevante språk, rammeverk og byggesystemer

  • Kobles til git-skytjeneste som github og gitlab, men kan kjøres innomhus

Gitpod @ NTNU

  • NTNU har sin egen gitpod.stud.ntnu.no koblet mot gitlab.stud.idi.ntnu.no (gitpod.io brukes mot gitlab.com eller github.com).

  • brukes i IT1901 til

    • javafx-maler og -eksempler

    • øvinger i personlig kodelager

    • prosjektet i gruppe-kodelager

  • vil etterhvert også bli brukt i 1. klasse-emner

Gitpod-arkitektur

gitpod arch

Gitpod-scenarier

Dele eksempler

  • Fagstab

    • rigger opp eksempel

    • gir instruksjoner i README

    • publiserer i kodelager og deler lenke

  • Student

    • åpner kodelager i gitpod og jobber videre

    • evt. lagrer i eget kodelager (med git remote)

Gitpod-scenarier

Få veiledning

  • Student (jobber inni gitpod)

    • tar snapshot

    • deler snapshot-lenke med fagstab

  • fagstab

    • åpner lenke i gitpod

    • ser gjennom og kommenterer

Gitpod-scenarier

Eksamen (om ikke så lenge, håper vi)

  • Fagstab

    • forbereder innhold og kontekst for oppgavene

    • rigger opp personlig kodelager for hver kandidat

  • Student

    • åpner sitt kodelager og gjør oppgavene

    • besvarelsen lagres kontinuerlig i kodelageret

  • Sensor

    • åpner kodelager-lenke og vurderer besvarelse

Gitpod i IDI-emner

Støtter mange undervisnings-scenarier

  • kode- og prosjekteksempler

  • øvinger og småskala prosjekter

  • alle relevante språk og rammeverk, spesielt web-utvikling

  • vanlig git-arbeidsflyt

  • deling av nå-tilstand vha. snapshots

Norwegian University of Science and Technology