Compras Nikon Bluetooth |
Part 1 provides really good introduction into AOP. This is the first book I have read on AOP; all stuff I have seen before was online or magazine articles. One interesting fact is that this book took a while to consume, compared to the usual two-week cycle I have for technical books. I guess the reason is that the book has more substance than most of the techincal books and Mannigs does not try to pad their books with API references and other stuff that can be easily found online. After the chapter goes through AOP concepts, it explains AspectJ in application to those concepts. Basic syntax as well as some advanced techniques are explained.
Part 2 has examples of basic applications of AspectJ. Of course it starts with the mandatory logging implemented using AOP. Not a very good example in general, since logging is not really a cross-cutting concern, but works for illustration purposes. Other two application areas discussed in this part are implementation policy enforcement and optimization (pooling and caching examples). Policy enorcement part is really interesting, especially if you are into call patterns.
In general, every part follows the same pattern: first the author discusses the conventional approach, then explains challenges of the conventional solution, provides AspectJ-based solution, and gives one or two examples. Very clean language, easy to follow.
Part 3 discusses advanced applications of AspectJ. First it delves into design patterns and idioms of AOP; it's not by any means AspectJ-specific, so would be useful for any AOP implementation. Examples of patterns are providing thread-safe implementations using AspectJ, implementing security (very interesting discussion on JAAS), transaction management, and implementing business rules using AspectJ. The part ends with AspectJ usage in different development phases.
Two appendices: description of AspectJ compiler and Ant integration - only 15 pages for both. Useful as a reference.
Overall impression: an excellent book. Definitely worth reading, even if you are not into AOP yet.
AOP seems to have come of age and this book is excellent resource to come upto speed.
The book is divided into three parts.
The first prat introduces AOP, why AOP and about AspectJ in a very easy to understand manner. Best intro I have ever read.
Then it introduces the syntax of AspectJ
Second part introduces more advanced techniques and makes you really good at AspectJ.
Third part of the book is a real gem. Here you find, excellent and practicval uses of AOP in every day scenarios.
I am currently reading this part now and I feel confident talking to my boss to start using AOP at work.
A must read for anyone wanting to study AOP
Chapters five through to the end apply AOP to various problems within Java application development, starting with logging (of course, the AOP perennial favorite.)
On the downside I would have liked to have seen more information about where AOP is being used in production today. I'm not sure what the timing of the release was, but it would have been nice, if possible, to have had material on the use of AOP in JBoss.
I have not read the other books on AspectJ, so I cannot provide a comparison of them. Even so, I have to say that if you are into AOP, or more importantly, looking at AspectJ, then I think you have to look at this book.
(Full disclosure: I am a Manning author but I in no way allow that to effect my reviews.)
You might run into some huddles while working with AspectJ in IDEs, such as OutOfMemory problem, although ANT approach works very well. But that is a growing pain of any new technology.
"I can only show you the door. You have to walk through it."
--From Matrix.
The author surely did that.
Going further Ramnivas uses real-life examples to show step by step how to use Aspects in your daily work. He explains how to transform a pure Java based solution to a cleaner, more structured AspectJ solution. The reader can see that the AspectJ solution is more elegant and can always understand how Ramnivas came to his solutions. Ramnivas explains this for cruicial topics most developers have to face, for example logging or thread safety.
Special bonus is the chapter on aspect design patterns. Ramnivas shows four design patterns, that don't exist in the non-AOP world. They are quite useful in AOP, though, and AFAIK there is no other source for this important information.
"AspectJ in action" is a book for beginners as well as for advanced AspectJ programmers. It is well written and easy to understand. The real-world examples allow you to transfer the solutions on a 1:1 basis to your project and thus try in real life how aspects work for you.
We can predict everything, except the future.
Imagination is more important than knowledge.
-- Albert Einstein