<$BlogRSDUrl$>

Wednesday, January 11, 2006

Book Review: Framework Design Guidelines 


Or to give it it's full title, Framework Design Guidelines : Conventions, Idioms, and Patterns for Reusable .NET Libraries. Yes, it's a mouthful, but it's also well worth a purchase. Although it's generally focused on helping you develop public APIs (i.e. those that are going to be exposed to customers or other teams), it's also a superb reference if you just want to know the correct methodology behind many aspects of .NET development, such as the best method to use when handling exceptions for example.

Common to this book and the Standard Library Annotated Reference titles (also published by Addison Wesley) are the comments from developers, experts and the original authors of the .NET framework themselves, interspersed throughout the main text. These little gems help split the text up, give background details on certain features and can even describe how what ended up shipping was actually dead wrong in retrospect. They're in a conversational style that's refreshing and really aid the understanding of some of the topics. There's even disagreement at times, with annotations appearing one after another, weighing the pros and cons of particular approaches. There's always the danger that a title like this could feel overly prescriptive, but that's definitely not the case.

The main text is well written and the coverage of topics is just right. It never feels like a boring tome; instead there's genuine insight on the majority of pages with no fluff to speak of. The guidelines themselves come split into Do, Do Not, Avoid and Consider forms, where the first two are strong recommendations, Avoid describes gotchas and the Consider is a guideline that applies the majority of the time, but is looser than the others. The guidelines always have supporting code examples and, although I thought I was a reasonable .NET programmer, I found myself learning a great deal about how to code correctly against the framework and how to better design my classes, both internal and those that will get used by others.

The book also includes suggested naming conventions (which is always a near religious thing in developer circles, and which I found myself disagreeing with at many points), a sample API design for the .NET 2.0 Stopwatch class (which is great, but all too brief) and a bit of a pointless guide to FxCop, which feels a little like filler material. At around 300 pages, the book is accessible (i.e. you're not going to break your back hefting it around the office), but you're better off picking up the title from Amazon.com where it's significantly cheaper than getting it from the UK site (at $24 instead of a rip-off £28.50).

Completing the package is a DVD with code samples, the exact same Stopwatch API review (why?), and quite a few lecture videos from the people who wrote the book and other .NET luminaries like performance whiz Rico Mariani (who talks very fast, like it's costing him valuable cycles to include any space between his words), FxCop dev Michael Murray and Steven Clarke.

This one's a keeper: 5/5

Permalink

0 comments

Tuesday, January 10, 2006

Absolutely del.icio.us 

Although I had a brief play with del.icio.us before, I didn't really get it. A recent recommendation from a friend has given me the opportunity to reassess it, and I think I'm in love.

Unless you've been living under the proverbial rock for the whole of 2005, the site is a place where you can manage your bookmarks/favourites. You can import your own bookmarks or post new sites, then tag them with keywords of your choosing (if appropriate the site will present suggestions based on what other people have tagged that page with before). Having a central place to store your bookmarks is inherently valuable, but it's the openness of the place that is key to its success, because by default all your postings are public.

Tagging wins over hierarchical folders in a number of ways. Firstly, you can tag your site with as many keywords as you like, meaning that Penny Arcade goes naturally into 'games' and 'webcomics'. Secondly, you can quickly see what sites you've got listed under each tag by either surfing to http://del.icio.us/username/tagname, or by typing a tagname into the black-bordered box at the top of your bookmarks page. Want to see what everyone else has listed under the same tag? Just surf to http://del.icio.us/tag/tagname (so 'tag' acts as a meta-user). Finally, it opens up the notion of the collaborative web, with the ability to search for what other people have already added; sites with, say, the keywords of 'photoshop' and 'tutorial', those with 'recipe' and 'chicken', or maybe, if you're on the lookout to speed your laundry tasks, 'ninja', 'shirt' and 'folding' (no, seriously).

The whole site is fluid, thanks to AJAX behind the scenes - you get auto-complete as you're typing tags, can view your tags and bookmarks in variety of representations (including the cool tag 'cloud view'), and the interface never gets in the way. If only the owners fixed the speling mistaks on the help pages it would be perfect.

Permalink

0 comments

This page is powered by Blogger. Isn't yours?