I'm not sure if it has been written down anywhere, but the original FDD project strongly believed in defensive coding techniques such as validating all parameters on entry to a method and the throwing of an exception for invalid parameters.
Recently, the trend towards test-driven development has pushed developers towards an "I don't need defensive code, it just slows the runtime performance. I can catch all my errors with my JUnit"
I'd like to solicit opinion on this from the community. I haven't made up my own mind on it and I'm open to suggestions.
Is test-driven development a replacement for defensive coding standards enforced at code reviews? Comments please...