清单320.查看代码就像在执行考试前检查自己的副本:我拍摄的最后一次考试正在驾驶测试(令人难以置信,我知道),我通过了0个问题测验。我记得在审查答案时更改三个或四个答案,即使我不行’T知道它,我感觉这一天挽救了这一天。

查看代码具有相同的效果,我找到了一些东西‘不应该在那里’。幸运的是,这很少发生,但是当它发生时,它对代码的最终版本感到好得多。当然,还有一个不言而喻的救济,让我的自我被拼写错误肆无忌惮地(那是’s why I won’在此提供示例)。

有5种类型的错误我喜欢检查我什么时候’m reviewing my code.

  • DEAD CODE. :这是可以的代码’达到了。我发现的两个常见情况是序列中的多个返回,如果if。
    if (1 || $o->checkForStatus()) {
    return $o->getId() ;
    return $o->getSize() ;
    }

    上面的代码是全部的。第二个返回通常是一些临时代码,被遗忘。恒定条件是潜在的调试线。两者通常都很容易去除。
  • IMMATURE代码: 学习如何使用新框架,库或工具时发生不成熟的代码。第一次尝试基于文档示例,他们的目标是使事情有效。一旦它’工作,值得清洁,修剪或改变另一种函数沿途。现在,这是谈论的经验!

    $sqlite = new Sqlite('db.sqlite') ;
    $query = " SELECT age FROM customer WHERE id = '$id' " ;
    $res = $sqlite->query($query) ;
    $row = $res->fetchArray() ;
    $age = $row[0] ;

    这可以简化:

    $sqlite = new Sqlite('db.sqlite') ;
    $query = "SELECT age FROM customer WHERE id = '$id' " ;
    $age = $sqlite->querySingle($query) ;
  • 调试代码 : similar to the reasons that lead to Dead Code, some instructions are introduced in the code to report punctual status. This means var_dump and print_r, but it may also be extra print or echo, or even messages being logged. Depending on the debugging sessions, those messages may be very precise, and not worth keeping in production.
  • 留下以后 :可以在代码中引入一些结构以供以后使用。这是类的类,源自另一个的界面,但赢了’t获得任何特殊代码,直到课程可以显示一些特定的行为。作为第一个版本,使用默认父类。在审查期间,我喜欢确保这些结构不是缺少任何特定的。
    try/catch/finally or if (xxx_error()) { /* RFU*/ } are both good places to check if anything was forgotten. It is one thing to stay focused on business logic, and another to review code and make it robust.
  • PHP配置 : any code depends on PHP configuration or status, there is a good chance this code might need review. function_exists(), ini_get() or memory_limit() functions call are good spots to investigate. For example, if the code needs to check for the existence of a PHP function, then it is an old PHP function or an upcoming one. At the next version update of the code, this code may be abandoned, for the good of everything.

此列表很短,因此随时记忆和申请是实际的’m准备一些审查代码。除了‘Left for later’代码,所有这些都意味着代码将被删除,最终结果将更缩短。超过1000行代码,通常刮掉10行的代码。这并不多,但对代码质量的感觉是令人难以置信的。