This week's book giveaway is in the Java in General forum. We're giving away four copies of Beginning Java 17 Fundamentals: Object-Oriented Programming in Java 17 and have ishori Sharan & Adam L Davis on-line! See this thread for details.
<pre>Author/s : Martin Fowler, et al Publisher : Addison Wesley Category :Design Patterns, UML, and Refactoring Review by : David O'Meara Rating : 9 horseshoes </pre> It's a patterns book, it's by Martin Fowler, and it's good. But how good is it? It is actually two books in one. This is discussed in the book, but the second half is a list of patterns including the information required to make them useful. Reasonably standard, except that the patterns are presented in a language neutral manner that gives Java developers a view into the .Net world and vice versa. The best part is still the first section. There is a general discussion on enterprise applications including common problems and ways to solve them depending on the way it shows up in your application. Not all of it will be new to everyone, but I'd challenge anyone not to learn anything. Even if you don't agree with all the solutions posed, it has very concise coverage of the problems. There appeared to be the assumption of a respectable level of experience in the reader, so the book may not be useful to programmers with less than 3-5 years under their belts. This isn't necessarily a down side, but it should be considered if you're considering purchasing the book. Now a small complaint. Although the first section was great, it discussed the patterns from the section in too much detail. There were some patterns I wasn't familiar with and some that I knew by different names, and it made some sections confusing. Still well worth a place on the shelf.
<pre>Author/s : Martin Fowler Publisher : Addison-Wesley Category :Design Patterns, UML, and Refactoring Review by : Junilu Lacar Rating : 10 horseshoes</pre> Simply put, you can't go wrong with a Martin Fowler book and this one is no exception. If you climbed the mountain to get advice from the IT guru at the top, he'll probably quote from this book. Born on the web and rarefied by reviews and discussions with Fowler's colleagues and peers, including JavaRanch bartender Kyle Brown, this book is full of ideas that will help you make decisions related to enterprise applications architecture. Writing in the same easy-to-read style as his past works, Fowler presents over fifty patterns that are mainly focused on layered architectures. And while Fowler readily admits that none of the ideas are new, developers, experienced or otherwise, will nonetheless benefit from the collective wisdom and experience of Fowler and all who contributed to the book. To get the most out of this book, be sure to read the introductory chapters and understand the author's intent. There are many code examples, mostly in Java with a few in C#. I doubt though that you can use the code without some sort of tweaking; they are all meant to show the core of the pattern. Ultimately, you have the best understanding of your requirements and you have to make the decisions that affect your application's architecture. To paraphrase Fowler, don't use the examples as glorified macros but as a way to stimulate your own thinking. And believe me, this book has more than enough to get you thinking.
Douglas Graham wrote:Would this book be a good place to start trying to understand Web app architectures of today, 2009? Do you think it would be outdated?
Definitely not outdated. I use it all the time as a reference manual (the second half of the book) all the time. The concepts are all pretty much universal and the way it is written - as language neutral - helps provide staying power not just as the languages change, but also as the underlying technologies do.
A lot of the frameworks used today are applications of one, or several of the patterns described in the book. So one of the things you can gain by reading the book is to gain an appreciation of what the frameworks do, why they do it, and which ones make the most sense to use (if any) in your situation.