c++ core Guidelines 翻译+读书笔记

CppCon 2015  C++ Core Guidelines

先贴出原文地址:https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md

读书笔记

第一部分:思想部分
总结部分:
1. 在代码中直接体现想法
2. 使用标准C++库
3. 表达意图
4. 理想情况下:一个程序应该是类型安全的
5. 宁愿让程序中的问题在编译期暴露出来也不愿意在运行期暴露
6. 哪些东西是在编译期检查不出来的,只能在运行期检查出来
7. 越早捕获运行时错误
8. 不要泄露资源
9. 不要浪费时间和空间

思想层次的东西不是依托于机器检查的。然而,体现这些思想主题的只能是每个独特的程序员。
没有这些思想基础,更 具体/明确/可检查的规则就会缺乏理论基础。

P.1 :在代码中直接体现想法
编译期不会读取代码中的注释,并且很多程序员一贯也不会。在代码中要表达什么是通过定义的语义和可以被编译期(在原则上)和其他的工具检查的
Example
class Date {
    // ...
public:
    Month month() const;  // do
    int month();          // don't
    // ...
};
第一行代码表示:Month类型是明确的是只能返回一个Month类型的变量并且是不可改变的在Date的对象中。  
第二个版本 可以猜想到有很多的可能性发生和不明确的Bugs
Example
void do_something(vector& v)
{
    string val;
    cin >> val;
    // ...
    int index = 0;            // bad
    for (int i = 0; i < v.size(); ++i)
        if (v[i] == val) {
            index = i;
            break;
        }
    // ...
}
一个精心设计的库往往表明的是一个意图和思想(要做什么,而不仅仅是如何做的事情),这个远远超过直接是用语言功能:
void do_something(vector& v)
{
    string val;
    cin >> val;
    // ...
    auto p = find(v, val);  // better
    // ...
}
一个C++程序员应该知道标准库的基本知识,并在适当的时候使用它。任何程序员都应该知道该项目的基础库的基础知识,并适当地使用它们。使用这些指南的程序员应该知道指南支持库,并适当地使用它。

你可能感兴趣的:(c++,c++)