会员注册 | 电脑急诊 | 中国汽车救援中心网 | 中国电脑视频网 | 装机必备软件 |
·维修资料下载
·视频教程下载
·
网络教程下载
中文域名 虚拟空间 香港主机 域名空间 电子书下载
进入论坛 地图
教程 | 技巧 | 笔记本 | 安全 | 网络故障 | 建站经验 | 维修资料 | 行情 | Vista | Win Xp | 手机 | MP3 | DVDC | Q Q | 评测 | DIY | 厂商 | 源码 | 病毒 | 数据恢复
[菜鸟学院] 操作系统 程序设计 网站开发 图像动画 办公软件 [故障查询] CPU 主板 硬盘 内存 显示器 打印机 光驱 显卡 [PC电子书] 软件教程 硬件技术 数据理论 网络技术
【救援中心俱乐部】
120急诊室  菜鸟学院  视频教程
俱乐部活动 软件世界  操作系统
维修资料   网络世界  网站建设
易安数据恢复 硬件世界  聊 天
网友靓照   个人专栏  原创交流
灌水乐园   贴图中心  游戏世界
当前位置:首页 > 菜鸟学院 > 编程开发 > PHP > 正文

PHP编程的五个良好习惯
   2009-3-5 20:45:03 来源: 进入论坛 添加到收藏夹

根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%。优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯。不良的编程习惯将会影响到效率。本文通过展示一些良好的编程习惯,帮助您成为更优秀的程序员。

这些良好的编程习惯不仅能提高效率,还能让您编写出在应用程序的整个生命周期中易于维护的代码。编写出来的代码可能需要大量的维护;应用程序的维护是一笔很 大的开支。养成良好的编程习惯能够提高设计质量(比如模块化),从而使代码更加容易理解,因此维护就更加容易,同时也降低维护成本。

不良的编程习惯会造成代码缺陷,使其难以维护和修改,并且很可能在修改时又引入其他缺陷。以下是 5 个良好的编程习惯,能够帮助 PHP 代码避免这些缺陷:

◆使用良好的命名。

◆分成更小的部分。

◆为代码添加注释。

◆处理错误条件。

◆切忌使用复制粘贴。

下面将详细介绍这些习惯:

使用良好的命名

使用良好的命名是最重要的编程习惯,因为描述性强的名称让代码更加容易阅读和理解。代码是否好理解取决于是否能在未来维护它。即便代码不带有注释,如果它很容易理解,将大大方便日后的更改。这个习惯的目标是让您编写的代码像书本一样容易阅读和理解。

不良习惯:含糊的或无意义的名称

清单 1 中的代码包含过短的变量名、难以辨认的缩写词,并且方法名不能反映该方法的功能。如果方法名给人的感觉是它应该做这件事情,而实际中它却做另外的事情,这将带来严重的问题,因为它会误导人。

清单 1. 不良习惯:含糊的或无意义的名称

<?php

function getNBDay($d){
    switch($d) {
        case 5:
        case 6:
        case 7:
            return 1;
        default:
            return ($d + 1);
    }
}

$day = 5;

$nextDay = getNBDay($day);

echo ("Next day is: " . $nextDay . "n");

?>

良好习惯:说明性强并且简洁的名称

清单 2 中的代码体现了良好的编程习惯。新的方法名具有很强的说明性,反映了方法的用途。同样,更改后的变量名也更具说明性。惟一的保持最短的变量是 $i,在本清单中,它是一个循环变量。尽管很多人不赞同使用过短的名称,但在循环变量中使用还是可以接受的(甚至有好处),因为它明确表明了代码的功能。

清单 2. 良好习惯:说明性强并且简洁的名称

<?php
define ('MONDAY', 1);
define ('TUESDAY', 2);
define ('WEDNESDAY', 3);
define ('THURSDAY', 4);
define ('FRIDAY', 5);
define ('SATURDAY', 6);
define ('SUNDAY', 7);
/*
 *
 * @param $dayOfWeek
 * @return int Day of week, with 1 being Monday and so on.
 */
function findNextBusinessDay($dayOfWeek){
    $nextBusinessDay = $dayOfWeek;
    switch($dayOfWeek) {
        case FRIDAY:
        case SATURDAY:
        case SUNDAY:
            $nextBusinessDay = MONDAY;
            break;
        default:
            $nextBusinessDay += 1;
            break;
    }
     return $nextBusinessDay;
}
$day = FRIDAY;
$nextBusDay = findNextBusinessDay($day);
echo ("Next day is:" . $nextBusDay . "n");
?>

我们鼓励您将大的条件拆分为一个方法,然后用能够描述该条件的名字命名方法。这个技巧能够提高代码的可读性,并且能够将条件具体化,使之能够被提取甚至重用。如果条件发生变化,更新方法也很容易。因为方法拥有一个有意义的名字,所以它能反映代码的用途,让代码更容易阅读。

分成更小的部分

专心解决一个问题之后再继续编程,这样会让您更轻松。在解决一个紧急的问题时,如果继续编程,会使函数越来越长。从长远来说,这并不是一个问题,但您要记得回过头来将它重构为更小的部分。

重构是个不错的主意,但您应该养成编写更短、功能更集中的代码。短的方法能够在一个窗口中一次看完,并且容易理解。如果方法过长,不能在一个窗口中一次看完,那么它就变得不容易理解,因为您不能快速地从头到尾了解它的整个思路。

构建方法时,您应该养成这样的习惯,让每个方法只完成一件事情。这个习惯很好,因为:首先,如果方法只完成一件事情,那么它就更容易被重用;其次,这样的方法容易测试;第三,这样的方法便于理解和更改。

不良习惯:过长的方法(完成很多件事情)

清单 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());
            
    $result = mysql_query($query, $link); 


    $feed = "<rss version="2.0">" .
        "<channel>" .
        "<title>My Great Feed</title>" .
        "<link>http://www.example.com/feed.xml</link>" .
        "<description>The best feed in the world</description>" .
        "<language>en-us</language>" .
        "<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>";
    
        // 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 .= "<title>" . $title . "</title>";
            $feed .= "<link>" . $link . "</link>";
            $feed .= "<description> " . $description . "</description>";
            $feed .= "<pubDate>" . $date . "</pubDate>";
            $feed .= "<guid>" . $guid . "</guid>";
            $feed .= "</item>";
        }

        $feed .= "</rss";

        // write the feed out to the server...
        echo($feed);

}

?>

如果多编写几个这样的方法,维护就成了真正的难题了。

本新闻共2页,当前在第1页  1  2  


 
打印】【电脑俱乐部】【电脑视频】【电脑故障】【电脑学院】【电子书】【关闭
精彩视频教程推荐

·现场教你学--电脑常见故
·EasyBoot制作双系统启动
·EasyBoot制作WinodwsXP安
·EasyBoot  基本使用(下
·EasyBoot  基本使用(上)
·EasyBoot 安装和注册
·虚拟光驱01下载和安装

电子书下载

·网友世界 2009年02期1月
·计算机应用文摘 2009年0
·电脑迷2009年第02期 
·微型计算机2009年01月(上
·网友世界 2009年01期1月
·计算机应用文摘 2009年0
·电脑迷2009年第01期

推荐阅读
·PHP编程的五个良好习惯
·PHP 命令行参数详解及应用
·三招技巧处理OKI系列打印机字体扭
·纸巾印刷之印刷耗材和设备的选择
·3月5日电脑市场行情
·手把手讲解 让硬盘摆脱五大怪异骚
·中招也别慌 手把手教您刷新硬盘固
·不明白就来看 机箱与主板连线白皮
·轻松搞定 菜鸟玩电脑10大常见问题
·主机显示器正确接入却不亮的故障
·教你轻松去解决显示器的磁化故障
·CRT显示器故障教你怎么修 六大绝
·如何使二手笔记本电池再生
·一步一步教你维修二手本本电池
·笔记本电脑电池故障的维修
·如何将自身进程运行为admin模式 

视频教程
现场教你学--电脑常见 EasyBoot制作双系统启
最新新闻
·PHP编程的五个良好习惯
·PHP 命令行参数详解及应用
·三招技巧处理OKI系列打印机字体扭曲
·纸巾印刷之印刷耗材和设备的选择
·3月5日电脑市场行情
·一见钟情爱上她 近期热卖新品MP3推荐
·送女朋友再合适不过 三星MP3全线调价
·3月4日电脑市场行情

装机必备软件下载
 
关于我们 | 合作媒体 | 版权声明 | 联系方式 | 意见反馈 | 广告业务 | 网站地图 | 急救中心

Copyright © 2003--2007 中国电脑援救中心版权所有
鲁ICP备05000605号