Lær å skrive README-filer, kodekommentarer og teknisk dokumentasjon.
Kode som ingen forstår er verdiløs. Du kan ha skrevet den mest elegante løsningen i verden, men hvis ingen – inkludert deg selv om seks måneder – kan forstå hva den gjør og hvordan den brukes, har du et problem.
Dokumentasjon er det som gjør kode og prosjekter forståelige. Det handler om å skrive ned det som ikke er åpenbart fra koden selv: hva prosjektet gjør, hvorfor det er laget slik, hvordan man installerer og bruker det, og hva man bør vite for å kunne jobbe videre med det.
Presentasjon er like viktig – du må kunne formidle arbeidet ditt til andre. Enten det er læreren din, medelever, eller en fremtidig arbeidsgiver, må du kunne forklare hva du har laget, hvilke valg du tok og hvorfor.
I dette kapittelet lærer du å skrive gode README-filer, kommentere kode på en nyttig måte, lage teknisk dokumentasjon, og presentere IT-prosjekter på en overbevisende måte.
README-filen er det aller viktigste dokumentet i prosjektet ditt. Det er det første folk ser på GitHub, og det bør gi all informasjon som trengs for å forstå og bruke prosjektet.
1. Prosjektnavn og kort beskrivelse – Hva gjør prosjektet? Én til to setninger.
2. Skjermbilde eller demo – Vis hvordan det ser ut. Et bilde sier mer enn tusen ord.
3. Installasjon – Steg-for-steg-instruksjoner for hvordan man setter opp prosjektet lokalt.
4. Bruk – Hvordan bruker man prosjektet? Eksempler er gull verdt.
5. Teknologier – Hvilke språk, rammeverk og verktøy er brukt?
6. Bidragsytere – Hvem har jobbet med prosjektet?
7. Lisens – Hvilke rettigheter har andre til å bruke koden?
For skoleprosjekter kan du også inkludere:
- Læreplankompetansemål prosjektet dekker
- Prosessdokumentasjon (lenke til prosjektlogg)
- Refleksjon over hva du har lært
Her er et eksempel på en README for et skoleprosjekt:
``markdownVaermelding - Enkel Vaerapp
En nettside som viser vaervarselet for norske byer ved hjelp av
data fra Meterologisk institutt sitt API (Yr).
(Her ville du lagt inn et bilde av nettsiden)
- HTML5
- CSS3 (Flexbox og Grid)
- JavaScript (Fetch API)
- Yr API (api.met.no)
1. Klon repositoryet:
git clone https://github.com/brukernavn/vaermelding.git
2. Apne index.html i nettleseren
Ingen ekstra installasjon er nodvendig – prosjektet bruker
kun HTML, CSS og vanilla JavaScript.
1. Skriv inn navnet pa en norsk by i sokfeltet
2. Trykk "Sok" eller Enter
3. Vaervarselet for de neste 3 dagene vises
- Ola Nordmann – Design og CSS
- Kari Nordmann – JavaScript og API-integrasjon
- Utvikle nettsider ved bruk av HTML og CSS
- Bruke et API til a hente og presentere data
- Planlegge og dokumentere utviklingsprosessen
MIT License
``
Legg merke til at README-en er kort, tydelig og gir all nødvendig informasjon for å forstå og bruke prosjektet.
README-filer og mye annen dokumentasjon skrives i Markdown – et lettvekts formateringsspråk som er designet for å være lesbart både som ren tekst og som formatert output.
``markdownOverskrift nivå 1
Overskrift nivå 2
Overskrift nivå 3
Fet tekst og kursiv tekst
- Punktliste
- Element to
- Element tre
1. Nummerert liste
2. Element to
3. Element tre
[Lenketekst](https://www.eksempel.no)
\Inline kode\
\\\python
\\> Sitat eller merknad
Kolonne 1 Kolonne 2 Data 1 Data 2
``Kodekommentarer er tekst i kildekoden som ignoreres av datamaskinen men hjelper mennesker med å forstå koden. Men ikke alle kommentarer er nyttige – dårlige kommentarer kan faktisk gjøre koden vanskeligere å forstå.
``python`Python: Enkeltlinje-kommentar med #
x = 10 # Kommentar på slutten av en linje
`javascript`
// JavaScript: Enkeltlinje-kommentar
/ JavaScript: Flerlinjekommentar
som kan gå over
flere linjer /
`html`
`css`
/ CSS-kommentar /
`python`Dårlig: Sier hva koden gjør (åpenbart fra koden selv)
x = x + 1 # Øker x med 1
navn = input("Navn: ") # Henter input fra brukeren
liste.sort() # Sorterer listen
`pythonBra: Forklarer HVORFOR, ikke hva
x = x + 1 # Kompenserer for 0-indeksering i API-responsen
Tommelfingerregler for kommentarer
1. Forklar hvorfor, ikke hva – Koden viser hva som gjøres; kommentaren forklarer hvorfor
2. Oppdater kommentarer når koden endres – Utdaterte kommentarer er verre enn ingen kommentarer
3. Bruk beskrivende variabelnavn i stedet for å kommentere dårlige navn
4. Kommenter kompleks logikk – Algoritmer, formler og ikke-opplagt kode
5. Marker midlertidige løsninger med TODO-kommentarer:
# TODO: Bytt til databaselagring`Teknisk dokumentasjon går dypere enn README-filen og er rettet mot utviklere som skal jobbe med eller vedlikeholde koden. I et skoleprosjekt viser teknisk dokumentasjon læreren at du forstår systemet du har bygd.
Systemarkitektur: Hvordan er prosjektet organisert? Hvilke filer gjør hva? Hvordan henger delene sammen?
````
prosjekt/
├── index.html # Forside
├── css/
│ └── style.css # Alle stiler
├── js/
│ ├── main.js # Hovedlogikk og event handlers
│ ├── api.js # API-kall til Yr
│ └── utils.js # Hjelpefunksjoner
├── images/ # Bilder og ikoner
└── README.md # Prosjektdokumentasjon
Dataflyt: Hvordan flyter data gjennom systemet? Fra brukerens input til visning av resultat.
API-bruk: Hvilke eksterne tjenester bruker prosjektet? Hva slags data hentes og sendes?
Kjente begrensninger: Hva fungerer ikke ennå? Hvilke kjente feil finnes? Hva ville du forbedret med mer tid?
Installasjonskrav: Hvilke verktøy og versjoner trengs for å kjøre prosjektet?
I IT 1 vurderes du ikke bare på det ferdige produktet, men også på prosessen. Prosessdokumentasjon viser hvordan du planla, jobbet og reflekterte underveis.
Prosjektplan:
- Hva er målet med prosjektet?
- Hvilke brukerhistorier definerte vi?
- Hva er MVP-en?
- Tidsplan med milepæler
Designprosess:
- Wireframes og skisser (tidlige versjoner)
- Designvalg og begrunnelser (hvorfor valgte vi disse fargene, denne layouten?)
- Prototyper og brukertesting (hva lærte vi?)
Utviklingslogg:
- Hva ble gjort i hver sprint/uke?
- Hvilke utfordringer oppstod?
- Hvordan ble de løst?
- Hva tok lengre tid enn forventet?
Refleksjon:
- Hva fungerte bra i prosjektet?
- Hva ville du gjort annerledes?
- Hva har du lært?
- Hvordan fungerte samarbeidet (hvis gruppeprosjekt)?
- Skriv litt underveis i stedet for alt på slutten
- Ta skjermbilder av wireframes, prototyper og viktige steg
- Vær ærlig om utfordringer – det viser refleksjonsevne
- Knytt arbeidet til kompetansemål fra læreplanen
Å kunne presentere arbeidet ditt er en viktig ferdighet. I IT 1 vil du sannsynligvis presentere prosjekter for klassen eller læreren. Her er noen prinsipper for gode presentasjoner.
1. Introduksjon (1-2 min): Hva er problemet? Hva har du laget? For hvem?
2. Demo (3-5 min): Vis produktet i aksjon. La det snakke for seg selv.
3. Teknisk gjennomgang (2-3 min): Hvilke teknologier brukte du? Hvordan er koden organisert? Vis et interessant kodeutdrag.
4. Prosess (2-3 min): Hvordan planla du prosjektet? Hvilke utfordringer møtte du? Hva lærte du?
5. Avslutning (1 min): Hva ville du gjort med mer tid? Spørsmål?
Vis, ikke fortell: I stedet for å si «Nettsiden er brukervennlig», vis det ved å demonstrere at det er enkelt å utføre en oppgave.
Hold det enkelt: Ikke vis all koden – velg ut de mest interessante eller utfordrende delene. Publikum trenger ikke se 500 linjer HTML.
Forbered demo: Test alt på forhånd. Ha en backup-plan hvis noe ikke fungerer (skjermbilder, video av demoen).
Snakk om utfordringer: De mest interessante delene av et prosjekt er ofte problemene du løste. Ikke vær redd for å dele hva som var vanskelig.
Tilpass for publikum: Læreren vil se at du forstår konseptene. Medelever vil se noe kult. Tilpass språkbruken etter hvem du snakker til.
Unngå å lese fra lysbilder: Lysbildene er visuell støtte, ikke manuskriptet ditt. Bruk stikkord og bilder, ikke lange tekstblokker.
Her er en foreslått lysbildestruktur for en 10-minutters prosjektpresentasjon:
Lysbilde 1: Tittel
Prosjektnavn, navn på teammedlemmer, dato
Lysbilde 2: Problemet
Hva er problemet vi løser? Hvem er brukerne?
(Bruk et bilde eller scenario som illustrerer problemet)
Lysbilde 3: Løsningen
Kort beskrivelse + skjermbilde av det ferdige produktet
Lysbilde 4-5: Live demo
Vis produktet i aksjon (nettleseren)
Lysbilde 6: Teknologi
Teknologier brukt (HTML, CSS, JS, API-er)
Enkel arkitekturoversikt
Lysbilde 7: Kode-høydepunkt
Vis et interessant kodeutdrag med forklaring
(Velg noe du er stolt av eller som var utfordrende)
Lysbilde 8: Prosessen
Wireframes -> Prototype -> Ferdig produkt
Kanban-tavle eller sprint-oversikt
Lysbilde 9: Utfordringer og lærdom
Hva var vanskelig? Hva lærte du?
Lysbilde 10: Veien videre
Hva ville du gjort med mer tid?
Takk for oppmerksomheten / spørsmål?
GitHub-profilen din kan fungere som en portefølje som viser hva du kan. Tips for en god GitHub-profil:
- Profil-README: Opprett et repository med samme navn som brukernavnet ditt og legg til en README.md som presenterer deg selv
- Pin beste prosjekter: Velg 4-6 prosjekter du er stolt av og pin dem på profilsiden
- Skriv gode README-filer: Hvert prosjekt bør ha en README som forklarer hva det gjør
- Commit jevnlig: Et grønt bidragsdiagram viser at du er aktiv
- Bruk beskrivende commit-meldinger: Folk kan se historikken din
En god GitHub-profil kan være verdifull når du søker lærlingplass, jobb eller studieplass innen IT.
Hva er hovedformålet med en README-fil i et prosjekt?
Hvilken av følgende er en god kodekommentar?
Hva er Markdown, og hvor brukes det?
Hva bør du fokusere på når du presenterer et IT-prosjekt for klassen?
Skriv en komplett README.md i Markdown-format for et tenkt IT 1-prosjekt: en nettside for en fiktiv kafé. README-en skal inneholde minst: prosjektnavn, beskrivelse, teknologier brukt, installasjonsinstruksjoner og bidragsytere.
Hva er forskjellen mellom brukerdokumentasjon, teknisk dokumentasjon og prosessdokumentasjon?
Lag en disposisjon for en 10-minutters presentasjon av et IT 1-prosjekt (en selvvalgt nettside eller app). For hvert lysbilde, skriv hva det bør inneholde og omtrent hvor lang tid du vil bruke. Inkluder også en kort prosessdokumentasjon der du beskriver minst to utfordringer du kunne ha møtt og hvordan de ville blitt løst.