經驗分享:PHP編程的5個良好習慣(三)
學習良好的編程習慣能夠提高代碼質量和效率。像其他語言一樣,開發人員可以用 PHP 編寫出各種質量級別的代碼。根據具體的情況,一般的開發人員往往比優秀的開發人員的效率低 10%~20%。優秀的開發人員的效率更高,因為他們擁有豐富的經驗和良好的編程習慣。不良的編程習慣將會影響到效率。本文通過展示一些良好的編程習慣,幫助您成為更優秀的程序員。
接上一篇,經驗分享:PHP編程的5個良好習慣(二)
5. 切忌使用復制粘貼
您可以從其他地方將代碼復制粘貼到自己的代碼編輯器,但這樣做有利也有弊。好的一面是,從一個示例或模板中復制代碼能夠避免很多錯誤。不好的一面是,這容易帶來大量的類似編程方式。
一定要注意,不要將代碼從應用程序的一部分復制粘貼到另一部分。如果您采用這種方式,請停止這個不良的習慣,然后考慮將這段代碼重寫為可重用的。一般而言,將代碼放置到一個地方便于日后的維護,因為這樣只需在一個地方更改代碼。
不良習慣:類似的代碼段
清單 9 給出了幾個幾乎一樣的方法,只是其中的值不同而已。有一些工具可以幫助找到復制粘貼過來的代碼(參見 參考資料)。
清單 9. 不良習慣:類似的代碼段
- <?php
- /**
- * Counts the number of messages found in the array of
- * ResultMessage with the getSeverity() value of "Error"
- * @param $messages An array of ResultMessage
- * @return unknown_type
- */
- function countErrors($messages)
- {
- $matchingCount = 0;
- foreach($messages as $m) {
- if ($m->getSeverity() == "Error") {
- $matchingCount++;
- }
- }
- return $matchingCount;
- }
- /**
- * Counts the number of messages found in the array of
- * ResultMessage with the getSeverity() value of "Warning"
- *
- * @param $messages An array of ResultMessage
- * @return unknown_type
- */
- function countWarnings($messages)
- {
- $matchingCount = 0;
- foreach($messages as $m) {
- if ($m->getSeverity() == "Warning") {
- $matchingCount++;
- }
- }
- return $matchingCount;
- }
- /**
- * Counts the number of messages found in the array of
- * ResultMessage with the getSeverity() value of "Information"
- *
- * @param $messages An array of ResultMessage
- * @return unknown_type
- */
- function countInformation($messages)
- {
- $matchingCount = 0;
- foreach($messages as $m) {
- if ($m->getSeverity() == "Information") {
- $matchingCount++;
- }
- }
- return $matchingCount;
- }
- $messages = array(new ResultMessage("Error", "This is an error!"),
- new ResultMessage("Warning", "This is a warning!"),
- new ResultMessage("Error", "This is another error!"));
- $errs = countErrors($messages);
- echo("There are " . $errs . " errors in the result.\n");
- 63.?>
復制代碼良好習慣:帶參數的可重用函數
清單 10 展示了修改后的代碼,它將復制的代碼放到一個方法中。另一個方法也進行了更改,它現在將任務委托給新的方法。構建通用的方法需要花時間設計,并且這樣做使您能停下來思考,而不是本能地使用復制粘貼。但有必要進行更改時,對通用的方法投入的時間將得到回報。
清單 10. 良好習慣:帶參數的可重用函數
- <?php
- /*
- * Counts the messages with the given severity in the array
- * of messages.
- * @param $messages An array of ResultMessage
- * @return int Count of messages matching $withSeverity
- */
- function countMessages($messages, $withSeverity)
- {
- $matchingCount = 0;
- foreach($messages as $m) {
- if ($m->getSeverity() == $withSeverity) {
- $matchingCount++;
- }
- }
- return $matchingCount;
- }
- /**
- * Counts the number of messages found in the array of
- * ResultMessage with the getSeverity() value of "Error"
- * @param $messages An array of ResultMessage
- * @return unknown_type
- */
- function countErrors($messages)
- {
- return countMessages($messages, "Errors");
- }
- /**
- * Counts the number of messages found in the array of
- * ResultMessage with the getSeverity() value of "Warning"
- * @param $messages An array of ResultMessage
- * @return unknown_type
- */
- function countWarnings($messages)
- {
- return countMessages($messages, "Warning");}
- /**
- * Counts the number of messages found in the array of
- * ResultMessage with the getSeverity() value of "Warning"
- *
- * @param $messages An array of ResultMessage
- * @return unknown_type
- */
- function countInformation($messages)
- {
- return countMessages($messages, "Information");
- }
- $messages = array(new ResultMessage("Error", "This is an error!"),
- new ResultMessage("Warning", "This is a warning!"),
- new ResultMessage("Error", "This is another error!"));
- $errs = countErrors($messages);
- echo("There are " . $errs . " errors in the result.\n");
- ?>
結束語
如果您在編寫 PHP 代碼的過程中養成本文討論的良好習慣,您將能夠構建易讀、易理解、易維護的代碼。使用這種方式構建的易維護代碼將降低調試、修復和擴展代碼所面臨的風險。
使用良好的名稱和更短的方法能夠提高代碼的可讀性。注釋代碼的目的有利于代碼理解和擴展。適當地處理錯誤會使代碼更加健壯。***,停止使用復制粘貼,保持代碼干凈,提高可重用性。
到這,五個良好的習慣都給大家介紹完了。希望對你有幫助。
【編輯推薦】