Individuell obligatorisk øving

Læringsmål for øvingen

  • grunnleggende git-ferdigheter

  • oppsett av java-prosjekt med maven

  • sammenheng mellom navn, struktur og innhold

  • oppfriskning om javafx og fxml

  • generell feilfinning

Hensikt

Alle skal kunne bidra til prosjektet!!!

Grunnleggende git-ferdigheter

  • opprett kodelager på gitlab

  • klone mal-kodelager (git clone)

  • knytte kodelager til annet fjernlager (git remote)

  • overføre til fjernlager (git push)

  • lage nye versjoner (git add og git commit)

Java-prosjektoppsett m/maven

  • kildekodemapper og pakkehierarki

    • src/main/java og src/main/resources

    • src/test/java (og src/test/resources)

  • pakkehierarki og mappestruktur

    • pakkenavn(segmenter) tilsvarer mappestruktur

    • både kode og ressurser hører til pakker

    • getClass().getResource(…​)

Navn, struktur og innhold

  • klasser og filer, pakker og mapper

  • konfigurasjon i pom.xml

    • klassenavn (og modulnavn)

    • kommandolinje-argumenter

  • module-info.java

    • modulnavn i deklarasjon og requires

    • pakkenavn i exports og opens

Navn, struktur og innhold

  • pom.xml

    • konfigurasjon av maven-tillegg

    • inkl. kjøring av tester og app

    • klassenavn (og modulnavn)

    • kommandolinje-argumenter

Oppfriskning om javafx og fxml

  • rollefordeling mellom domene- og kontroller-klasse(r)

  • kobling mellom fxml og kontroller-klasse

    • fx:id og onXyz-attributter i fxml-fil

    • felt og metoder i kontroller-klasse

  • programflyt i kontroller

    • initiell visning av tilstand

    • reaksjon på hendelser

    • oppdatering av visning

Generell feilfinning

  • tolke symptomer

    • hvorfor reagerer ikke appen?

    • hvordan finne ledetråder i "stacktracen"?

    • hvorfor kalles ikke metoden?

  • løse problemet

    • utvikle hypoteser om årsaker

    • validere (eller falsifiere) hypoteser

    • prøve ut løsninger

Hva nå?

  • rigging av gruppeprosjekt

  • fler-modul-prosjekt

    • mye det samme, men litt mer komplisert

    • enklere å skille utviklingsoppgaver

  • større brukergrensesnitt

    • flere kontroller-klasser og fxml-filer

Norwegian University of Science and Technology