Thursday, November 04, 2004

Review of Java Reflection in Action

Java Reflection in Action from Manning by Ira R. & Nate Forman is a fine book with materials of interests.

I particularly like two points.

The first one is articulating the topics with a case based approach. Case study has already been proved to be an effective way of teaching practices-related subjects, and is the standard model in business and management education. It is my personal belief, based on experience in industries, that the software architecture discipline has great similarities with business and management. Both of them have a set of generally followed principles and have a well-known set of tools for diagnosing problems and communicating ideas. However, those principles and tools are only a small portion of a practitioner’ portfolio. To be successful in real-life situation, practitioners have much more to learn, among those, the most prominent one is generally labeled as experience. The best way to learn from others’ experience in business and management is through case study. I think the same approach applies to software architecture experience learning. Design pattern is a hot topic in the community of software developers. We usually think the idea of design pattern was originated from the building architecture industry (particularly, Alexander’s book). This may be the actual case. However, design pattern is really just cases in software design, and I think looking design pattern from the case study point view can be more inspiring. At the minimal, we will benefit a lot form the experience gained in management schools for the past several decades in applying case approach of teaching. Of cause, design pattern is only the lower end of software architecture. Case approach can utilized to effectively transfer the whole spectrum of software architecture experience. While it is obvious that the publishing industry and authors are struggling to find the right approach to communicate software architecture experience, I would love to see more books on this topic to come in an explicit case study manner.

The second point I like this Java Reflection in Action book is its discussion on applying Amdahl’s Law in evaluating performance consequence of a software techniques. Frankly speaking, experienced developers all know well the ideas underlying Amdahl’s Law. But it is certainly amazing to have such a rigorous formula to help decision-making for an issue which developers face everyday. In his extreme programming book, Kent beck used Black-Schole formula in financial derivative valuation to discuss dynamics among various concerns in software project management. It was an interesting usage and appealed well to readers who are fond of mathematics. Amdahl’s Law is more essential to the performance issue discussed in this book than Black-Schole to project management.

Classloader is arguably not a topic on reflection. The authors have a chapter on classloader in the book. This chapter is weak, and a good discussion on classloader should be put in application development context, and should explore classloader issues in web and application servers, and mention its usage in JMX etc.. Also, the two chapters on class constructions are really about developing a small tool of class transformation. There are a lot of codes and explanation on codes. It will be much better if the exploration is more on issues.



0 Comments:

Post a Comment

<< Home