 | 书 名: C++编程规范(英文版)--图灵原版计算机科学系列 作 者: (美)Herb Sutter Andrei Alexandrescu 著 出 版 社: 人民邮电出版社 ISBN : 711513770 原 价: ¥42 有一家网站低于85折正在热销 | C++编程规范(英文版)--图灵原版计算机科学系列-图书目录: Organizational and Policy Issues 1 0. Don´t sweat the small stuff. (Or: Know what not to standardize.) 2 1. Compile cleanly at high warning levels. 4 2. Use an automated build system. 7 3. Use a version control system. 8 4. Invest in code reviews. 9 Design Style 11 5. Give one entity one cohesive responsibility 12 6. Correctness, simplicity, and clarity come first 13 7. Know when and how to code for scalability. 14 8. Don´t optimize prematurely. 16 9. Don´t pessimize prematurely. 18 10. Minimize global and shared data. 19 11. Hide information. 20 12. Know when and how to code for concurrency. 21 13. Ensure resources are owned by Objects. Use explicit RAII and smart pointers. 24 Coding Style 27 14. Prefer compile- and link-time errors to run-time errors. 28 15. Use const proactively. 30 16. Avoid macros. 32 17. Avoid magic numbers. 34 18. Declare variables as locally as possible. 35 19. Always initialize variables. 36 20. Avoid long functions. Avoid deep nesting. 38 21. Avoid initialization dependencies across compilation units. 39 22. Minimize definitional dependencies. Avoid cyclic dependencies. 40 23. Make header files self-sufficient. 42 24. Always write internal #include guards. Never write external #include guards. 43 Functions and Operators 45 25. Take parameters appropriately by value, (smart) pointer, or reference. 46 26. Preserve natural semantics for overloaded operators. 47 27. Prefer the canonical forms of arithmetic and assignment operators. 48 28. Prefer the canonical form of + + and --. Prefer calling the prefix forms. 50 29. Consider overloading to avoid implicit type conversions. 51 30. Avoid overloading &&, ¢ò, or, (comma). 52 31. Don´t write code that depends on the order of evaluation of function arguments. 54 Class Design and Inheritance 55 32. Be clear what kind of class you´ re writing. 56 33. Prefer minimal classes to monolithic classes. 57 34. Prefer composition to inheritance. 58 35. Avoid inheriting from classes that were not designed to be base classes. 60 36. Prefer providing abstract interfaces. 62 37. Public inheritance is substitutability. Inherit, not to reuse, but to be reused 64 38. Practice safe overriding. 66 39. Consider making virtual functions nonpublic, and public functions nonvirtual. 68 40. Avoid providing implicit conversions. 70 41. Make data members private, except in behaviorless aggregates (C-style structs). 72 42. Don´t give away your internals. 74 43. Pimpl judiciously. 76 44. Prefer writing nonmember nonfriend functions. 79 45. Always provide new and together. 80 46. If you provide any class-specific new, provide all of the standard forms (plain, in-place, and nothrow). 82 Construction, Destruction, and Copying 85 47. Define and initialize member variables in the same order. 86 48. Prefer initialization to assignment in constructors. 87 49. Avoid calling virtual functions in constructors and destructors. 88 50. Make base class destructors public and virtual, or protected and nonvirtual. 90 51. Destructors, deallocation, and swap never fail. 92 52. Copy and destroy consistently. 93 53. Explicitly enable or disable copying. 95 54. Avoid slicing. Consider Clone instead of copying in base classes. 96 55. Prefer the canonical form of assignment. 99 56. Whenever it makes sense, provide a no-fail swap (and provide it correctly). 100 Namespaces and Modules 103 57. Keep a type and its nonmember function interface in the same namespace. 104 58. Keep types and functions in separate namespaces unless they´re specifically intended to work together. 106 59. Don´t write namespace usings in a header file or before an #include. 108 60. Avoid allocating and deallocating memory in different modules. 111 61. Don´t define entities with linkage in a header file. 112 62. Don´t allow exceptions to propagate across module boundaries. 114 63. Use sufficiently portable types in a module´s interface. 116 Templates and Genericity 119 64. Blend static and dynamic polymorphism judiciously. 120 65. Customize intentionally and explicitly. 122 66. Don´t specialize function templates. 126 67. Don´t write unintentionally nongeneric code. 128 Error Handling and Exceptions 129 68. Assert liberally to document internal assumptions and invariants. 130 69. Establish a rational error handling policy, and follow it strictly. 132 70. Distinguish between errors and non-errors. 134 71. Design and write error-safe code. 137 72. Prefer to use exceptions to report errors. 140 73. Throw by value, catch by reference. 144 74. Report, handle, and translate errors appropriately. 145 75. Avoid exception specifications. 146 STL:containers 149 76. Use vector by default. Otherwise, choose an appropriate container. 150 77. Use vector and string instead of arrays. 152 78. Use vector (and string::c_str) to exchange data with non-C++ APIs. 153 79. Store only values and smart pointers in containers. 154 80. Prefer pushback to other ways of expanding a sequence. 155 81. Prefer range operations to single-element operations. 156 82. Use the accepted idioms to really shrink capacity and really erase elements. 157 STL Algorithms 159 83. Use a checked STL implementation. 160 84. Prefer algorithm calls to handwritten loops. 162 85. Use the right STL search algorithm. 165 86. Use the right STL sort algorithm. 166 87. Make predicates pure functions. 168 88. Prefer function Objects over functions as algorithm and comparer arguments. 170 89. Write function Objects correctly. 172 Type Safety 173 90. Avoid type switching; prefer polymorphism. 174 91. Rely on types, not on representations. 176 92. Avoid using reinterpret_cast. 177 93. Avoid using static_cast on pointers. 178 94. Avoid casting away const. 179 95. Don´t use C-style casts. 180 96. Don´t memcpy or memcmp non-PODs. 182 97. Don´t use unions to reinterpret representation. 183 98. Don´t use varargs (ellipsis). 184 99. Don´t use invalid Objects. Don´t use unsafe functions. 185 100.Don´t treat arrays polymorphically. 186 Bibliography 187 Summary of Summaries 195 Index 209
C++编程规范(英文版)--图灵原版计算机科学系列-图书简介: C++编程标准,程序员案头必备,软件学院师生必读 良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。在本书中,两位全世界最受尊敬的 C++ 专家将全球 C++ 社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位 C++ 程序员应该遵循的行事准则。本书实际上涵盖了 C++ 程序设计的各个方面,包括:设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、 STL 容器和算法等等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;书中还给出了从类型定义到错误处理等方面的大量 C++ 最佳实践,包括许多最新总结和标准化的技术,即使使用 C++ 多年的程序员也会从中受益匪浅。 本书适合于各层次 C++ 程序员,也可作为高等院校 C++ 课程的教学参考书。 C++编程规范(英文版)--图灵原版计算机科学系列-相关最新图书 ·Adobe 数字艺术中心 Audition 电脑音频标准教材(附CD-ROM光盘 ·深入浅出SQL Server 2000系统管理与应用开发(附CD-ROM光盘一张 ·认真做足100分:优秀员工行为准则 ·管理信息系统 ·国际经济合作 ·软件安装完全DIY手册:2006全新版 ·硬件组装完全DIY手册:2006全新版 ·卓越领导者的49个细节 ·涉外企业管理教程--北京市高等教育精品教材立项项目 ·中国旅游地理(第2版) ·微分流开形基础 ·情感·秩序·美德:亚当·斯密的伦理学世界 ·公共组织财务管理 ·冲突法(导读本) ·环境与资源保护法案例--21世纪高等院校法学系列基础教材·案例教学用书 ·挑灯看剑:观察经济大时代 ·管理咨询 ·市场营销 ·二级C语言程序设计.全国计算机等级考试历届上机真题详解 ·宏观经济学--21世纪高等院校经济学与管理学系列教材 |