What are the assumptions made when code is written? Kuznetsov gives the example of a string
search - what should happen if the string contains wildcard characters like
square brackets or percent signs? You
could ban wildcards, or you could write code to handle them. But doing nothing will give you a wrong
result further down the line.
If you find a bug, look for it throughout your code - it
has probably slipped through before. Fix
problems pro-actively - it’s faster and easier than waiting for a problem to
occur, then troubleshooting and implementing the same bugfix.
He describes how upgrades can screw up older code - code
that works perfectly when using the read_committed isolation level may fail to
work if someone turns on the new read-committed-snapshot option. There’s not much you can do about things that
Microsoft haven’t released yet, but when they do happen you have to check their
implications and change existing code.
I’m reading this as an eBook and it is hard to follow the
sample code, but it repays a bit of effort.
The key lesson is that it’s better to spend your time planning your code
upfront than fixing cockups later.