Currently reading

Just before I dive back into my other project, the one I don't talk about, I thought I'd post a short note about the pile of books that I'm currently reading...

Working Effectively with Legacy Code by Michael C. Feathers. Roy Osherove has this as his book of the month and I'd previously read some of Michael's writings on testing and found them useful. The book's great. If you ever have to work with the kind of code that I wrote about at length as 'the refactoring project' then this book is for you. Michael presents methods for getting horrible legacy code into a test harness and does it in such a way that you have no argument for not following his advice. Chapters such as "I Don't Have Much Time and I Have to Change It", "I Can't Get This Class into a Test Harness" and "I Need to Make Many Changes in One Area", show you how to get some tests into the the code and start making things better. I'd recommend this to anyone who's working on legacy code, and as far as Michael's concerned any code without tests is legacy code.

Mastering Regular Expressions by Jeffrey E. D. Friedl is a book that I really should have read a long time ago. I've managed to avoid regular expressions in the past and I recently realised that I should stop avoiding and start understanding - thanks to Filip for guilting me into that when he laughed at my pathetic efforts at manual search and replace in the VC IDE a while back. I haven't got very far with the book yet but already the introduction has confirmed that I'm right in needing to know more about what should be a powerful tool in my toolbox.

Undocumented Windows 2000 Secrets: A Programmer's Cookbook by Sven B. Schreiber. A while back I was looking for some information on CodeProject and this book came up as a reference. I did some more searches and people were raving about the book but unfortunately it is out of print and hard to come by. I found a copy on's marketplace for a slightly scary price (a lot less scary than the price over on now) and decided to get it anyway. It only arrived last night but from a quick skim through it looks like it will be a good one...

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth S.) by David Abrahams and Aleksey Gurtovoy. As I've said before, I'm not currently clever enough to use this complicated template metaprogramming stuff. I'm reading the book to become clever enough.

And finally...

Code Noir by Marianne De Pierres. Cyberpunk in future Australia. Guns, girls, motor bikes and helicopters, who could want for more?


Amazing! You picked two books I've read, and two I'm desperate to read. Oh, and some fiction I don't care about ;-)

The only downside of "[...] Legacy Code" is I find myself writing new code using patterns from the book intended to put crap code in a testable state. I guess that says more about my design talents than about the book, though...

"Mastering Regular Expressions" is well worth the read. I read it to get a better grasp of how it works and how it's useful, and it's slightly more detailed than that, but still in an easily digested style.

Let me know if you want to sell "Undocumented [...]" cheap when you're done with it ;-)

- Kim

That's the point of the fiction :)

The Legacy code book is one of those I wish I'd had a year or two ago. I spent ages on my refactoring project discovering this stuff all on my own; if I'd had the book then I'd have moved much faster and, almost as importantly, had something heavy to hit the other guys and management with.

The Regex book is something I need to read. I feel I've missed something by not having a 'proper' CS education, so I need to fix it.

I was planning on keeping "undocumented" to sell when I retire ;)

Leave a comment

About this Entry

So, where's the Unix version of CodeProject? was the previous entry in this blog.

Another day learning the Linux way... is the next entry in this blog.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing