Hva er backend utvikling

Hva er Backend-utvikling

Backend-utvikling er gjerne definert som arbeidet med å utvikle server-siden av en web-applikasjon. Dette inkluderer serverlogikk, databasesystemer, API-er, og alt annet som trengs for å sikre at frontend og backend kan samarbeide sømløst. Mens frontenden (det du ser) fokuserer på brukeropplevelse og grensesnittdesign, er backend mer opptatt av å håndtere data og forretningslogikk.

Som backend-utvikler har jeg vært med å lage løsninger som har som formål å hente data fra en leverandør, for så å sende disse dataene til andre applikasjoner. Eller at en applikasjon tar i mot meldinger som skal legges inn i en database. Informasjonen som ligger i databasen kan bli brukt til å lage oversikter eller annet i et annet program, eller av en webapplikasjon.

Språk og teknologier

I hovedsak bruker jeg PHP til å gjøre backend-utvikling. Dette avhenger av hva slags serverteknologi applikasjonen kjører på. Hvis serveren er en windows-server, velger jeg .Net rammeverket og utvikler løsningen ved bruk av språket c#. Dersom det er en linux-server, er valget PHP.

Disse programmene kan være alt fra svært enkle script / programmer som skal gjøre en ting et par ganger i døgnet eller i måneden, til svært avanserte løsninger.

Av ting jeg har vært med å utvikle er et SportsData-system og et Valg-mottakssystem.

Innen dette feltet skjer det mye hele tiden. Så her er det bare å følge med og lære. Ofte er læringskurven bratt (mye å lære på liten tid). I 2024 ble jeg (endelig) kjent med ulike AWS (Amazon Web Services) teknologier. Særlig har jeg brukt mye tid på å lage såkalte Lambdas. Dette er små programmer som i hovedsak skal gjøre en ting for så å bare vente på å starte opp igjen. Lambdas kan skrives i enten Javascript (node.js) eller ved bruk av script-språket Python. Jeg landet på det siste.

Viktige Roller innen Backend-utvikling:

Som backend-utvikler jobber du ofte sammen med andre. Og du er ofte «underlagt» en prosjektleder. Er bedriften stor nok, er det heller ikke utenkelig at du har en person som setter ditt program «i produksjon». Med produksjon menes at programmet kjører i operativt miljø og gjør den jobben programmet er satt til å gjøre.

Det er heller ikke uvanlig at du forholder deg til ulike varianter av utviklingsprosesser. Ofte utvikles løsningen du arbeider med gjennom sprinter. Med en sprint menes hva du og andre på teamet skal arbeides med de neste to ukene. Gjennom sprinten er det ofte daglige morgen møter hvor du forteller hvordan du ligger an.

Som backend-utvikler driver du ikke bare med kode. Du arbeider også med andre teknologier løsningen du arbeider med er avhengig av. Det kan være ulike former for databaser, ulike datapunkter – eller APIer, og liknende. Hva du kommer borti av andre teknologier avhenger helt av hva programmet du arbeider på skal løse.

Her er kort liste over ulike oppgaver du kan komme borti som backend-utvikler:

  1. Server-side Logikk: Backend-utviklere designer og implementerer serverlogikk for å behandle forespørsler fra frontend. Dette inkluderer å utføre forretningslogikk, hente og manipulere data fra databaser, og returnere resultatene til frontenden.
  2. Databasedesign og Administrasjon: Utvikling av effektive databaseløsninger er en kritisk del av backend-utvikling. Dette innebærer å designe databaser, opprette tabeller, optimalisere spørringer og sikre at dataene er organisert på en måte som gjør det enkelt å hente og manipulere.
  3. API (Application Programming Interface) Utvikling: API-er fungerer som broen mellom frontend og backend, tillater sømløs kommunikasjon mellom forskjellige deler av en applikasjon. Backend-utviklere bygger og vedlikeholder API-er for å muliggjøre datautveksling og samhandling.
  4. Sikkerhet: Sikkerhet er en prioritet i backend-utvikling. Dette inkluderer beskyttelse mot angrep som SQL-injeksjoner, Cross-Site Scripting (XSS) og andre trusler. Backend-utviklere implementerer sikkerhetsprotokoller for å sikre at applikasjonen er trygg og pålitelig.

Backend-utviklingsteknologier

Som backend-utvikler arbeider du med programmeringsspråk, men også andre teknologier. Under har jeg listet opp de jeg i hovedsak bruker eller har brukt.

Programmeringsspråk:

  • PHP: Kjent for sin enkelhet og lesbarhet, ofte brukt i webutvikling og dataanalyse.
  • C#: Et allsidig og robust språk som brukes mye i store bedriftssystemer.
  • Python: Også kjent for sin enkelhet og lesbarhet. Dette er ofte brukt i maskinlæring. Python er også et av språkene som støttes av Lambda-teknologien hos AWS (Amazon Web Services)

Databaseteknologier

  • MySQL: En populær relasjonsdatabase som gir pålitelig ytelse og skalérbarhet.
  • MS SQL: En annen populær relasjonsdatabase. Kjører på Microsoft-plattformen.
  • MongoDB: En NoSQL-database som bruker dokumentbasert modell, ofte valgt for fleksibilitet og skalerbarhet. Det finnes flere NoSQL-databaser, men MongoDB er den mest kjente.

Rammeverk

  • Laravel (PHP): Et høynivå web-rammeverk som gjør backend-utvikling rask og enkel.
  • .Net (C#/VB): Utviklingsrammeverk som forenkler C# eller Visual Basic-basert backend-utvikling.

API-er

  • RESTful API: Brukes ofte for enkel og effektiv kommunikasjon mellom frontend og backend.
  • GraphQL: Gir klienter muligheten til å spesifisere de dataene de trenger, noe som reduserer overføring av unødvendig informasjon.

Dataformater

  • JSON: Dette er for mange det mest naturlige data-formatet å arbeide med. Det er kjent for å være lett å forstå og svært allsidig. Json står for JavaScript Object Notation.
  • XML: Før JSON ble introdusert var XML det dataformatet de aller fleste brukte. Men XML er fortsatt svært utbredt og svært anvendelig. Fordi det er utviklet mange teknologier for å benytte seg av XML, er det fortsatt et svært populært format å bruke for å flytte data fra et sted til et annet. XML står for Extensible Markup Language.
  • YAML: Dette er ikke en standard som er vanlig å bruke til dataoverføring, men du kommer garantert borti det i forbindelse med konfigurering av programmer, databaser eller liknende. Kanskje til og med din egen applikasjon bruker YAML til konfigurasjon (sette opp verdier). YAML står for Yet Another Markup Language.

Utfordringer og Trender

Som nevnt tidligere er det å være en backend-utvikler en jobb som krever at du følger med på ulike teknologier eller måter å lage applikasjoner på.

En av de viktigste utfordringene en backend-utvikler står overfor, er å ta i mot og prosessere store mengder data og på raskest mulig tid. Samtidig skal applikasjonen levere data korrekt. Det kan også tenkes at løsningen krever mer ressurser, for eksempel at for å løse oppgaven ved å kjøre opp flere servere.

To trender som har kommet det siste tiåret er bruk av mikrotjenester og serverløse tjenester. Før mikrotjenester ble populært, ble det ofte skrevet store programmer som løste mer enn det ene problemet. Nå lages det heller flere applikasjoner som løser ulike problemer som backend-løsningen skal løse. Jeg heller ofte mot denne måten å arbeide på.

Serverløs arkitektur er også svært populært. Men her skal du være oppmerksom på kostnader. I motsetning til å kjøre løsningen på en lokal server, bruker du her ressurser som de ulike leverandørene har gjort tilgjengelig for deg, men de tar seg også ganske godt betalt for disse. Og gjør noe feil, kan regningen bli svært høy. En typisk tabbe er å sette opp automatisk skalering av servere, hvor terskelen for å starte opp en ny server er satt lavt. Da kan takstametret hos leverandøren virkelig begynne å tikke.

I dag er det tre selskaper som dominerer markedet: Amazon (med sin AWS løsning), Azure (Microsoft) og Google Cloud.

Av disse er AWS den tjenesten som er mest kjent og som ofte er mest støttet av ulike rammeverk knyttet til de ulike programmeringsspråkene. AWS er også mest brukt av norske og utenlandske bedrifter.

Kontakt oss

Ønsker du å kontakte oss for et backend utviklingsoppdrag? Fyll ut skjemaet under.