background image

分成更小的部分
专心解决一个问题之后再继续编程,这样会让您更轻松。在解决一个紧急的问题时,如果
继续编程,会使函数越来越长。从长远来说,这并不是一个问题,但您要记得回过头来将
它重构为更小的部分。
重构是个不错的主意,但您应该养成编写更短、功能更集中的代码。短的方法能够在一个
窗口中一次看完,并且容易理解。如果方法过长,不能在一个窗口中一次看完,那么它就
变得不容易理解,因为您不能快速地从头到尾了解它的整个思路。
构建方法时,您应该养成这样的习惯,让每个方法只完成一件事情。这个习惯很好,因为:
首先,如果方法只完成一件事情,那么它就更容易被重用;其次,这样的方法容易测试 ;
第三,这样的方法便于理解和更改。
不良习惯:过长的方法(完成很多件事情)

 

清单 3 展示了一个很长的函数,其中存在很多问题。它完成很多件事情,因此不够紧凑。
它也不便于阅读、调试和测试。它要做的事情包括遍历一个文件、构建一个列表、为每个对
象赋值、执行计算等等。

 

清单 3. 不良习惯:过长的函数
             
<?php

function writeRssFeed($user)

{
    // Get the DB connection information

   
   

    // look up the user's preferences...
    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')

        OR die(mysql_error());

    // Query
    $perfsQuery = sprintf("SELECT max_stories FROM user_perfs WHERE user= '%s'",

            mysql_real_escape_string($user));

    $result = mysql_query($query, $link);
   

    $max_stories = 25; // default it to 25;
   

    if ($row = mysql_fetch_assoc($result)) {
        $max_stories = $row['max_stories'];

    }
           

    // go get my data
    $perfsQuery = sprintf("SELECT * FROM stories WHERE post_date = '%s'",

            mysql_real_escape_string());