Hva er defensiv programmering?
Defensiv programmering er å lage kode for dataprogramvare designet for å unngå problematiske problemer før de oppstår og gjøre produktet mer stabilt. Den grunnleggende ideen bak denne tilnærmingen er å lage et program som er i stand til å kjøre ordentlig selv gjennom uforutsette prosesser eller når uventede oppføringer gjøres av brukere. Defensiv programmering er ofte avhengig av en noe paradoksal kombinasjon av å eliminere unødvendig kode, samtidig som det sikrer at det genereres tilstrekkelige mengder til å håndtere alle mulige brukerhandlinger. Omfattende testing er også viktig for denne prosessen, i tillegg til å lage programvare som enkelt kan revideres og sjekkes.
På mange måter er begrepet defensiv programmering omtrent som defensiv kjøring, ved at problemer blir vurdert før de oppstår. En vanlig metode for å forsøke å gjøre dette er gjennom å lage kode som er ment å håndtere et eventuelt scenario som blir kastet på det. Programmerere prøver vanligvis å bestemme måter brukerne sannsynligvis vil legge inn input eller prøve å bruke programvare som kan være utenfor forventede parametere. Bruken av defensiv programmering bygger på grunnlaget for selve koden, som er designet for å kunne håndtere rare innspill uten å krasje eller møte en feilhendelse.
Tilsynelatende i motsetning til dette elementet i defensiv programmering, men godt skrevet kode må imidlertid blottes for unødvendige oppføringer. Jo flere kodelinjer som er en del av et program, jo flere muligheter er det for feil å bli introdusert. Defensiv programmeringspraksis oppfordrer typisk utviklere til å eliminere unødvendige kode og strømlinjeforme programmer når det er mulig. Det må derfor oppnås en balanse mellom programmering som står for uventede scenarier og kode som inneholder for mye unødvendig innhold uten å gi en fordel.
Testing er en av de viktigste aspektene ved defensiv programmering. Til tross for mye innsats for å sikre at kode er perfekt, går utviklerne nesten alltid glipp av en feil eller lager kode med uventede resultater. Grundig testing av profesjonelle testere lar en utvikler ha hundrevis av timers produktbruk for å finne feil før programvare frigis.
Selve koden som er opprettet i defensiv programmering er også et viktig aspekt av denne prosessen. Ikke bare skal det strømlinjeformes så mye som mulig, men det bør også presenteres på en måte som er tydelig og kortfattet. Tilsyn brukes ofte av en utvikler for å se gjennom koden som er opprettet. Dette gjør at andre programmerere kan se arbeidet som er gjort, og lesbar kode er viktig for at dette skal være en realistisk del av utviklingen.