One of my favorite writers has now published a new article on “Leaky abstractions”. I am talking about Joel Spolsky of the Joel on Software fame. This articles talks about how abstractions are not foolproof and often leak. Here is a small part of the article:
There's a key piece of magic in the engineering of the Internet which you rely on every single day. It happens in the TCP protocol, one of the fundamental building blocks of the Internet.
TCP is a way to transmit data that is reliable. By this I mean: if you send a message over a network using TCP, it will arrive, and it won't be garbled or corrupted.
We use TCP for many things like fetching web pages and sending email. The reliability of TCP is why every exciting email from embezzling East Africans arrives in letter-perfect condition. O joy.
By comparison, there is another method of transmitting data called IP which is unreliable. Nobody promises that your data will arrive, and it might get messed up before it arrives. If you send a bunch of messages with IP, don't be surprised if only half of them arrive, and some of those are in a different order than the order in which they were sent, and some of them have been replaced by alternate messages, perhaps containing pictures of adorable baby orangutans, or more likely just a lot of unreadable garbage that looks like the subject line of Taiwanese spam.
Here's the magic part: TCP is built on top of IP. In other words, TCP is obliged to somehow send data reliably using only an unreliable tool.
I have written about NUnit and how it really helps you to create quality code by automating unit testing. There is now a new project in SorceForge, which provides a VS.NET adding for NUnit. This allows you to create and run tests from inside the VS.NET IDE.
So use the Addin and don’t forget to read the article