Book Review: Programming Flex 3
Because I have the opportunity to take mass transit to work (and it's awfully convenient), I have about an hour or so to read each work day. I spend that time either reading the magazines to which I subscribe, the occasional novel, or technical books. As a result, I read quite a few technical books each year. It sounds thrilling, I know, but it's a great opportunity to expand my knowledge base, especially in areas where I'm not getting to do a lot of day-to-day work. I just finished another in a line of books about Flex.
Programming Flex 3 by Chafic Kazoun and Joey Lott is a rich and comprehensive guide to developing Flex 3 applications with many details about developing Flex applications that are left out of other books and publications. From the start, with its close look at the application startup sequence and how to manipulate that sequence, you know that you are in for a book that's thorough in every aspect of Flex application development.
One of the great strengths of the book is that the authors demonstrate both the MXML and ActionScript versions of the same framework features, where possible. This allows those new to the whole idea of XML-based declarative development the opportunity to see how things work while giving those who want (and will shortly need to) dig deeper the opportunity how the same tasks are achieved in code. The one startling omission from this approach is the <mx:RemoteObject> tag, about which the authors say "Because we have found no practical use for RemoteObject, we are omitting any discussion of RemoteObject in this chapter." I suppose that they made this statement because putting a RemoteObject tag in your MXML conflates the model (and remote data processing) with your view, which isn't good practice, but their statement seems quite severe.
While the authors demonstrate their mastery of the details of Flex and manage to explain even relatively complex concepts (such as the Flex component lifecycle) in a clear manner, the book does feel a bit bit haphazard. Very advanced topics are mixed in with introductory topics. I realize that this is done so that if you write a chapter on CSS and fonts in Flex, you cover every angle of it, but those new to Flex will find themselves getting in very quickly over their heads in each of the book's chapters. Everything is explained quite clearly, but it ends up feeling a bit random.
I'm a big proponent of context while learning. I've been to far too many trainings and read far too many books where you cover feature after feature without tying those features back in to a big picture. Being able to answer how to solve an application development problem with a particular tool is as important as knowing the extensiveness and details of a toolset. While the authors do introduce a "sample application," it's at the end of 605 page book. Although it can be limiting (because you can only write so much and publishers have limits on the number of pages they'll print), sometimes having an application you build along the way to demonstrate the concepts covered can be extremely useful.
But this is an O'Reilly book and as such, the audience may be more inclined to use it as a thorough, comprehensive reference, which it is, than a getting started book.
