Vad är defensiv programmering?
Defensiv programmering är skapandet av kod för datorprogramvara utformad för att undvika problematiska problem innan de uppstår och göra produkten mer stabil. Den grundläggande idén bakom denna strategi är att skapa ett program som kan köra ordentligt även genom oförutsedda processer eller när oväntade poster görs av användare. Defensiv programmering förlitar sig ofta på en något paradoxisk kombination av att eliminera onödig kod samtidigt som man säkerställer tillräckliga mängder för att hantera alla möjliga användaråtgärder. Omfattande tester är också viktigt för denna process, liksom skapandet av programvara som enkelt kan granskas och kontrolleras.
På många sätt är begreppet defensiv programmering ungefär som för defensiv körning, eftersom problem övervägs innan de uppstår. En vanlig metod för att försöka göra detta är genom att skapa en kod som är avsedd att hantera alla möjliga scenarier som kastas mot den. Programmerare försöker vanligtvis bestämma sätt på vilka användare sannolikt kommer att mata in eller försöka använda programvara som kan ligga utanför förväntade parametrar. Användningen av defensiv programmering bygger på grunden av själva koden, som är utformad för att kunna hantera konstig inmatning utan att krascha eller stöta på en felhändelse.
Till synes i motsats till detta element i defensiv programmering, men välskriven kod måste dock saknas onödiga poster. Ju fler kodrader som ingår i ett program, desto fler möjligheter finns det att fel introduceras. Defensiva programmeringsmetoder uppmuntrar vanligtvis utvecklare att eliminera onödig kod och effektivisera program när det är möjligt. Därför måste balans uppnås mellan programmering som står för 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 stor ansträngning för att säkerställa att koden är perfekt missar utvecklarna nästan alltid ett misstag eller skapar kod med oväntade resultat. Grundlig testning av professionella testare gör det möjligt för en utvecklare att ha hundratals timmar med produktanvändning för att hitta fel innan programvaran släpps.
Koden i sig som skapas i defensiv programmering är också en viktig aspekt av denna process. Inte bara ska det effektiviseras så mycket som möjligt, utan det bör också presenteras på ett sätt som är tydligt och kortfattat. 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 gjorts, och läsbar kod är viktig för att detta ska vara en realistisk del av utvecklingen.