Puolustava ohjelmointi on koodin luominen tietokoneohjelmistolle, jonka tarkoituksena on välttää ongelmalliset ongelmat ennen niiden syntymistä ja tehdä tuotteesta vakaampi. Tämän lähestymistavan perusajatuksena on luoda ohjelma, joka pystyy toimimaan kunnolla myös odottamattomien prosessien läpi tai käyttäjien odottamattomien syötteiden yhteydessä. Puolustava ohjelmointi perustuu usein hieman paradoksaaliseen yhdistelmään tarpeettoman koodin poistamisesta samalla kun varmistetaan, että kaikki mahdolliset käyttäjän toimet käsitellään riittävästi. Laaja testaus on myös tärkeää tälle prosessille, samoin kuin ohjelmistojen luominen, jotka voidaan helposti tarkistaa ja tarkistaa.
Puolustavan ohjelmoinnin käsite on monin tavoin samanlainen kuin puolustava ajo, koska ongelmat otetaan huomioon ennen niiden syntymistä. Yksi yleinen tapa yrittää tehdä tämä on luoda koodi, joka on tarkoitettu käsittelemään mahdollisia skenaarioita. Ohjelmoijat yrittävät tyypillisesti määrittää tapoja, joilla käyttäjät todennäköisesti syöttävät syötettä, tai yrittävät käyttää ohjelmistoja, jotka saattavat olla odotettujen parametrien ulkopuolella. Puolustavan ohjelmoinnin käyttö perustuu itse koodin perustaan, joka on suunniteltu kykenemään käsittelemään outoja syötteitä kaatumatta tai kohtaamatta virhetapahtumaa.
Näennäisesti toisin kuin tämä puolustava ohjelmointi, hyvin kirjoitettu koodi ei kuitenkaan saa sisältää tarpeettomia merkintöjä. Mitä enemmän ohjelmalla on koodirivejä, sitä enemmän on mahdollisuuksia virheisiin. Puolustavat ohjelmointikäytännöt yleensä rohkaisevat kehittäjiä poistamaan tarpeettomat koodit ja virtaviivaistamaan ohjelmia aina kun mahdollista. Siksi on löydettävä tasapaino odottamattomia tilanteita huomioon ottavan ohjelmoinnin ja liian paljon tarpeetonta sisältöä sisältävän koodin välillä ilman hyötyä.
Testaus on yksi tärkeimmistä puolustusohjelmoinnin osa -alueista. Huolimatta suuresta vaivannäöstä koodin täydellisyyden varmistamiseksi, kehittäjät menettävät melkein aina virheen tai luovat koodin odottamattomilla tuloksilla. Ammattitaitoisten testaajien suorittaman perusteellisen testauksen ansiosta kehittäjä voi käyttää satoja tunteja tuotetta ja löytää virheitä ennen ohjelmiston julkaisua.
Itse koodi, joka luodaan puolustusohjelmoinnissa, on myös tärkeä osa tätä prosessia. Sitä ei pitäisi vain virtaviivaistaa mahdollisimman paljon, vaan se on myös esitettävä selkeästi ja ytimekkäästi. Kehittäjä käyttää usein tarkastuksia luodakseen koodin. Tämän avulla muut ohjelmoijat voivat nähdä tehdyn työn, ja luettava koodi on tärkeä, jotta se olisi realistinen osa kehitystä.