登録情報
|
類似した商品から提示されたタグ(詳細)関連タグ(この商品に近い関連キーワード)を追加する++最初のタグになります
|
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!
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.
|
|
|