Emergent Design Book Preview Available

While reading Joel On Software, I found a link to a website with a draft of a book called "Emergent Design" by the same authors who wrote "Design Patterns Explained". Some chapters are still to be added, but the existing material there is very interesting reading, especially chapter 3, which covers "Coding Principles".

If you were to apply this to the internal architecture of something like, say, umbrello, you can see why it would be very difficult to write any unit tests for the code. The classes in that application are very much linked together. For example, lower level classes send signals to indicate state changes to upper level classes. In other words, the coupling is too tight. It makes it very hard to test a class or group of classes in isolation.