第一章 代码应当易于理解

大多数程序员依靠直觉和灵感来决定如何编程。我们都知道这样的代码:

    for (Node* node = list->head; node != NULL; node = node->next)
        Print(node->data);

比下面的代码好:

    Node* node = list->head;
    if (node == NULL) return;

    while (node->next != NULL) {
        Print(node->data);
        node = node->next;
    }
    if (node != NULL) Print(node->data);

(尽管两个例子的行为完全一样)

但很多时候这个选择会更艰难。例如,这段代码:

    return exponent >= 0 ? mantissa * (1 << exponent) : mantissa / (1 << -exponent);

它比下面这段要好一些还是差一些?

    if (exponent >= 0) {
        return mantissa * (1 << exponent)
    } else {
        return mantissa / (1 << -exponent);
    }

很显然,第一个例子虽然是一行代码,但是没有下边这个例子清晰可读。

可读性的关键思想是:代码的写法应当使别人理解它所需的时间最小化。 代码好不好不是说代码量越小越好,也不是说使用的方法越高级越好,而是别人理解它所使用的时间越短越好。

如果你写了一些不容易理解的代码,这样别人就会很费力的才能看明白,当然,等过一段时间之后,你自己也会很费解。

最后更新于 16th Oct 2017