JBoss at Work: A Practical Guide
by Tom Marrs & Scott Davis
ISBN 0596007345
Date Read 4/2007
My Rating
Good overall book on how to deploy J2EE apps to JBoss. It follows a step-by-step approach (which at times might be annoying, but it does the job). Not much theory, though. If you want to learn how to deploy to JBoss, then this is a good book. Otherwise, a good overview of J2EE and Hibernate, but the examples are very basic. The advanced topics like clustering and session management are missing. So, if you are new to JBoss, and are looking to deploy a J2EE app, then this book will help you. For a more detailed treatment of JBoss and J2EE, look elsewhere.
Java Concurrency in Practice
by Brian Goetz
ISBN 0321349601
Date Read 3/2007
My Rating
Want to learn about synchronization in Java? Do you know what’s new in concurrency in Java 5/6? Not sure? Then this is the book for you.
This book introduces many new concurrency concepts introduced in the new versions of Java: Locks, BlockingQueues, Semaphores, Executors, Concurrent data structures and more (much more). There is a lot of new material, a lot of new topics. It’s actually a major overhaul. The authors do a very good job introducing them.
It’s not the most exciting subject, but the authors have tried to keep it interesting. This book has clear writing, simple examples, and good coverage on variety of topics. What else can you ask in a book on threads?
All in all, an excellent book: the best book on the threads in Java 5/6.
If you want to call yourself a well-rounded Java programmer, read this book.
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
by Gregor Hohpe, Bobby Woolf
ISBN 0321200683
Date Read 12/2006
My Rating
This is probably the best book on Enterprise Java Messaging. If that is what you desire.
This is not an easy book. I read it all, but I think to actually start implementing based on the patterns, I would have to reread portions of it. This book is loaded with patterns, some small, some larger. And it is a lot to absorb.
The only downside, for me at least, is that I have not worked on a messaging system before. It’s hard to put the information from this book into context.
If you’re working with JMS and Java messaging, you must read this book. On the other hand, if you’re just looking for enterprise patterns, like I was, I think there are other, more applicable books.
Java Servlet Programming, 2nd Edition
by Jason Hunter
ISBN 0596000405
Date Read 1/2007
My Rating
I should have read this book years ago. It’s an excellent book on Java servlets — a servlets bible. But it shows its age now. But even so, it’s still worth a read (while skipping some sections): it contains detailed knowledge about how the servlets work — information not found anywhere else.
Discussion about session management, servlet codes, servlet lifecycle, environment variables, and more: you can all find it in this book. To add, this book is written in a very good, easy to read style.
The Timeless Way of Building
by Christopher Alexander
ISBN 0195024028
Date Read 10/2006
My Rating
Excellent architecture book. From the pure architectural point of view, though. I was looking for more of a software design point of view. I did not find too much of it in this book. It was, nonetheless, a valuable read. Hey, I got to see what ‘normal’ architects go through, and what makes buildings live — you can find a lot of that in this book.
Few interesting points. All patterns have to work together to form a whole, to make the structure uniform. One bad pattern will start destroying it, and eventually it will.
This book is all about thinking in general terms — high level thinking. It’s very important when architecting — same is true when building software.
I also found something else interesting. In the last chapter of the book, the author says that you should throw away your ego. Once you “get” the pattern language, you should throw it away. When starting a new project, always start from scratch — blank piece of paper — and forget about all of the projects you did before. Only then you will create truly ‘live’ structures. Is this possible in software? In the age of frameworks, language dependencies, probably not.
Overall, a great architecture book; but not the software architecture book that I was looking for. (From what I find now, the second book in the series is more applicable to building software.)
Design Patterns (GoF)
by Ralph Johnson, Richard Helm, Erich Gamma, John Vlissides
ISBN 0201633612
Date Read 10/2006
My Rating
A classic.
I have read several books on patterns. This is the best. You’ll get sound design principles as well. You will become a better designer if you read this book. If you can finish it — you might want to take it slow…
This is not an easy book. I had tried reading it couple times but could never finish it. It was boring to me. I was getting distracted by the C++ code that this book has as sample code. But now, after finally reading it from start to finish, I can see that this book has great value.
This book is the definite guide to the most important patterns, the GoF patterns. These guys invented — or first reported — these patterns. Other books, which claim to simplify them and make them easier to remember (ie. Head First Design Patterns), don’t come close to this book. Some of them are helpful, though, and you might want to start with them before you read this book — learning patterns is hard.
There are several approaches in how you can read this book. The authors say you can just select a pattern you are interested in and just read it. I think the best way to read this book is to start with the indroductory chapter, which contains a lot of great advice on design in general; get to know the patterns referenced in these chapters; and then read one of the three major sections: creational, structural, or behavioral. The author refer to patterns in each section, so I think it’s good to read the whole section. It is also good to have other examples of the patterns to look at — you can find many by searching the web.
The GoF patterns are the most important and most widely used patterns. Every architect/senior developer needs to know them. This book is a must have.
Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
by Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal
ISBN 0471958697
Date Read 9/2006
My Rating
This is one of the best design patterns books. I am not the only person that’s saying that. Check out Amazon.com reviews, check out recomendations from Martin Fowler. If you’re into architecture, this is a must read. (As a side benefit, you’ll enjoy reading it.)
By reading this book, you’ll not only gain design patterns knowledge, you’ll get an excellent discussion about architecture in general, and a great OO design discussion.
This book is broken up into eight different sections. The three sections that I enjoyed the most (major part of the book) are architectural patterns, design patterns, and patterns and software architecture discussion.
In the architecture patterns section, the authors have an excellent discussion about the Layers pattern, the Broker pattern, MVC, and Presentation Abstraction Control. I especially enjoyed the Layers and the Broker pattern. (My understanding of the Layers pattern was a little different before reading this book.)
In the design section, I found the following especially valuable Whole-Part, Master-Slave, Forwarder-Receiver, and Client-Dispatcher.
The discussion about software architecture in general and about object-oriented design in chapter 6 is one of the best. It’s always good to refresh your mind how your project should be structured, the qualities it should have. Always valuable.
This is a must read if you’re into architecture and design. You will become better at it by reading (and implementing) the patterns cointained in this book. One of my most valuable books.
Patterns of Enterprise Application Architecture
by Martin Fowler
ISBN 0321127420
Date Read 8/2006
My Rating
Excellent patterns book. Written in a pragmatic language.
Fowler talks about patterns that relate to domain logic, remote services, data source and more. Even though you probably heard a lot of the patterns discussed in this book (if you’ve been following patterns), you will learn from this book.
Fowler presents the patterns in an interesting way. He tells you how he used it, what worked and did not work for him. He gives you a lot of insight, which in the pattern world, is very important I think as it gives you the context you can use the pattern. It’s good to see what problems he went through, the issues with the potential solution. This book gives you exactly that.
The book has two sections, the first, around 100 pages, is where he discusses the patterns and tells you when to use it. The section about layering the architecture is excellent. The overall section is quick to read. After reading this section, you basically read the whole book.
The second section is the pattern reference where all of the patterns are listed.
The best thing in the book is the author’s pragmatic language and very good, simple examples
This is an important book in my architecture/design library. I plan to re-read this book every year or so, in addition to having it on a side as a reference.
Programming Pearls
by Jon Bentley
ISBN 0201657880
Date Read 7/2006
My Rating
This is an important book, no doubt about that. For me, however, this was not an easy read. I never got into the book. Maybe my approach was wrong, maybe if the examples were written in a different language than C, maybe… I don’t know.
What I liked about the book is the principles that usually followed at the end of chapters. Those had the most value for me and those alone are worth reading the book.
Why do others give this book such a high rating? I think the real benefit is in trying to actually do the problems at the end of each chapter. I did not do them (and thus I probably did not gain too much out of it). Personally, I think they’re a little bit too low level. They’re very good if you’re trying to learn data structures and algorithms.
Object Solutions : Managing the Object-Oriented Project
by Grady Booch
ISBN 0805305947
Date Read 6/2006
My Rating
I love reading what Grady Booch has to say. He’s an authority to me. In this book, he gives a lot of good advice. He gives a lot of good information what OO should be like, not just projects but advice on how to do better OO design. That’s good stuff. This book, however, shows its age. The good stuff is mixed with at times “dry” information, boring at times. A better format of the book would help as well. Nonetheless, a valuable book to read.