I’m starting to move away from Law-of-Demeter-esque TDD unit testing, and towards Michael-Feathers-style inflection-point testing (regardless of whether it’s legacy code or not). And why? My work on very fine-grained objects in Kew has prompted some changes in my thinking.
Software development is fast becoming a configuration activity (“plumbing” as I like to call it), with many simple applications requiring very little true programming. There’s nothing fundamentally wrong with this “plug it together” approach - it’s been working well for Unix scripting for 30 years - and we should be happy that we’re getting this level of relatively easy reuse.
I recently had a tip from Nat Pryce about a weird control construct from HScheme: call-with-result. It passes into a function an argument which is its own result. Erm, okay. Let’s just think about that for a second. It solves the “chicken and egg” problem of creating mutual references between objects - something you’re normally forced to use setters for. We can use something like this to get better encapsulation.
In September 2003 some friends and I went on a Via Ferrata climbing holiday in the Italian Dolomites. We experienced lightning “up close and personal”….
Via Ferrata are scrambling- and climbing-grade routes, mostly at high level, protected by fixed metal cables attached at regular points to the rock. The cable is what makes it a Via Ferrata - Iron Way.
Some of my best thoughts come to me in the bath in the mornings, though I’m not claiming this is one of them. This morning I was thinking about blogging, and the uses people put it to. Somehow my mind wandered back to a TV show from the 1980s: “Doogie Howser, MD”.