Din guide till "tråkig" kod i JavaScript

Kod som är lätt att förstå, (dvs "tråkig" kod) leder till färre buggar.

En av tjusningarna med JavaScript är att man lär sig nya grejer hela tiden. Jag har programmerat JavaScript i över 20 år och jag lär mig fortfarande nya saker.

Att debugga (dvs) hitta/lösa problem och lära sig nya saker är "roligt"... Men denna guide är för de som vill få saker gjort dvs. de som vill skriva "tråkig" kod.
Fördelarna med "tråkig" kod är att den är lättare att förstå, vilket i sin tur leder till färre buggar. Det jobbiga är dock att det ibland blir lite mer text att skriva, och att man måste vara mer tydlig.

Kolla om en variabel är null

Ett första exempel på tråkig kod är att undvika typ-sant / sant-ish (engelska: truthy/falsy) Till exempel när man använder Reguljära uttryck (engelska: Regular expressions, RegExp) så måste man kolla om värdet är null ...

Det tog ca 10 år för mig att lära mig RegExp, men jädrans vad roligt det är när man väl kan det. Om man vill skriva tråkig kod ska man dock undvika RegExp - just på grund av att det kan vara svårt att förstå. Men jag kommer inte på någon annan funktion/metod i JavaScript som kan returnera null... Helst ska man undvika att använda sig av null i sin egen kod, men ibland kan det bli mer komplicerat att undvika null än att använda null...

Notera att jag använder === null i kodexemplet. Jag ville kolla om värdet som returneras från metoden match är null (doh) ... Men om jag hade struntat i jämförelsen/likamedtecknen och använt så kallat sant- typ/ish (engelska: truthy/falsy) så hade koden förmodligen fungerat ändå! Men if-satsen skulle även godta andra värden... Se kod/tabellen nedan:

Låt säga att du har en "rolig" funktion som returnerar ett tal, men som också kan returnera null... (om man vill ha "tråkig" kod ska man försöka se till att en funktion endast kan returnera en typ av object) Om du sedan använder truthy/falsy dvs. if(foo) för att kolla efter null så skulle den if-satsen även matcha talet 0, vilket kan leda till problem.

for-loopar

En av de mest tråkiga sakerna i JavaScript är nog for-loopar... Med risk för att somna så får du här ett exempel på for-loop):

Det kan dock bli roligare om man använder nästlade for-loopar. Med hjälp av namn (engelska: labels) så kan man till exempel ange vilken av for-looparna så ska brytes i "break", men eftersom detta är en guide för "tråkig" kod så kommer jag inte att ge ett exempel på det, utan ett exempel på hur man kan undvika nästlade for-loopar:

Låt säga att vi har en multi-dimensionell array som representerar en grid, det kan till exempel vara en spelplan med x och y koordinater, eller ett text/excel-dokument med rader och kolumner.

Förhoppningsvis kan du komma på ett bättre namn på funktionen än mig. En kul grej i programmering är att sätta bra namn på variabler. Men det är ett nödvändigt ont, då bra namn gör koden mycket lättare att förstå. Detta med att namnge saker och ting måste dock ha en balans, föredra korta och koncisa namn, och håll variabel-scopet så litet som möjligt: Genom att använda rena små funktioner så undviker man att variabel-namnen "krockar" med andra variabler i kod-basen.


Skrivet av 18:e December, 2020.


Följ mig via RSS:   RSS https://zäta.com/rss.xml (ange adressen i din feed-läsare)