Hjem » Siste artikler » Metoder i programmering forklart enkelt: fra kaos til ryddig kode

Metoder i programmering forklart enkelt: fra kaos til ryddig kode

Hovedillustrasjon
Hovedillustrasjon. Foto: Daniil Komov / Pexels.

Metoder (også kalt funksjoner) er en av de viktigste byggesteinene i all programmering. Uansett språk du bruker, møter du dem nesten umiddelbart.

For mange nybegynnere føles metoder litt abstrakte: Hvorfor deler vi opp koden? Når gir det mening å lage en egen metode, og når blir det bare mer rot? Denne artikkelen gir en praktisk og jordnær innføring du kan bruke i dine egne små og store prosjekter.

Hva er en metode, helt konkret?

En metode er et lite stykke kode med et navn, som gjør én spesifikk jobb. I stedet for å skrive den samme koden flere ganger, skriver du den én gang i en metode, og “kaller” den når du trenger den.

Du kan se på en metode som en oppskrift: Den har et navn (for eksempel “lagKaffe”), den kan få inn ingredienser (parametere), den gjør noe (instruksjoner), og kan gi deg noe tilbake (returverdi).

Et enkelt eksempel i Python

I eksemplene bruker vi Python, men prinsippene er de samme i andre språk:

Eksempel:

def hent_fullt_navn(fornavn, etternavn):
    fullt_navn = fornavn + " " + etternavn
    return fullt_navn

navn = hent_fullt_navn("Ola", "Nordmann")
print(navn)

Her erhent_fullt_navnen metode. Den får inn to verdier, setter dem sammen, og returnerer én verdi. Du kan gjenbruke den samme metoden hundre ganger i stedet for å kopiere sammenkjedingen hver gang.

Hvorfor bruke metoder i det hele tatt?

Det kan virke enklere å bare skrive alt i en lang blokk, særlig i små skript. Men du betaler ofte prisen senere, når du skal feilsøke eller endre noe.

Metoder hjelper deg spesielt med tre ting: struktur, gjenbruk og lesbarhet.

1. Du får ryddigere struktur

En kodesnutt som gjør alt på ett sted blir fort vanskelig å lese. Ved å bryte opp logikken i små metoder, kan du lese koden mer som en historie:

def last_inn_data(): ...
def filtrer_data(data): ...
def beregn_resultat(data): ...
def skriv_rapport(resultat): ...

Når du så bruker dem, ser hovedflyten ryddig ut:

data = last_inn_data()
filtrert = filtrer_data(data)
resultat = beregn_resultat(filtrert)
skriv_rapport(resultat)

2. Du slipper kopiert kode

Hvis du gjør det samme flere steder, lønner det seg nesten alltid å samle det i en metode. Da trenger du bare å endre koden ett sted senere, i stedet for å lete opp alle kopiene.

Dette reduserer både feil og tidsbruk, og gjør det lettere å forbedre løsningen din etter hvert.

3. Koden blir enklere å forstå for andre

Gode metodenavn fungerer som små kommentarer i seg selv. Koden

beregn_mva(belop)

er ofte enklere å forstå enn et par linjer med matte hver gang du trenger merverdiavgift. Spesielt når du samarbeider med andre, betyr det mye at hensikten er tydelig ved første blikk.

Hva bør en god metode gjøre?

En enkel tommelfingerregel: En metode bør gjøre én tydelig ting. Ikke “litt av alt”. Dette kalles ofte single responsibility-prinsippet.

Hvis du sliter med å gi metoden et kort og presist navn, gjør den sannsynligvis for mye på en gang.

Del opp større oppgaver i mindre steg

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Florian Olivo / Unsplash.

Anta at du skriver en liten nettbutikk-funksjon som skal beregne totalpris for en handlekurv, inkludert rabatt og frakt. I stedet for én gigantisk metode, kan du dele den opp:

  • beregn_varer_sum: legger sammen pris på alle varene
  • beregn_rabatt: regner ut rabatt basert på regler
  • beregn_frakt: finner fraktkostnad
  • beregn_totalpris: bruker de tre andre for å summere alt

Da kan du teste hver del for seg, og du får en tydelig hovedmetode som beskriver flyten.

Parametere, returverdier og sideeffekter

Parametere er verdier du sender inn i metoden. Returverdier er det metoden gir tilbake. Mellom der skjer logikken din.

En praktisk ting å være bevisst på ersideeffekter: ting metoden gjør utover å regne ut og returnere en verdi, for eksempel å skrive til skjerm eller endre globale variabler.

Når bør en metode returnere noe?

Generelt er det lurt at metoder som “regner ut” noe, faktisk returnerer resultatet i stedet for å skrive det ut direkte. Da kan du gjenbruke resultatet senere, logge det, teste det, eller kombinere det med andre kall.

Mindre fleksibelt:

def skriv_sum(a, b):
    print(a + b)

Mer fleksibelt:

def beregn_sum(a, b):
    return a + b

Med den siste løsningen kan du selv velge om du vil skrive ut, lagre, eller bruke summen videre.

Navngiving som gjør koden selvforklarende

Et av de viktigste grepene for forståelig kode er gode metodenavn. De bør være korte, men likevel beskrive hva metoden faktisk gjør.

Noen enkle retningslinjer:

  • Bruk verb for metoder som gjør noe, for eksempelhent_brukerelleroppdater_status.
  • Unngå veldig generelle navn somgjørTingellerprosesserData, hvis du kan være mer konkret.
  • Ikke vær redd for litt lengre navn hvis det gir klarhet, så lenge de ikke blir kronglete.

Eksempler på bedre og dårligere navn

Dårlig:doStuff(), handle(), calc()

Bedre:beregn_totalpris(), send_epost_kvittering(), valider_brukernavn()

Navnene skal hjelpe deg og andre å forstå hva som skjer uten å måtte lese selve implementasjonen hver gang.

Når metoder blir for store og hva du kan gjøre

Et typisk nybegynnerproblem er metoder som vokser og blir uoversiktlige. Du ser mye innrykk, lange if-setninger og mange ulike ting som skjer i samme blokk.

Et praktisk triks: Hvis du kan markere 5–10 linjer i en metode og beskrive dem med én setning, er det ofte et godt tegn på at du kan trekke dem ut i en egen metode med det navnet.

Refaktoring i små steg

Refaktoring betyr å endre strukturen på koden uten å endre hva den gjør. Når du deler opp en stor metode, er det lurt å gå i små steg:

  1. Lag en ny metode med et godt navn.
  2. Flytt over relevant kode.
  3. Gi den nødvendige parametere og returverdi.
  4. Bytt ut den gamle koden med et kall til den nye metoden.
  5. Test at oppførselen er som før.

På den måten kan du forbedre koden gradvis i stedet for å skrive alt på nytt.

En enkel oppskrift du kan bruke i egne prosjekter

Når du lager noe nytt, kan du bruke denne enkle prosessen:

  1. Skriv først en litt “rett frem” løsning som virker.
  2. Se etter kode som gjentas flere steder. Lag en metode av den.
  3. Se etter deler som har en klar oppgave, og gi dem egne metoder med tydelige navn.
  4. Rydd opp i parametere og returverdier, så metodene blir enkle å teste.

Du trenger ikke perfekt struktur fra starten. Tenk heller at du hele tiden kan forbedre metoder og navn mens du lærer mer om problemet du løser.

Jo mer du øver på å lage små, tydelige metoder, jo lettere blir det å utvide, teste og feilsøke prosjektene dine, enten du skriver et lite skript eller bygger en større nettløsning.

0 kommentarer