Hugh Sasse <hgs / dmu.ac.uk> wrote:
> On Thu, 12 Oct 2006, Eivind Eklund wrote:
>
>> Invariant checks ("Design by Contract"), mostly.  Adding invariant
>> checks to your system will often unearth weird cases - making them
>> easily reproducable and making them fail early.
>
> Yes, this is something I need to know more about.  In Programming
> Pearls I've seen lots of mention of invariants, e.g. for loops,  but
> though
> I think I understood what was being said, I found that I didn't 'grok'
> the statements deeply.  I think I need to understand more about how to
> think in this way.  Some of this is probably covered by "What could
> I put in an assert statement that would always succeed (for this loop
> or whatever", but I suspect the concept runs deeper.

I found Bertrand Meyer's "OO Software Construction" provided a lot 
interesting insights in this area and others as well.  It's a large book and 
it also covers Eiffel "along the way" but BM definitively has strong 
opinions and well thought out positions that are worthwhile to consider - 
even if you do not agree to all of them.  I found the read very fruitful.

Kind regards

    robert