Я несколько оборонительный программист и большой поклонник контрактов Microsoft. Теперь я не всегда могу использовать C #, и в большинстве языков единственный инструмент, который у меня есть, это утверждения. Поэтому я обычно получаю такой код: class { function() { checkInvariants(); assert(/*...