我们鼓励您将大的条件拆分为一个方法,然后用能够描述该条件的名字命名方法。这个技巧能够提高代码的可读性,并且能够将条件具体化,使之能够被提取甚至重用。如果条件发生变化,更新方法也很容易。因为方法拥有一个有意义的名字,所以它能反映代码的用途,让代码更容易阅读。
分成更小的部分
专心解决一个问题之后再继续编程,这样会让您更轻松。在解决一个紧急的问题时,如果继续编程,会使函数越来越长。从长远来说,这并不是一个问题,但您要记得回过头来将它重构为更小的部分。
重构是个不错的主意,但您应该养成编写更短、功能更集中的代码。短的方法能够在一个窗口中一次看完,并且容易理解。如果方法过长,不能在一个窗口中一次看完,那么它就变得不容易理解,因为您不能快速地从头到尾了解它的整个思路。
构建方法时,您应该养成这样的习惯,让每个方法只完成一件事情。这个习惯很好,因为:首先,如果方法只完成一件事情,那么它就更容易被重用;其次,这样的方法容易测试;第三,这样的方法便于理解和更改。
不良习惯:过长的方法(完成很多件事情)
清单 3 展示了一个很长的函数,其中存在很多问题。它完成很多件事情,因此不够紧凑。它也不便于阅读、调试和测试。它要做的事情包括遍历一个文件、构建一个列表、为每个对象赋值、执行计算等等。
清单 3. 不良习惯:过长的函数
以下为引用的内容: <?php function writeRssFeed($user) // Query $result = mysql_query($query, $link);
"<generator>MyFeed Generator</generator>" . "<managingEditor>editor@example.com</managingEditor>" . "<webMaster>webmaster@example.com</webMaster>" . "<ttl>5</ttl>"; // build the feed... while ($row = mysql_fetch_assoc($result)) { $title = $row['title']; $link = $row['link']; $description = $row['description']; $date = $row['date']; $guid = $row['guid']; $feed .= "<item>"; $feed .= "</rss"; // write the feed out to the server... } ?> |
如果多编写几个这样的方法,维护就成了真正的难题了。
良好习惯:易管理、功能专一的方法
清单 4 将原来的方法改写为更加紧凑、易读的方法。在这个示例中,将一个很长的方法分解为几个短方法,并且让每个短方法负责一件事情。这样的代码对将来的重用和测试都是大有裨益的。
清单 4. 良好习惯:易管理、功能专一的方法
以下为引用的内容: <?php function createRssHeader() "<pubDate>Tue, 20 Oct 2008 10:00:00 GMT</pubDate>" . "<lastBuildDate>Tue, 20 Oct 2008 10:00:00 GMT</lastBuildDate>" . "<docs>http://www.example.com/rss</docs>" . "<generator>MyFeed Generator</generator>" . "<managingEditor>editor@example.com</managingEditor>" . "<webMaster>webmaster@example.com</webMaster>" . "<ttl>5</ttl>"; } function createRssFooter() function createRssItem($title, $link, $desc, $date, $guid) function getUserMaxStories($db_link, $default) $result = mysql_query($perfsQuery, $db_link); function writeRssFeed($user) $max_stories = getUserMaxStories($link, 25); $feed = createRssHeader(); $feed .= createRssItem($title, $link, $description, $date, $guid); $feed .= createRssFooter(); // write the feed out to the server... |
延伸阅读:
PHP编程里你所不知道的10个技巧
如何提高你的PHP编程技术
10条PHP编程习惯助你找工作
安全编程法则
php编程人员不得不知的php+mysql网络程序的运行原理