根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%。优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯。不良的编程习惯将会影响到效率。本文通过展示一些良好的编程习惯,帮助您成为更优秀的程序员。 这些良好的编程习惯不仅能提高效率,还能让您编写出在应用程序的整个生命周期中易于维护的代码。编写出来的代码可能需要大量的维护;应用程序的维护是一笔很 大的开支。养成良好的编程习惯能够提高设计质量(比如模块化),从而使代码更加容易理解,因此维护就更加容易,同时也降低维护成本。 不良的编程习惯会造成代码缺陷,使其难以维护和修改,并且很可能在修改时又引入其他缺陷。以下是 5 个良好的编程习惯,能够帮助 PHP 代码避免这些缺陷: ◆使用良好的命名。 ◆分成更小的部分。 ◆为代码添加注释。 ◆处理错误条件。 ◆切忌使用复制粘贴。 下面将详细介绍这些习惯: 使用良好的命名 使用良好的命名是最重要的编程习惯,因为描述性强的名称让代码更加容易阅读和理解。代码是否好理解取决于是否能在未来维护它。即便代码不带有注释,如果它很容易理解,将大大方便日后的更改。这个习惯的目标是让您编写的代码像书本一样容易阅读和理解。 不良习惯:含糊的或无意义的名称 清单 1 中的代码包含过短的变量名、难以辨认的缩写词,并且方法名不能反映该方法的功能。如果方法名给人的感觉是它应该做这件事情,而实际中它却做另外的事情,这将带来严重的问题,因为它会误导人。 清单 1. 不良习惯:含糊的或无意义的名称 <?php function getNBDay($d){ $day = 5; $nextDay = getNBDay($day); echo ("Next day is: " . $nextDay . "n"); ?> 清单 2 中的代码体现了良好的编程习惯。新的方法名具有很强的说明性,反映了方法的用途。同样,更改后的变量名也更具说明性。惟一的保持最短的变量是 $i,在本清单中,它是一个循环变量。尽管很多人不赞同使用过短的名称,但在循环变量中使用还是可以接受的(甚至有好处),因为它明确表明了代码的功能。 清单 2. 良好习惯:说明性强并且简洁的名称 <?php 分成更小的部分 プログラミングを続ける前に問題を解決することに集中すると、作業が楽になります。緊急の問題を解決しながらプログラミングを続けると、関数はどんどん長くなります。長期的にはこれは問題ではありませんが、前に戻ってより小さな部分にリファクタリングすることを忘れないでください。 リファクタリングは良い考えですが、より短く、より焦点を絞ったコードを書く習慣を付ける必要があります。短いメソッドは 1 つのウィンドウで読むことができ、理解しやすいです。メソッドが長すぎて 1 つのウィンドウで読むことができない場合、アイデア全体を最初から最後まですぐに理解することができないため、従うのが難しくなります。 メソッドを構築するときは、各メソッドで 1 つのことだけを実行するように習慣付ける必要があります。これは良い習慣です。第一に、メソッドが 1 つのことしか実行しない場合、再利用される可能性が高くなります。第二に、そのようなメソッドはテストが簡単です。第三に、そのようなメソッドは理解しやすく、変更しやすいからです。 悪い習慣: メソッドが長すぎます (多くのことを完了するため) リスト 3 は、多くの問題を伴う長い関数を示しています。たくさんのことを行うので、十分にコンパクトではありません。また、読み取り、デバッグ、テストも簡単になります。ファイルの反復処理、リストの作成、各オブジェクトへの値の割り当て、計算の実行などが含まれます。 リスト 3. 悪い習慣: 関数が長すぎます <?php function writeRssFeed($user) // Query p $ Perfsquery = Sprintf ("user_perfs where user = %s", $max_stories = 25; // デフォルトは 25;
switch($d) {
case 5:
case 6:
case 7:
return 1;
default:
return ($d + 1);
}
}
良好习惯:说明性强并且简洁的名称
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");
?>
我们鼓励您将大的条件拆分为一个方法,然后用能够描述该条件的名字命名方法。这个技巧能够提高代码的可读性,并且能够将条件具体化,使之能够被提取甚至重用。如果条件发生变化,更新方法也很容易。因为方法拥有一个有意义的名字,所以它能反映代码的用途,让代码更容易阅读。
{
// DB 接続情報を取得します
// ユーザー設定を調べます...
$link = mysql_connect(mysql_host, mysql_user, mysql_password)
OR die(mysql_error() );
mysql_real_escape_string ($ user));
$result = mysql_query($query, $link);
if ($row = mysql_fetch_assoc($result)) {
$max_stories = $row[max _stories ] ;
$result = mysql_query($query, $link);
$feed = "
"" .
"
"http://www.example. com/feed.xml</link>" .
" Oct 2008 10:00:00 gmt ".
"
"<managingEditor>editor@example.com</managingEditor>" .
" <webMaster>webmaster@example.com</webMaster>" .
"
$ link = $row[link];
$description = $row[descript
http://www.bkjia.com/PHPjc/486603.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/486603.html
技術記事