Correct, Beautiful, Fast (in That Order) / Elliotte Rusty Harold
Emerging from the previous essay, I saw that this essay was going to be about verifying correctness of XML. My yawning muscles tensed in anticipation. But this essay was good. If you're writing an XML validator in Java, a tricky bit is: "The Java Character.isLetterOrDigit
and Character.isDigit
methods aren't perfectly aligned with XML's definition of letters and digits." Is it worth the processing time to use your own character-checking function?
Framework for Integrated Test: Beauty through Fragility / Michael Feathers
This essay is about a simple program that could have been made much more complicated. In some ways software engineers are like "real" engineers; one of those ways is: we over-engineer things. It's easier to write about adding things to systems rather than to write about leaving them out. What did you add to the system? You can write about that. What did you leave out of the system? Well, you left out millions of things. How do you write about that? This essay is about a simple framework that left out a lot of cruft.
Beautiful Tests / Alberto Savoia
I've already been won over to the cult of unit testing; I didn't learn much from this essay.
On the Fly Code Generation for Image Processing / Charles Petzold
Back in the day, we wrote self modifying assembly code. And by "we", I mean "not me". I didn't learn much assembly until I emerged from university. And by then, self-modifying code wasn't such a great idea anymore.
In this essay, Petzold shows how to apply the lessons of assembly code to... C# virtual machine instructions. I don't know much about C#, but it was fun to read how some bit-twiddlers are applying old tricks in a new environment to good effect.
Labels: book, programming, testing