October 2004
Intermediate to advanced
240 pages
6h 22m
English
Be assertive! Use assert or an equivalent liberally to document assumptions internal to a module (i.e., where the caller and callee are maintained by the same person or team) that must always be true and otherwise represent programming errors (e.g., violations of a function’s postconditions detected by the caller of the function). (See also Item 70.) Ensure that assertions don’t perform side effects.
It’s hard enough to find an error in your code when you’re looking for it; it’s even harder when you’ve assumed your code is error-free.
—Steve McConnell
It is hard to overestimate the power of assertions. The assert macro and alternatives such as compile-time ...