Paperback: 240 pages
Publisher: Addison-Wesley Professional; 1 edition (November 4, 2004)
Language: English
ISBN-10: 9780321113580
ISBN-13: 978-0321113580
ASIN: 0321113586
Product Dimensions: 7.3 x 0.6 x 9.1 inches
Shipping Weight: 1.1 pounds (View shipping rates and policies)
Average Customer Review: 4.5 out of 5 stars See all reviews (40 customer reviews)
Best Sellers Rank: #193,762 in Books (See Top 100 in Books) #123 in Books > Computers & Technology > Programming > Microsoft Programming > C & C++ Windows Programming #135 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C++ #743 in Books > Textbooks > Computer Science > Programming Languages
Sutter and Alexandrescu are certified C++ gurus, and have each written classic works on C++ (Exceptional C++ series, and Modern C++ Design, respectively). So why does this book fall short? Because it doesn't go into the level of detail necessary to make every recommendation meaningful, and instead relies on citations of previous works. And those citations very often fall into a handful of books that every serious C++ programmer should own and understand anyway: Effective C++ series by Scott Meyers, The C++ Programming Language by Bjarne Strousup, and Exceptional C++ by Sutter.One might argue that 5 books or more is too many, and that this book adds value by providing a one stop ultimate resource for best practices. The problem is that if proper justification isn't provided for each best practice, it's difficult for readers to internalize them. Even if these guys are experts, and a, "trust me" will suffice to believe what they say, it doesn't mean that everyone will understand what they say without diving into the other books that they so often reference. And that brings us back to my main point: you may as well just buy and read the original books in the first place.Many of the items are complete repeats of items from Scott Meyers books with much less explanation. For example, number 81 of best practices, 'Prefer range operations to single-element operations', is the same as item 5 in 'Effective STL'. However, in Coding Standards, a page is devoted to the explanation; not sufficient if you don't already fully understand why this is a good practice. Meyers, on the other hand, spends 8 pages fully convincing you it is a good idea with several examples. After reading Meyers, I'm going to understand and remember the practice of preferring range member functions.
I have great respect for both authors from reading their other books/articles, and there are many good ideas in this book, but I was expecting to agree with the authors here much more than I do.Item 0: Don't sweat the small stuff. The authors say not to overlegislate naming and bracing standards, but they also say "do be consistent" and don't mix styles. From personal experience, I can say the only way to get a group of programmers to be consistent is by "sweating the small stuff" and having well-defined policies that are strictly enforced.Item 1: Zero tolerance of warnings. Eliminating Level 4 warnings (in Visual C++) from a complex application (as opposed to a library intended for third-party use) is more trouble than it's worth. The authors' suggestion to decrease code readability (Examples 2 and 3) to get around these warnings is quite a bad idea, in my opinion.Item 59: I wish somehow there could be a better answer to the C++ namespace issue. Giving many symbols (but not all, like preprocessor macros, classes not in a namespace, etc.) two names (the qualified and the unqualified) based on where that symbol appears seems so wrong and at the very least makes searching and cut-and-pasting more difficult.The authors clearly prefer use of stl over custom containers (although they have not always followed their own advice), but they don't address many issues related to this, like are teams using stl supposed to use the peculiar stl naming practices across the board in all code, so stl dictates naming and all projects would use naming like some_stl_vector.push_back()? Or would code like m_object.DoSomething() be mixed together with the above statement so there really is no standard?
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices Handbook of Home Health Standards - Revised Reprint: Quality, Documentation, and Reimbursement, 5e (Handbook of Home Health Standards & Documentation Guidelines for Reimbursement) Guidelines for Perioperative Practice 2016 (Aorn Perioperative Standards and Recommended Practices) The Law Governing Lawyers: Model Rules, Standards, Statutes, and State Lawyer Rules of Professional Conduct Microsoft® Exchange Server 2010 Best Practices (IT Best Practices - Microsoft Press) Hacking: The Ultimate Beginners Guide (Computer Hacking, Hacking and Penetration, Hacking for dummies, Basic security Coding and Hacking) (Hacking and Coding Book 1) Java: The Ultimate Guide to Learn Java and C++ (Programming, Java, Database, Java for dummies, coding books, C programming, c plus plus, programming for ... Developers, Coding, CSS, PHP Book 2) SQL: Beginner's Guide for Coding SQL (database programming, computer programming, how to program, sql for dummies, java, mysql, The Oracle, python, PHP, ... (HTML, Programming, Coding, CSS Book 7) JAVA: The Ultimate Guide to Learn Java Programming Fast (Programming, Java, Database, Java for dummies, coding books, java programming) (HTML, Javascript, ... Developers, Coding, CSS, PHP Book 1) California Rules of Court - State, 2015 ed. (Vol. I, California Court Rules) (California Rules of Court. State and Federal) ICD-10-CM Coding Guidelines Made Easy Commercial Pilot Practical Test Standards for Airplane Single- and Multi-Engine Land and Sea: FAA-S-8081-12C (Practical Test Standards series) The Use of Pressure-relieving Devices (Beds, Mattresses and Overlays) for the Prevention of Pressure Ulcers in Primary and Secondary Care: Guidelines Commissioned ... Excellence (Clinical Practice Guidelines) Instrument Rating Airman Certification Standards - Airplane: FAA-S-ACS-8, for Airplane Single- and Multi-Engine Land and Sea (Practical Test Standards series) Private Pilot Airman Certification Standards - Airplane: FAA-S-ACS-6, for Airplane Single- and Multi-Engine Land and Sea (Practical Test Standards series) Nursing: Scope and Standards of Practice (Ana, Nursing Administration: Scope and Standards of Practice) 2nd (second) Edition published by Amer Nurses Assn (2010) Nursing Professional Development: Scope and Standards of Practice (Ana, Nursing Professional Development: Scope and Standards o) Commercial Pilot and Flight Instructor for Helicopter Practical Test Standards: FAA-S-8081-16A/FAA-S-8081-7B (Practical Test Standards series) Airline Transport Pilot and Type Rating Practical Test Standards for Airplane: FAA-S-8081-5F (July 2008; including Changes 1 through 7) (Practical Test Standards series) Private Pilot Practical Test Standards for Airplane Single-Engine Land and Sea: FAA-S-8081-14B (Practical Test Standards series)