17 april, 2018

Hur 20 miljoner kodrader krymper till 5 miljoner

Varför minska antalet manuellt skrivna kodrader?

Antalet manuellt skrivna kodrader har stor betydelse, varför det? Jo, det visar sig att antalet buggar i en programvara är direkt proportionell till antalet manuellt skrivna kodrader. Detta oberoende av programmeringsspråk.

Därför är det viktigt att i möjligaste mån hålla ner antalet manuellt skrivna rader. Öka i stället antalet genererade kodrader som är skrivna av robotar.

När man tittar på innehållet i kodmassan för en en större applikation visar det sig att en stor del av koden följer fasta mönster. Det ”affärsmässiga” innehållet är inte så stor del av det totalen.

Genom att använda robotar så krymper antalet skrivna kodrader

En mjukvarurobot skriver kod baserat på en formell specifikation som beskriver vad som ska utföras på ett strukturerat sätt. Tekniken som används för att formalisera detta kallas Domänspecifika språk eller DSL.

Just på grund av att ett välkonstruerat DSL är mycket mer kompakt än slutresultatet, så blir antalet skriva kodrader mindre.  Hur mycket mindre beror på hur mycket de olika programmen liknar varandra, men det är inte ovanligt att det krymper till en fjärdedel.

Ta tex följande utdrag ur ett program:

Det är egentligen bara de röda raderna som är essensen och det affärsmässiga innehållet. Resten av programmet är kod som behövs för utföra logiken i det ramverk och den implementation som är vald. Med det är också kod som ska se likartad ut för samtliga program av samma typ och som då passar utmärkt att utföras av en robot istället.

Ett motsvarande program i DSL skulle kunna vara:

Mycket kompaktare och lättläst, även för en som inte är expert på programmering, men känner till sin databas och tabellverk.

Slutresultatet är färre kodrader fast samma innehåll

På grund av att roboten översätter DSL till vanlig kod, så blir slutresultatet det samma. Det slutliga programmet blir lika, men vägen dit är helt olika.

I exemplet ovan blir 23 kodrader i stället bara 4!

Om ni har ett stort system med många program som exemplet ovan så är det inte allt omöjligt att ni också får 20 miljoner kodrader att bara bli 5 miljoner.

Vad skulle det  innebära för ditt företag om antalet kodrader minskade till en fjärdedel? Skulle det bli lägre kostnader för utveckling och underhåll?