My Book Club of One
Wow, it’s been a while since I’ve posted here – my deepest apologies. I usually try to aggregate all the things I want to talk about into one blog post but that tight coupling has delayed some topics that otherwise needn’t be. Therefore to keep you all current with all the bound processed tree carcass (some people call them “books”) I’m using to get me through my morning/evening commute I’m decoupling my book-related post from my normal rants about programming philosophy.
In my last post I mentioned that I’d just started “Patterns of Enterprise Application Architecture” and planned to read “Refactoring” after that. I have since read them both and at least 1.5 others. I’d actually started my next post when I finished Patterns but due to the aforementioned coupling it never saw the light of day.
After Refactoring I decided to finish another book that I’d skimmed “The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity” by Alan Cooper. The book makes a lot of good points about the fundamental disconnect between the mental models of the end users and software developers (I know I’ve been guilty of projecting my own level of comfort unto my users). The book makes a strong case for the need of “Interaction Designers” and “Goal-Directed Design”. So much so that after finishing it I went and grabbed a copy of “About Face 3: The Essentials of Interaction Design” by Alan Cooper et al. While I’m still reconciling some of the principles of Goal-Directed Design with Domain-Driven Design (and Test-Driven Development, Object-Oriented Programming, Service-Oriented Architecture, and several other acronyms) About Face reinforces the arguments made by Inmates and really brings to light some of the dunderheaded user interaction decisions we programmers can make. I’m on page 439 of 567 and should finish the book by the end of this month.
On a related note while trying to internalize the principles of interaction design laid out in the later part of About Face (the first part deals with the GDD process) I’m becoming more excited about the opportunities WPF has for revolutionizing the way we write user interfaces beyond simply making buttons with buttons inside of them or animated gradients. I’m actually getting pretty good at making really bad WinForms UI in WPF now – I can throw together in an hour what would have taken me half the time in WinForms and looked twice a good. As I get more into it I’ll be sure to share my experiences.
Also, conveniently in conjunction with the release of the ASP.NET 3.5 Extensions Preview, and a particularly nasty WinForms UI migration project I think Model-View-Controller is finally starting to click for me. Now there are thousands of articles online about MVC – sadly the vast majority of them are about web applications or Smalltalk. The pattern is mentioned in several books I’ve mentioned here but every description I read about it is different, shallow, and usually leaves me no clearer than before. For this reason MVC has long been listed as my #1 most irritating and arcane software pattern. Fortunately a recent lecture at the Chicago .NET User Group shed a little light on Microsoft’s ASP.NET implementation (which doesn’t thrill me that much) which serendipitously clicked something into place for me as a WinForms dev – “The Controller is Invoked First”. This re-orientation solidified some things for me. Talking about separating domain logic from presentation logic isn’t anything brand new to me so articles which present MVC that way always miss the mark for me. In fact a co-worker has failed on several occasions to see the distinction between some MVC models and “Data Binding” understandably.
I only had this epiphany around 4pm on Friday and I’ve been occupied since then assembling furniture for my apartment so sadly no code to show today. But as I play with what’s spinning around in my head I’ll be sure to share. In the mean time I’m watching the “Architecture of Modern Desktop Applications in .NET” webcast series by Professor Joe Hummel. This isn’t Prof. Hummel’s first series with MSDN and I found his VB series invaluable when I was first transitioning to VB.NET from VB6. This webcast certainly touches on MVC and specifically the application of MVC to desktop/WinForms/Smart Client applications. I recommend his series highly.
As for the book club – I’m not really sure what I’ll be reading next. I think it’s time I picked up a good book on WPF and really got my hands dirty. It presents a significant learning curve but I’ve heard only positive comments about it from people who “have made the transition”. I know it sounds like a cult but from what I know now about user interfaces, and user interaction principles I can see a lot of potential in WPF. Windows Forms is a great and productive platform but it pushes a certain style of UI development and leaves you dangling for some of the less generic and more controlled scenarios whereas WPF seems to have a lot of hooks for some very advanced styles of programming. Regardless, if I do read a book on WPF it will have to be in parallel with a non-techie book; in anticipation of StarCraft 2 I’ll be reading “StarCraft: The Dark Templar Saga: Firstborn” by Christie Golden. Word on the street is that this trilogy sets up a number of important plot points for the final StarCraft 2 campaign and as a total SC junkie I’m compelled to read this.
TTFN,
Anthony D. Green
January 27, 2008
·
Anthony D. Green ·
No Comments
Tags: books · Posted in: Uncategorized

Leave a Reply