from Wiktionary, Creative Commons Attribution/Share-Alike License.
- initialism software, design Initialism of
design by contract.
Sorry, no etymologies found.
I'm not an DbC evangelist or something, I have just dipped my toes in it, and I do see many advantages with using this - and I am not saying that this should be used instead of unit testing - but I am saying that it fits nicely with TDD as you can start by specifying the contract and then improve the code until it doesn't fail anymore - just like Red-Green testing.
DbC doesn't replace unit tests - but neither does the opposite.
The main purpose of DbC isn't simple type checking ..
I believe I covered that in one of my previous posts, but yes, the term did originate there and the Eiffel language was the language used to implement the constructs of DbC.
The intent of DbC and using contracts, your program must never try to verify the contract conditions and instead fail hard, with the contract verification being your safety net.
Enough though of the talk about DbC and Domain Driven Design, let's actually walk through an example of how to work these in conjunction together.
Some of these techniques include Aspect-Oriented Programming (AOP), AspectJ Design Level Assertions (DLA's) and Design by Contract (DbC).