Rating:  Summary: good, somewhat irritating Review: This book has a lot of good information and a very convenient format. The tone is: ex cathedra. One thing I find annoying is that practically every line of sample code ends with 'throw()'. They make the point about throw(), and it is a good point, but it is distracting to see it hundreds of times, it is basically irrelevant gorp that clutters up the samples.
Rating:  Summary: Excellent resource and tutorial in C++ and OO Design Review: This book is an excellent resource for OO programmers and architects. Marshall Cline has taught a week long course based on the contents of this book to a number of software professionals where I work. We immediately went and bought this book! It has dramatically improved the design and reliability of our applications! Definitely worth the $40 or whatever!
Rating:  Summary: Necessary reading if you want to advance in C++ Review: This book was my study guide, especially when I needed to prepare for interviews. I own the first edition, and it truly helps you deepen your understanding of C++ and the object-oriented principles the language implements.
Rating:  Summary: Decent, but largely redundant. Review: This is a 'much expanded' version of the famous on-line C++ FAQ which promises much more detail and material. Since I am trying to constantly prove that I do know C++ well, I picked this book during my C++ book buying craze. I did read this book and while it doesn't make any serious mistakes related to C++, I just don't feel this book is relevant. First of all, the authors have clearly not given any thought to what their target audience would be. The level of presentation swings wildly from absolute basics (What is a class?) to fairly advanced subjects. Just as I found too many elementary questions in the book, someone less prepared would be surprised by a number of "advanced" topics. While this is understandable for a free on-line document, it doesn't render well in a rather costly book. Same applies to the annoying 'New!' labels marking new or updated topics. Again, this makes sense in a frequently changing on-line document, but it looks ridiculous in a printed book. The C++ design and coding style presented feels fairly solid and in that sense I can recommend this book to anyone without fearing that it would teach him something objectionable. The authors do their best to stress the importance of interpretation of a base class as a contract and this is a good thing. However, there are still some questionable statements that I don't agree with: - In 9.02 the authors suggest using exceptions for error handling - all error handling. Whether it is a good thing or not is still a hotly debated topic and I would suggest to at least present the disadvantages of such an approach and alternative methods. - The authors routinely check the new operator result for NULL, which not only doesn't make much sense (per ANSI C++, new() doesn't return NULL if it cannot create an object) but also teaches a fairly bad technique. Now, imagine my surprise when, while reading a book on C++ (presumably C++ language), I ended up with a chapter on COM and then another one on CORBA. No matter how related this material may feel, it is still not C++-specific. This sudden addition feels like book padding and that aforementioned 'additional material' that was supposed to sway the users of the free version to purchase the printed book. Well, it seems to have had a completely opposite effect upon me. I fully understand the authors' desire to be rewarded for their creation (that is, the on-line C++ FAQ). However, this is not an excuse to produce a book which is essentially a rehashed version of the free material diluted with barely relevant topics. Bottom line: read the free on-line version and spend your money either on Stroustrup's "The C++ programming Language" (if you are a novice) or on Myers's "Effective C++" dilogy.
Rating:  Summary: Useful, but a bit preachy Review: This is a great companion to Stroustrup's modern classic, _The C++ Programming Language_. It offers practical tips on how C++ is actually used in large projects, beyond the level presented in more popular books. My favorite parts are the techniques for how to manage pointers with reference counting, and how inheritence is best used in large projects as opposed to the small "is a kind of" examples found in most books. The book has a downside; it's preachy. You get clubbed over the head many times with "OO is a new *paradigm*, and it can't be fully explained -- it must be *shown* by a *true mentor*." That is silly, and I prefer Stroustrup's attitude about "OO" merely being a set of new techniques like exceptions, encapsulation, virtual functions, etc., and trusting that professional developers are intelligent and can figure things out. I have dozens of books on OO, and this is the only one that treats it like a special club with an initiation ritual. That this book is based off a Usenet FAQ, with all the arrogance and curtness typical of that style, still shines through. If you read past the preaching and "paradigm" hype, though, the book is almost perfect. It is just a change of pace, as most authors are not in the habit of talking down to their readers.
Rating:  Summary: A must have for a C++ programmer Review: This is one of the nicest books I ever read. Sure the FAQ form made things simpler for the authors, but also greatly simplifies reading. One of the few books I think a programmer should read and re-read every now and then. Moreover some of the topics and the very basic ideas are about object oriented programming in general and not just about C++. On the negatives I must say I was disappointed by the CORBA/DCOM section. I expected more but after thinking about how big that subject can be I would have removed the CORBA/DCOM thing from the cover. The book doesn't need it.
Rating:  Summary: Excellent concise reference. Review: This is the first book I pick up when I need an answer. The entire book is a series of FAQs, organized extremely well. Each topic has its own chapter. Within a chapter, the questions progress from general to specific, often in the same order that they pop into my mind. Each question is followed by a cut-to-the-chase 1-sentence answer, followed by a more detailed explanation. Finding your question in the book is facilitated by a table of contents that lists each FAQ, and a detailed index. I also like the editorializing. ("Arrays are evil.") One reason I find C++ baffling is that there are so many ways to do something. The authors pick a way and tell you why it is better than the alternatives. That's information I can use. As a bonus, there's a chapter on understanding management's perspective. For example, when you're trying to convince management to adopt the object-oriented paradigm, "Show why it's relevant... don't use the 'it will keep the developers happy' approach ... most managers think that they are the people who need to be kept happy ...". Incidentally, when I find the time, I plan to systematically read the book start to finish, just to fill in gaps in my knowledge. It is entertaining enough that I'm actually looking forward to it.
Rating:  Summary: My foremost reference for C++ Review: While there are new things that come up from time to time, in the overwhelming number of cases, many others have tried to do what you are doing. The hurdles that you face have almost certainly been leapt by someone else. Furthermore, if the problem that you are having is difficult, then others have also tried and most likely struggled. Finally, one of the most efficient ways to learn to program for production is to study those problems that others have frequently faced. It is quite likely that the problems that many others have had will contain some that you will face at some point. Put all of this together, and lists of Frequently Asked Questions or FAQs are one of the most valuable resources that you can have. Outside of questions concerning basic syntax, this is the first reference that I consult when I am stuck on a point in C++. Even if the FAQ is not quite what I am doing, in many cases it is close enough so that I can interpolate the proper path. I use this book as a reference so often that I listed it as one of the best books of the year in my "On Books" column that appeared in the September, 1999 issue of _Journal of Object-Oriented Programming_.
|