作者: Brain W. Kernighan, P.J. Plauger

原文以 Fortran 语言为例, 笔记以 JavaScript 语言为例

表达

  • 撰写简洁明了的程序, 不要耍小聪明

  • 简单并且直接地表达程序的意图

不要为了一点点性能忽略程序的可读性.

  • 使用库函数

使用库函数使你得以在他人基础上构建代码, 避免在底层代码上重复工作.

调试程序的难度是编写程序的两倍

  • 避免使用临时变量

"临时" 在程序中不是一个好的概念, "临时" 变量意味着它可能被滥用, 同名变量还可能参与多个不相关的计算, 某些情况下会大大增加调试的难度.

控制结构

  • 去掉多余的elseelse if
function test() {
    let test;

    if (condition1) {
        // do something;
        test = test1;
    } else if (condition2) {
        // do something;
        test = test2;
    } else {
        // do something;
        test = test3;
    }

    return test;
}

Better:

function test() {
    if (condition1) {
        // do something;
        return test1;
    }

    if (condition2) {
        // do something;
        return test3;
    }

    // do something
    return test3;
}

程序结构

  • 模块化

把所有写了两遍的代码放在一个地方.

  • 每个函数只做一件事

输入和输出

  • 永远校验用户输入的数据

常见错误

  • 小心 "差一" 错误, 在循环和判断时对相等情况谨慎对待
  • 小心浮点数的加减和比较问题