"The Veteran - The first ten lines of any function, even an accessor, are all assert statements. All the error conditions for each function are dutifully checked and handled"
Even spent a couple hours tracing through a zillion code paths to reverse-engineer the implicit contract for a particular method? Do any clients explicitly check for the FooException which bubbles up the stack when Method A accepts null for an Integer value (fun with Java) and passes that null down into Method B which in turn, ....
I'll take overzealous assertion vs. the alternative of under-definition any day.
Even spent a couple hours tracing through a zillion code paths to reverse-engineer the implicit contract for a particular method? Do any clients explicitly check for the FooException which bubbles up the stack when Method A accepts null for an Integer value (fun with Java) and passes that null down into Method B which in turn, ....
I'll take overzealous assertion vs. the alternative of under-definition any day.