Click here to Skip to main content
15,880,608 members

Survey Results

Do you do defensive programming?

Survey period: 14 May 2012 to 21 May 2012

"Defensive programming is ... intended to ensure the continuing function of a piece of software in spite of unforeseeable usage of said software". ie provide air-bags and ABS for your code. (suggested by the enigmatic V)

OptionVotes% 
Yes, I use defensive programming always19316.67
I use defensive programming mostly51044.04
I use defensive programming rarely19817.10
No, I don't use defensive programming design595.09
I have no idea of what you speak.19817.10



 
GeneralDefensive Mostly Pin
JackDingler14-May-12 7:32
JackDingler14-May-12 7:32 
I guess I don't quite know what defensive programming is then...

A few things that I think are good defensive programming practices are...
1. NULL checks on pointers.
2. Limited use of stack buffers, and bounds checking when used...
3. Use the const operator for reference passing, to avoid accidental writes to objects.
4. Comments when the operation of a method is opaque.
5. Make data members protected or private unless there is a good reason not to.
6. Make all unsafe methods protected or private. If they need an interface, make a public one that provides some validation of the inputs.


I've been criticized by some in using const references to pass objects. I'm told it's an optimization. Instead, I should copy objects on the stack by default. But that seems to me, to be bloatization, as a default reference point. It certainly can bring a server to it's knees if it's used as the default practice.
GeneralDefensive vs. Protected Pin
SASS_Shooter14-May-12 7:13
SASS_Shooter14-May-12 7:13 
GeneralI have no idea of what you speak Pin
CPallini14-May-12 6:39
mveCPallini14-May-12 6:39 
GeneralDefensive = secure Pin
ed welch14-May-12 6:22
ed welch14-May-12 6:22 
GeneralDefensive, but not too defensive Pin
Nemanja Trifunovic14-May-12 4:43
Nemanja Trifunovic14-May-12 4:43 
GeneralNever developed a software with granted foreseeable usage... Pin
AlexCode14-May-12 2:50
professionalAlexCode14-May-12 2:50 
GeneralRe: Never developed a software with granted foreseeable usage... Pin
RedSonja14-May-12 20:51
RedSonja14-May-12 20:51 
GeneralRe: Never developed a software with granted foreseeable usage... Pin
AlexCode14-May-12 21:15
professionalAlexCode14-May-12 21:15 
GeneralRe: Never developed a software with granted foreseeable usage... Pin
RedSonja14-May-12 21:51
RedSonja14-May-12 21:51 
GeneralRe: Never developed a software with granted foreseeable usage... Pin
AlexCode14-May-12 21:58
professionalAlexCode14-May-12 21:58 
GeneralSaid yes to defensive programming but... Pin
PedroMC14-May-12 1:28
PedroMC14-May-12 1:28 
GeneralNo choice Pin
RedSonja14-May-12 0:32
RedSonja14-May-12 0:32 
GeneralRe: No choice Pin
MichP14-May-12 8:36
MichP14-May-12 8:36 
GeneralRe: No choice Pin
RedSonja14-May-12 20:36
RedSonja14-May-12 20:36 
GeneralWhen given the time PinPopular
chriselst13-May-12 23:53
chriselst13-May-12 23:53 
GeneralRe: When given the time Pin
Slacker00714-May-12 0:14
professionalSlacker00714-May-12 0:14 
GeneralRe: When given the time Pin
PedroMC14-May-12 1:36
PedroMC14-May-12 1:36 
GeneralRe: When given the time Pin
chriselst14-May-12 1:40
chriselst14-May-12 1:40 
GeneralRe: When given the time Pin
PedroMC14-May-12 1:49
PedroMC14-May-12 1:49 
GeneralRe: When given the time Pin
chriselst14-May-12 1:54
chriselst14-May-12 1:54 
GeneralRe: When given the time Pin
Fabio Franco14-May-12 10:15
professionalFabio Franco14-May-12 10:15 
GeneralWe have many defensive programmers. PinPopular
mojp13-May-12 23:16
mojp13-May-12 23:16 
GeneralRe: We have many defensive programmers. Pin
jim lahey13-May-12 23:50
jim lahey13-May-12 23:50 
GeneralYes, I do Pin
Prasad_Kulkarni13-May-12 22:42
Prasad_Kulkarni13-May-12 22:42 
GeneralRe: Yes, I do Pin
AlexCode14-May-12 21:26
professionalAlexCode14-May-12 21:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.