Experienced coders got experienced by repeating two things: look at other’s code and coding themselves. There is lots of good sample code available in form of opensource products; however, getting concepts presented in a structured and commented fashion can be very comfortable.

Ted Faison’s Event Based Programming does just that – it is a book that looks at event based programming. For all those new to the matter, event based programming is an object-oriented form of system design (you need classes) that is geared at maximum reusability and easy maintenance by removing direct calls between objects. Instead, objects call one another via function pointers initialized by builders and binders.

The book starts off by looking at coupling – what coupling is, what kinds of coupling there are and how coupling affects the system. The treatment is a bit mathematical sometimes, but very interesting nevertheless.

After that, the book moves on to event mechanics – how do I deliver events, what kinds of payload can I use, how do I send and receive events best. The treatment is very interesting and helpful. The last chapter of this part of the book contains a look at various commercial systems – good reference material, reading value rather low.

The remaining two parts about event diagramming and functional roles and patterns were excellent. Nothing to say here except very well done.

3 worked examples accompany the book – I skipped over those, as my C# and VB.NET skills were not enough to decipher them and as I also felt that there is little to benefit from looking at them.

The example code in the chapters was understandable for me(C#), my prior VB 6 experience also was helpful for deciphering the VB.NET stuff. However, you don’t need to understand all the example code to benefit from this book – every concept is also explained textually and graphically!

Event-based programming is easy to read – it makes a good book for reading in-flight or in bed.

Overall, this book was a great read. While the concepts learned here can’t be directly applied to my C programs(as in cut and paste), the process of going over them mentally has made me a better programmer and system designer. Last but not least, I enjoyed thinking through the various “edges” – if you like interesting system architectures, get this book by all means(42.95$ at Amazon’s).