Vad är defensiv programmering?

Defensiv programmering är skapandet av kod för datorprogram utformad för att undvika problematiska problem innan de uppstår och göra produkten mer stabil. Grundtanken bakom detta tillvägagångssätt är att skapa ett program som kan köras ordentligt även genom oförutsedda processer eller när oväntade poster görs av användare. Defensiv programmering bygger ofta på en något paradoxal kombination av att eliminera onödig kod samtidigt som man säkerställer att tillräckliga mängder genereras för att hantera alla möjliga användaråtgärder. Omfattande testning är också viktigt för denna process, liksom skapandet av programvara som lätt kan granskas och kontrolleras.

På många sätt är konceptet med defensiv programmering ungefär som det med defensiv körning, genom att problem övervägs innan de uppstår. En vanlig metod för att försöka göra detta är genom att skapa kod som är avsedd att hantera alla möjliga scenarion. Programmerare försöker vanligtvis avgöra hur användare sannolikt kommer att ange input eller försöker använda programvara som kan ligga utanför förväntade parametrar. Användningen av defensiv programmering bygger på själva kodens grund, som är designad för att kunna hantera konstiga inmatningar utan att krascha eller stöta på en felhändelse.

Till synes i motsats till detta element av defensiv programmering, men välskriven kod måste sakna onödiga poster. Ju fler rader kod som ingår i ett program, desto fler möjligheter finns det att införa fel. Defensiva programmeringsmetoder uppmuntrar vanligtvis utvecklare att eliminera onödig kod och effektivisera program när det är möjligt. En balans måste därför göras mellan programmering som tar hänsyn till oväntade scenarier och kod som innehåller för mycket onödigt innehåll utan att ge en fördel.

Testning är en av de viktigaste aspekterna av defensiv programmering. Trots en hel del ansträngning för att säkerställa att koden är perfekt, missar utvecklare nästan alltid ett misstag eller skapar kod med oväntade resultat. Grundliga tester av professionella testare gör att en utvecklare har hundratals timmars produktanvändning för att hitta fel innan programvaran släpps.

Själva koden som skapas i defensiv programmering är också en viktig aspekt av denna process. Den ska inte bara effektiviseras så mycket som möjligt utan den ska också presenteras på ett tydligt och kortfattat sätt. Revisioner används ofta av en utvecklare för att granska kod som har skapats. Detta gör att andra programmerare kan se det arbete som har utförts, och läsbar kod är viktig för att detta ska vara en realistisk del av utvecklingen.