23 Dokumentere og dele arbeidet
I alle prosjektene har du dokumentert det du har laget. Her lærer du flere verktøy for å dokumentere og dele arbeidet. Bruk bestillings-appen fra Prosjekt 4, eller et annet prosjekt. Lagre alt i mappen kap23-dokumentere.
23.1 Kommentarer i HTML, CSS og JavaScript
kanelsnurr-bestilling/skript.js
En kommentar forklarer koden for den som skal lese den senere, og det er ofte deg selv. Den beste kommentaren sier hvorfor, og ikke det samme som koden sier fra før.
| Språk | Kommentar |
|---|---|
| HTML | <!-- En kommentar --> |
| CSS | /* En kommentar */ |
| JavaScript | // En kommentar på én linje |
| SQL | -- En kommentar på én linje |
Nedenfor ser du fire kommentarer til kodelinja kurv = []; i funksjonen sendBestilling.
Kode A
// Setter kurv lik en tom listeKode B
// Tømmer kurven, slik at neste kunde begynner på nyttKode C
// KurvKode D
// Fikset denne nå, virker!!- Hvilken kommentar hjelper mest for en som skal endre appen? Hva er problemet med hver av de andre?
- Gå gjennom
skript.jsi prosjektet ditt. Har hver funksjon en kommentar som sier hva den gjør? Skriv det som mangler. - Finn ett sted i koden der du har gjort noe som ikke er lett å forstå. Skriv en kommentar som forklarer hvorfor.
- Finnes det kommentarer som bare gjentar koden? Fjern dem.
Kode som er vanskelig å forklare, kan ofte bli lettere å lese med bedre navn. Før du skriver en lang kommentar, prøv å gi variabelen eller funksjonen et navn som sier det samme.
23.2 En README-fil i Markdown
kanelsnurr-bestilling/README.md
# Bestillings-app for Kafé Kanelsnurr
En app der kundene kan bestille mat og drikke for å ta med.
## Slik starter du appen
Åpne `index.html` i en nettleser.
## Filer
- `index.html` – siden
- `stil.css` – utseendet
- `skript.js` – menyen og funksjonene
## Slik endrer du menyen
Menyen står øverst i `skript.js`. Se **dokumentasjon.html**.
Laget av Amira Ali, 1IMA, 2027.En README-fil forteller kort hva prosjektet er, og hvordan man bruker det. Den skrives ofte i Markdown, der du merker opp teksten med tegn i stedet for tagger. Filen slutter på .md.
| Markdown | Blir |
|---|---|
# Overskrift |
en overskrift på nivå 1, som <h1> |
## Overskrift |
en overskrift på nivå 2, som <h2> |
- punkt |
et punkt i en punktliste |
1. punkt |
et punkt i en nummerert liste |
**fet** |
fet tekst, som <strong> |
*kursiv* |
kursiv tekst, som <em> |
`kode` |
kode |
[tekst](adresse) |
en lenke |
- Les README-filen ovenfor. Hvilke HTML-elementer svarer til hver del?
- Lag
README.mdi mappen til prosjektet ditt. - Se på filen med forhåndsvisning av Markdown. I mange editorer finner du det ved å høyreklikke på filen. Ser det ut som du ventet?
- Gi README-filen til en medelev som ikke har sett prosjektet. Klarer hun å starte appen og endre menyen uten å spørre deg?
23.3 Testtabell og testrapport
| Nr. | Test | Forventet | Resultat | Rettet |
|---|---|---|---|---|
| 1 | Legg til én kanelsnurr | 1 × Kanelsnurr, totalt 42 kr | OK | |
| 2 | Legg til kanelsnurr to ganger | 2 × Kanelsnurr, totalt 84 kr | To linjer med 1 × Kanelsnurr | Søker i kurven før push |
| 3 | Send med tom kurv | Melding, ingen ordrenummer | Ordrenummer 101 | Sjekker kurv.length |
| 4 | Fjern den siste varen | Linja forsvinner | OK |
Kolonnen Rettet viser hva du gjorde med feilene. En testrapport er en kort tekst som oppsummerer testingen: hva som er testet, hvilke feil du fant, og hva som ikke virker ennå.
- Les tabellen. Hva skulle utvikleren ha gjort etter at test 2 og 3 var rettet?
- Hvorfor er det like viktig å skrive ned feilene du har rettet, som det som virket med en gang?
Gode tester sjekker også grenseverdiene, altså verdiene der programmet skifter oppførsel, som i oppgave 11.4. Test også det brukeren ikke skal gjøre: tomme felt, negative tall og tekst der det skal stå et tall.
- Lag en testtabell med minst ti tester for prosjektet ditt. Minst tre av dem skal teste feil bruk eller grenseverdier.
- Gjennomfør testene, og skriv en testrapport på fire til seks setninger.
Når du har rettet en feil, må du teste alt på nytt, og ikke bare det du rettet. En endring ett sted kan lage en ny feil et annet sted.
23.4 Skjermbilder og skjermopptak
| Maskin | Skjermbilde av en del av skjermen | Skjermopptak |
|---|---|---|
| Windows | Win-Shift-SWin-Shift-S |
Klippeverktøyet, velg opptak |
| Mac | Cmd-Shift-4Cmd-Shift-4 |
Cmd-Shift-5Cmd-Shift-5 |
| Chromebook | Ctrl-Shift-F5Ctrl-Shift-F5, tasten for å vise vinduer | det samme verktøyet, velg opptak |
Et skjermbilde viser hvordan appen ser ut, og et kort skjermopptak viser hvordan den brukes.
- Ta et skjermbilde av appen din i mobilvisning, og et i et fullt vindu. Legg dem i mappen
bilder. - Legg skjermbildene inn i
dokumentasjon.htmlmed en god alternativ tekst. - Ta opp en video på under ett minutt som viser en bestilling fra start til slutt. Planlegg hva du skal vise før du begynner.
- Utviklerverktøyene i nettleseren kan ta skjermbilde av en hel side, også det som er nedenfor vinduet. Finn ut hvordan.
Se over skjermbildet før du deler det. Fjern navn, e-postadresser, faner og varsler som ikke hører til prosjektet. Bruk oppdiktede data når du viser appen.
23.5 Ta vare på tidligere versjoner
Mappe
prosjekter
├── kanelsnurr-bestilling
├── versjoner
│ ├── kanelsnurr-2027-03-04-meny-virker.zip
│ ├── kanelsnurr-2027-03-07-kurv-virker.zip
│ └── kanelsnurr-2027-03-11-levert.zip
└── endringslogg.md
Det hender at du ødelegger noe som virket. En enkel måte å ta vare på tidligere versjoner er å lage en ZIP-fil av mappen hver gang noe viktig virker, med datoen i filnavnet.
endringslogg.md
- Hvorfor står datoen først i filnavnet, og på formen år-måned-dag?
- Lag en endringslogg for prosjektet ditt, med de viktigste endringene så langt.
- Finn ut om skytjenesten skolen bruker, har versjonshistorikk. Hent fram en eldre versjon av en fil.
Utviklere bruker egne verktøy for versjonskontroll, som holder styr på hver eneste endring i et prosjekt. Ideen er den samme: Ta vare på en versjon hver gang noe virker, og skriv kort hva du har endret.
23.6 Levere og dele et nettsted
For å dele et nettsted på nettet må filene ligge på en webserver, en datamaskin som sender filene til den som ber om dem. Skolen har kanskje et sted der du kan legge ut nettsider.
| Sjekk før du deler | Hvorfor |
|---|---|
Forsiden heter index.html |
serveren viser den når noen går til adressen |
| Alle adresser er relative stier | adresser som C:\Users\... virker bare på din maskin |
| Filnavnene har små bokstaver, uten mellomrom og uten æ, ø og å | mange servere skiller mellom store og små bokstaver |
| Alle bildene har du lov til å bruke | du er ansvarlig for det du legger ut |
| Det står ingen personopplysninger på siden | det du legger ut, kan alle se, og det er vanskelig å fjerne |
| Siden er testet på mobil og med tastatur | de fleste besøker siden på mobil |
- Gå gjennom prosjektet ditt med tabellen ovenfor. Rett det som mangler.
- Spør læreren om skolen har et sted der du kan legge ut nettstedet. Legg det ut, og test adressen på mobilen din.
- Hvem skal kunne se nettstedet ditt? Er det noe på siden du ikke vil at alle skal se?
Jeg skal levere et nettsted til en kunde. Her er README-filen og testrapporten min: [lim inn teksten]. Ikke skriv dem om. Si hva en kunde som ikke kan programmere, kan komme til å lure på etter å ha lest dem.
Oppsummering
I dette kapitlet har du dokumentert et prosjekt med kommentarer, en README-fil og en testrapport. Du har tatt skjermbilder og skjermopptak, tatt vare på tidligere versjoner med en endringslogg, og gjort nettstedet klart til å deles.
Dokumentasjon av et prosjekt
| Del | Hva den inneholder | Hvem den er for |
|---|---|---|
| Kommentarer | hva funksjonene gjør, og hvorfor koden er som den er | den som skal endre koden |
README.md |
hva prosjektet er, hvordan det startes, og hvilke filer det har | den som åpner mappen |
dokumentasjon.html |
bestillingen, planen, valgene, testingen og kildene | kunden og læreren |
| Testrapport | hva som er testet, feil som er funnet og rettet | kunden og læreren |
| Endringslogg | hva som er endret, og når | deg selv og den som overtar |
Merk deg følgende:
- En god kommentar forklarer hvorfor, og ikke det samme som koden sier.
- I Markdown gir
#en overskrift og-et punkt i en liste. - Test grenseverdier og feil bruk, og test alt på nytt etter at du har rettet en feil.
- Se over skjermbilder og nettsteder før du deler dem.
Oppgaver
Oppgave 23.1
Skriv om README-filen nedenfor i Markdown, med overskrifter, en liste over filene og en lenke til dokumentasjonen.
les-meg.txt
Quiz om fyret. Laget av Jonas Berg 2027. Åpne index.html for å starte. Filene er index.html som er siden, stil.css som er utseendet og skript.js med spørsmålene. Spørsmålene står øverst i skript.js. Mer informasjon i dokumentasjon.html.
Oppgave 23.2
Velg en funksjon fra et program du har laget i Del 4. Skriv tre kommentarer til den: én som bare gjentar koden, én som er for vag, og én som er god. Forklar forskjellen.
Oppgave 23.3
Lag en testtabell for funksjonen billettpris(alder) fra oppgave 17.4. Ta med alle grenseverdiene og minst to eksempler på feil bruk.
Oppgave 23.4
Ta et skjermbilde av en side du har laget, og legg det inn på en side med en god alternativ tekst. Forklar hva du fjernet eller beskar før du delte det.
Oppgave 23.5
Forklar hvorfor det er lurt å ta vare på tidligere versjoner, selv om du aldri trenger dem.
B-oppgaver
Oppgave 23.6
Undersøk mer Markdown: tabeller, kodeblokker og bilder. Lag en README-fil for Prosjekt 3 som har med et skjermbilde, en tabell over scenene og et kodeeksempel.
Oppgave 23.7
Lag en mal for dokumentasjon.html som du kan bruke i alle prosjektene dine, med overskrifter, en tom kravliste og en tom testtabell.
Oppgave 23.8
Bytt prosjekt med en medelev. Les README-filen og dokumentasjonen, og test prosjektet med testtabellen hennes. Skriv en kort tilbakemelding: Hva var tydelig, hva manglet, og fant du feil hun ikke hadde funnet?
Oppgave 23.9
Undersøk hva versjonskontroll er, og hvorfor utviklere bruker det. Sammenlign med ZIP-filer og endringslogg. Hvilke problemer løser versjonskontroll som ZIP-filer ikke løser, når flere arbeider på det samme prosjektet?