Rating: Summary: Get it. Read it. Use it. Review: I bought this book after attending a conference and meeting Uncle Bob himself. If you ever have the chance to see Bob in living color (and remember to ask him why we see the colors we do) don't pass it up. In order to get the most out of this book you need to be open to his philosophy and have some experience. I say this, because I feel it's only after you can say to yourself "I know exactly what you're talking about", or in my case, "Geez, I'm guilty of that", that you understand the principles Bob is trying to get across and the applicability, or lack there-of, of patterns.Bob does an excellent job of setting up the material and then showing an example (a believable one at that) of how to apply the concepts. For example, he will introduce a set of patterns and then provide a case study that applies those patterns. This book is not only useful for those new to the material, but the format is also very good to be used as a reference. While his explanation of the different patterns is very good, I believe it's his principles and test-driven-development philosophy that are the real gems in this book. These are principles and practices that every developer should be familiar with. In fact, this is a great approach for junior developers so they can become disciplined. In a world where everyone seems to be an "Architect", I'm amazed at how many don't convey and don't practice similiar thoughts. If you can't open yourself up to the "model your idea up on a white-board, erase, code test case, code logic" mentality, then it will be very difficult to see the intuitiveness of Bob's writing. Bob has provided a job-aid to all of us and we'd be in a lot better shape as software professionals if we followed just a few of these principles.
Rating: Summary: If I Only Bought Two OOD Books, This Would be One of Them Review: I don't think I've given another design/programming book 5 stars before. This book deserves it-- it could easily replace a half dozen books on my shelf, and it probably will. Martin focuses on the why's and the wherefores of current OOD methodologies. He doesn't try to sell Agile Processes in this book. Instead, he explains a number of current practices that might be loosely grouped under the 'Agile' name. He anchors his discussion in a set of principles that drive the design process. Then he shows how software patterns can be used to put these principles into practice. Patterns are explained and demonstrated in the context of three case studies. The case studies (a payroll system, a weather monitoring system, and an exam testing system) have the feel of day-to-day problems. One of my chief complaints with other books has been the use of esoteric case studies-- unless I work for Microsoft, I'm not likely to write a word processor anytime soon. Okay, so maybe I won't write a weather station either, but it comes a lot closer to what I will do! The patterns discussion in this book is down-to-earth and easily understood. I have struggled over the 'Gang of Four' book ('Gamma et Al, 'Design Patterns') for well over a year. Bob Martin's book has cut through a lot of the clutter and confusion. It has been a great help to me in understanding why, where, and when to use different patters. And the explanation of UML in the book's appendices is one of the best I have seen. I can't think of a better way to learn UML than to sit down with these Appendices and Martin Fowler's 'UML Distilled'. This is one of the two books I would recommend to an OOD newbie. The other would be 'Object Design' by Rebecca Wirfs Brock and Alan McKean. These books provide a solid grounding in object-oriented design, while requiring a very reasonable expenditure of time and effort.
Rating: Summary: One of the Most Valuable Library Additions in Years Review: I find myself going back to this book over and over again. It's true that it makes a great compendium of a wide range of topics, but to me, one of the best things about this book is that there are practical considerations taken up that you will not see discussed at length elsewhere. Frankly, I wish Bob had let himself go (by stating some of the other as prerequisite) and explored deeper into that territory. Example: discussion of package structure and marking packages as fixed or volatile, and how to manage dependencies, etc. There is a great tie in with Meyer here. All around great book.
Rating: Summary: A GREAT BOOK on object-oriented design Review: I have to admit that I (mis)judged this book by its cover. I saw "Agile Software Development", and from that I figured it was a bunch of squishy, feel-good BS about XP and other bandwagons. When I opened it up I found that I couldn't have been more wrong. This book is simply packed full of great stuff. It provides a solid introduction to Agile Development and eXtreme Programming but, of more interest to me, it is a GREAT BOOK on object-oriented design. This book has dozens and dozens of practical but concise examples illustrating everything from relatively simple object-oriented design concepts such as Meyer's Open/Closed Principle to subtle and complex issues with class and package dependencies. Examples are always accompanied by UML diagrams and Java or C++ code is brought in when appropriate. My company provides training in object-oriented design and this book now sits at the top of my recommended reading list, the position formerly occupied by Larman's (also excellent) "Applying UML and Patterns". As a manager, I'd have no hesitation to buy this book for any developer who'd take the time to read it, and I'd consider reading it "on the clock" to be time well spent.
Rating: Summary: A GREAT BOOK on object-oriented design Review: I have to admit that I (mis)judged this book by its cover. I saw "Agile Software Development", and from that I figured it was a bunch of squishy, feel-good BS about XP and other bandwagons. When I opened it up I found that I couldn't have been more wrong. This book is simply packed full of great stuff. It provides a solid introduction to Agile Development and eXtreme Programming but, of more interest to me, it is a GREAT BOOK on object-oriented design. This book has dozens and dozens of practical but concise examples illustrating everything from relatively simple object-oriented design concepts such as Meyer's Open/Closed Principle to subtle and complex issues with class and package dependencies. Examples are always accompanied by UML diagrams and Java or C++ code is brought in when appropriate. My company provides training in object-oriented design and this book now sits at the top of my recommended reading list, the position formerly occupied by Larman's (also excellent) "Applying UML and Patterns". As a manager, I'd have no hesitation to buy this book for any developer who'd take the time to read it, and I'd consider reading it "on the clock" to be time well spent.
Rating: Summary: Wonderful piece of writing Review: I just finished reading the book _Agile Software Development_ and I think it is an excellent piece of writing. I have been looking for a good reference that describes various design patterns in a way that those of us without Master's degrees in OO programming can understand. It may take a second read for me to really grasp some of the concepts, but I think Martin does a nice job outlining the patterns AND their application.
Rating: Summary: Wonderful piece of writing Review: I just finished reading the book _Agile Software Development_ and I think it is an excellent piece of writing. I have been looking for a good reference that describes various design patterns in a way that those of us without Master's degrees in OO programming can understand. It may take a second read for me to really grasp some of the concepts, but I think Martin does a nice job outlining the patterns AND their application.
Rating: Summary: Best O-O design book in this year Review: I knew the book would be a great one before read it. But now, after I read some of its chapters, I know I underestimated it. I love to read Uncle Bob's books and articles. His previous book "Designing Object-Oriented C++ Application with Booch Method" is a real gem, I learn much a lot from it, maybe more than any other books on designing. The author's style is unique, he tries to guide readers to reach a good design instead of just putting the final solution in front of you. He presents the whole process of design, shows you how to think, how to verify, how to test and modify. His is a real mentor who gives you solid knowledge and solid experience by solid examples. So, I expected learn a lot from this new book. The book shows that it's more than my expectation. It keeps the good style, plus very valuable contents. It present at least 4 aspects which are very important and useful for today's programmers: * Agile method: The author show you you how to USE agile method. Still he tell you a lot about "Why". I'm not a XPer, but after reading the first several chapters, I think I'd give a try. * Object-Oriented Design Principles: The book concludes 11 O-O design principles. Only these principles are worth the price of the book to me. * Design patterns: This book teach you 23 design patterns with concrete examples -- 15 are GoF patterns, 8 are new. The emphasis is how to use patterns in real applications, instead of telling you what design patterns are and how to document them. * UML: This book is not about UML, but it uses UML to demostrate designs. To make you feet wet, it includes two appendics, show you basic UML with, again, concrete example. I find it's much easier for me to learn UML this way. Well, IMHO, this book is the best O-O design textbook this year, and I wonder whether there will be a better one in the next several years.
Rating: Summary: Puts agile methods into a nice focus Review: I'd expected a much more detailed description and case studies of agile methods. The actual presentation on the concepts is only that, a summary of the concepts. The rest of the book is a lot more detail on the core concepts of good practice and the application of patterns. This is excellent material and it is well presented and interesting. You'll learn a lot of good insites. The examples were informative but not really detailed enough to leave you feeling you know the material in one reading. This book takes some real study for the informaton to sink in. I bet if your developing code you'll really gain from the re-visiting sections of the book until it becomes second nature. Your going to want to give this book to your friends.
Rating: Summary: Uncle Bob's Jewelry Store Review: I'm not just reading this book, I'm implementing it. Since I don't work in Java or C++ I re-write each pattern and look at every line. This is perfect. I end up learning the pattern to the extent that when I come across it at work I feel it approaching like a bus in the city at a street corner. I'm strapped to the front of a Saturn booster and I'm already going faster than the speed of sound. The sky is turning dark blue. -- I wrote an acceptance test framework over the holiday after reading chapter four on testing. My unit test code is so simple now it makes me blush. I can't hear anything anymore because I'm going faster than sound. But I'm not hurrying. Work is being done. Design flows like the thrust pushing that star ship. We're going somewhere. It's rubbing off. I find myself at the white board with other guys in my office talking and having fun like a bunch of happy programmers. Fun, yeah. Intellectually fun. We're moving fast and if somebody gets in the way, I can stop. Let me tell you about this new thing I just learned... This book is a working man's book. You'll end up using these gems as tools. You'll find design easy. Your brain has already been wrapped around the common problems you work on every day. You'll go, "Oh, yeah. I saw that in this book". It's concise like code with every line essential - no fluff. The fluff was removed. You've got principles, patterns and practices with examples. You won't learn this stuff without examples. I find myself wanting more examples. Give me a range Uncle Bob, give me the range. Guess what. The range is our there in the application of the principles, patterns and practices. Care to go exploring? Get this book!
|