53 of 53 people found the following review helpful:
5.0 out of 5 stars
Excellent!, February 7, 2001
This review is from: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects (Hardcover)
The book consists of three sections: a short introduction that outlines the problem space, a section containing a large collection of patterns, and a short final section that talks about weaving patterns into a pattern language and offers a few speculations as to the future of patterns.
The first section is quite short, but covers the problem space nicely and provides the motivation for what follows. The presentation is greatly helped by a case study for applying patterns to a concurrent web server; this illustrates how individual patterns can be used to solve particular problems and provides a practical perspective for how to make use of what is in the remainder of the book.
The second section constitutes the majority of the book and describes a large collection of network and concurrency patterns. Here is where the real meat of the book can be found, with 17 different patterns plus variants. There is something for everyone here, such as interceptor, reactor, acceptor-connector, etc. The patterns are presented clearly, with ample UML diagrams to support the extensive explanations. What I liked particularly is that the presentation is both complete and fair. For example, the double-checked locking pattern isn't just presented as a panacea for singleton initialization. Instead, you get explicit warnings about memory coherency issues, together with examples for how to deal with them, so you don't go and implement something and then wonder why it doesn't work...
The final section of the book shows how to connect patterns into a pattern language, such that each pattern nicely fits into a larger architectural whole. There is also some speculation as to where patterns might be headed next. (According to the authors, we are nowhere near having exhausted the topic.)
Overall, I was really impressed with this book. The text provides extensive references to existing literature, so if you are interested in learning about a particular topic in more detail, you'll find plenty of material for further reading. And there is an index that actually works (which is a rarity these days).
While the language is lucid, the book is probably not something you want to read in a single sitting. Instead, it's the sort of book you browse through, picking up interesting things as you go, and then referring back to them when you need more detail. (I read the book over a number of weeks, digesting a chapter at a time when it suited me.)
Overall, I highly recommend this book. While much of the content has been published previously, it's difficult to find elsewhere and not as up to date. Here, you get everything in one place, presented in a form that works both for learning and as a reference.
If you are interested in programming distributed systems, don't miss this--there is no other book that covers the ground anywhere near as well!
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
17 of 19 people found the following review helpful:
5.0 out of 5 stars
Tools you must have as a programmer and archtitect today, October 29, 2000
This review is from: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects (Hardcover)
I highly recommend this book! If you've ever wrestled with the varying idiosyncrasies of different operating systems' APIs, the gory details of network programming and/or the complexities of multithreaded programming, then you need this book. Even if you haven't yet and are just now getting into network and concurrent programming, then you will need the tools in this book. The writing style is very very easy to read even though it is tackling a complex subject. You can tell as you read it that it was written by programmers who have been in the trenches of network and concurrent programming.
Almost as important as the patterns presented in the core of the book, are the descriptions of the challenges one faces when architecting and writing concurrent and networked software. For me, getting a clear understanding of these exact challenges and difficulties simplified the entire task of distributed programming. Add to that the patterns themselves and I feel anyone who reads this will have a great deal of confidence and competence in concurrent and networked programming.
Each pattern is clearly laid out and includes real-life examples and sample code. Additionally, there are clear descriptions of how these patterns work together to solve real problems. I was able to put the patterns described in this book into immediate use in the large-scale industrial projects that I was and still am working on. And when I say I was able to put them to use, I mean not just sparingly but rather at the very core of the architecture I was building. I can honestly say that the use of the patterns and techniques described in this book has saved me hundreds of hours of time and headache! This book takes what has been, in the past, the skill of only a few programmers and provides you with tools to tackle the complex tasks of architecting and programming concurrent and networked software.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
8 of 8 people found the following review helpful:
5.0 out of 5 stars
Network programmer - This book is a must., March 6, 2001
This review is from: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects (Hardcover)
If your intention is writing a network, concurrent application, the book is both a place to start and the best reference when trying to design your application. It explains each pattern, the context, the problems, the solutions, how to implement, why do we implement that way, examples, variants of the pattern, the advantages and the disadvantages of each pattern, how to combine the patterns together, and more. The book is very very clear and understandable (many books lacks this important feature!). One I have read the book I was able to start and implement a concurrent Server. It is very clear that without that book it was hard to do so! There is no doubt that this book makes the concurrent programming simpler for both, beginners and advanced.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No