Parenteser

Betraktninger fra Mat-teamets grønne enger

Enkel kode uten leoparder

Leopard nr 1

Husk å kjøre setup-scriptet før du starter dev-miljøet (krever Ruby 3). Bilde: Wikimedia, CC S-A 4.0

Denne uka har jeg fått kode litt sammen med Isam, som startet som utvikler i Mattilsynet på mandag. Parprogrammeringen har fått meg til å tenke på hva vi har gjort, og hvorfor vi har gjort det.

Vi ble tidlig enig om at å lage en enkel personlig nettside for Isam var et fint mål. Så, putt “hei” i index.html og gå i prod?

$ echo "hei" > index.html

Men for å komme oss dit, støtte vi på spørsmål! Hva er echo? Hva er echo $PATH? Hva gjør export PATH="/opt/homebrew/bin:$PATH"? Hvordan kan vi finne programmer med which? Hva skjer når vi har flere vim-programmer på PATH? Hva er forskjellen på terminalen (for eksempel Terminal eller Ghostty) og skallet (for eksempel Zsh, Bash eller Fish).

Leopard nr 2

Etter du har prodsatt ny versjon, må du SSH-e inn på ingressen og tømme Varnish-cache, hvis ikke må du vente på automatisk cache-tømming (cirka 30 minutter). Bilde: Wikimedia, CC S-A 4.0

Vi tok oss god tid til å forklare hver ting: terminal, skall, programmer, variabler i skallet, og hvordan PATH er spesiell.

Etter første økt (tirsdag) hadde vi nettside i prod, fra et Git-repo med to filer: index.html og dev. index.html var første versjon av nettsiden, og ./dev ga en live-server.

Etter andre økt (torsdag) hadde vi enkel støtte for innlegg på bloggen. Hvert innlegg er sin egen HTML-fil, og build.js samler innleggene og lager index.html.

Men koden var full av leoparder! Da var det på tide å rydde. Vi fjernet console.log() vi hadde skrevet før for å sjekke noe. Vi fjernet setting av variabler som ikke ble brukt. Vi fjernet skriving av en urelatert fil.

Når jeg setter meg ned for å kode, vil jeg føle meg avslappet. Hvis leoparder spretter opp av hull i bakken, ramler ned fra trær og hopper ut fra klesskapet mitt og biter meg i tåa, blir jeg stressa!

Leopard nr 3

Ikke kall sendRequest() før du har kjørt prepareRequest med de samme argumentene! Bilde: Wikimedia, CC S-A 4.0

Oppsummert:

  • For å skrive enkel kode, må du forstå fundamentet: terminalen din, programmeringsspråket ditt, Internett og nettleseren.
  • Du kan forenkle koden ved å fjerne leopardene du ser.
  • Du får enklere kode ved å løse nye problemer på enklest mulig vis. Det er sjelden nyttig med halvferdig kode som planlegger for framtidige eventualiteter.

Takk til Douglas Adams og Jack Rusher for den nydelige leopard-analogien. Jack Rusher har skrevet Leopards in the source code, mens Douglas Adams har denne snutten i Haikerens Guide til Galaksen:

“But the plans were on display…”
“On display? I eventually had to go down to the cellar to find them.”
“That’s the display department.”
“With a flashlight.”
“Ah, well, the lights had probably gone.”
“So had the stairs.”
“But look, you found the notice, didn’t you?”
“Yes,” said Arthur, “yes I did. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying ‘Beware of the Leopard.”

Teodor