《编写可读代码的艺术》第1章 代码应当易于理解

1.什么让代码变得更好?

    1)可读性的基本原理:代码的写法应当使别人理解它所需的时间最小化。

          这里的别人也包含6个月后的你自己,因此代码并不是越小越好。

          这个可读性的目标会与代码高效,良好架构或者易测试等目标有冲突吗?本书的作者认为根本不会,也就是说你可以在保证代码其他目标的同时让代码易读。        

          保证代码的可读性需要花额外的时间,但是这也会让你成为一个更好的程序员,让代码的bug更少,让你的代码更受欢迎。

         示例1:

 1 //正面例子
 2 for (Node* node = list->head; node != NULL; node = node->next)
 3     Print(node->data);
 4 
 5 //反面例子
 6 Node* node = list->head;
 7 if (node == NULL) return;
 8 while (node->next != NULL) {
 9     Print(node->data);
10     node = node->next;
11 }
12 if (node != NULL) Print(node->data);

          示例2:

1 //反面例子:更紧凑
2 return exponent >= 0 ? mantissa * (1 << exponent) : mantissa / (1 << -exponent);
3 
4 //正面例子:更直白
5 if (exponent >= 0) {
6     return mantissa * (1 << exponent);
7 } else {
8     return mantissa / (1 << -exponent);
9 }

        示例3:

1 //反面例子
2 assert((!(bucket = FindBucket(key))) || !bucket->IsOccupied());
3 
4 //正面例子:更易懂
5 bucket = FindBucket(key);
6 if (bucket != NULL) assert(!bucket->IsOccupied());

        示例4:

1 //正面例子:加了一行注释使代码更易懂
2 // Fast version of "hash = (65599 * hash) + c"
3 hash = (hash << 6) + (hash << 16) - hash + c;
原文地址:https://www.cnblogs.com/yyqng/p/13894053.html