经验分享:PHP编程的5个良好习惯(三)
创始人
2024-08-02 22:01:24
0

学习良好的编程习惯能够提高代码质量和效率。像其他语言一样,开发人员可以用 PHP 编写出各种质量级别的代码。根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%。优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯。不良的编程习惯将会影响到效率。本文通过展示一些良好的编程习惯,帮助您成为更优秀的程序员。

接上一篇,经验分享:PHP编程的5个良好习惯(二)

5. 切忌使用复制粘贴

您可以从其他地方将代码复制粘贴到自己的代码编辑器,但这样做有利也有弊。好的一面是,从一个示例或模板中复制代码能够避免很多错误。不好的一面是,这容易带来大量的类似编程方式。

一定要注意,不要将代码从应用程序的一部分复制粘贴到另一部分。如果您采用这种方式,请停止这个不良的习惯,然后考虑将这段代码重写为可重用的。一般而言,将代码放置到一个地方便于日后的维护,因为这样只需在一个地方更改代码。

不良习惯:类似的代码段

清单 9 给出了几个几乎一样的方法,只是其中的值不同而已。有一些工具可以帮助找到复制粘贴过来的代码(参见 参考资料)。

清单 9. 不良习惯:类似的代码段

  1. /**  
  2. * Counts the number of messages found in the array of  
  3. * ResultMessage with the getSeverity() value of "Error"  
  4. * @param $messages An array of ResultMessage  
  5. * @return unknown_type  
  6. */ 
  7. function countErrors($messages)  
  8. {  
  9. $matchingCount = 0;  
  10. foreach($messages as $m) {  
  11. if ($m->getSeverity() == "Error") {  
  12. $matchingCount++;  
  13. }  
  14. }  
  15. return $matchingCount;  
  16. }  
  17. /**  
  18. * Counts the number of messages found in the array of  
  19. * ResultMessage with the getSeverity() value of "Warning"  
  20. *  
  21. * @param $messages An array of ResultMessage  
  22. * @return unknown_type  
  23. */ 
  24. function countWarnings($messages)  
  25. {  
  26. $matchingCount = 0;  
  27. foreach($messages as $m) {  
  28. if ($m->getSeverity() == "Warning") {  
  29. $matchingCount++;  
  30. }  
  31. }  
  32. return $matchingCount;  
  33. }  
  34. /**  
  35. * Counts the number of messages found in the array of  
  36. * ResultMessage with the getSeverity() value of "Information"  
  37. *  
  38. * @param $messages An array of ResultMessage  
  39. * @return unknown_type  
  40. */ 
  41. function countInformation($messages)  
  42. {  
  43. $matchingCount = 0;  
  44. foreach($messages as $m) {  
  45. if ($m->getSeverity() == "Information") {  
  46. $matchingCount++;  
  47. }  
  48. }  
  49. return $matchingCount;  
  50. }  
  51. $messages = array(new ResultMessage("Error", "This is an error!"),  
  52. new ResultMessage("Warning", "This is a warning!"),  
  53. new ResultMessage("Error", "This is another error!"));  
  54. $errs = countErrors($messages);  
  55. echo("There are " . $errs . " errors in the result.\n");  
  56. 63.?> 

复制代码良好习惯:带参数的可重用函数

清单 10 展示了修改后的代码,它将复制的代码放到一个方法中。另一个方法也进行了更改,它现在将任务委托给新的方法。构建通用的方法需要花时间设计,并且这样做使您能停下来思考,而不是本能地使用复制粘贴。但有必要进行更改时,对通用的方法投入的时间将得到回报。

清单 10. 良好习惯:带参数的可重用函数

  1. /*  
  2. * Counts the messages with the given severity in the array  
  3. * of messages.  
  4. * @param $messages An array of ResultMessage  
  5. * @return int Count of messages matching $withSeverity  
  6. */ 
  7. function countMessages($messages, $withSeverity)  
  8. {  
  9. $matchingCount = 0;  
  10. foreach($messages as $m) {  
  11. if ($m->getSeverity() == $withSeverity) {  
  12. $matchingCount++;  
  13. }  
  14. }  
  15. return $matchingCount;  
  16. }  
  17. /**  
  18. * Counts the number of messages found in the array of  
  19. * ResultMessage with the getSeverity() value of "Error"  
  20. * @param $messages An array of ResultMessage  
  21. * @return unknown_type  
  22. */ 
  23. function countErrors($messages)  
  24. {  
  25. return countMessages($messages, "Errors");  
  26. }  
  27. /**  
  28. * Counts the number of messages found in the array of  
  29. * ResultMessage with the getSeverity() value of "Warning"  
  30. * @param $messages An array of ResultMessage  
  31. * @return unknown_type  
  32. */ 
  33. function countWarnings($messages)  
  34. {  
  35. return countMessages($messages, "Warning");}  
  36. /**  
  37. * Counts the number of messages found in the array of  
  38. * ResultMessage with the getSeverity() value of "Warning"  
  39. *  
  40. * @param $messages An array of ResultMessage  
  41. * @return unknown_type  
  42. */ 
  43. function countInformation($messages)  
  44. {  
  45. return countMessages($messages, "Information");  
  46. }  
  47. $messages = array(new ResultMessage("Error", "This is an error!"),  
  48. new ResultMessage("Warning", "This is a warning!"),  
  49. new ResultMessage("Error", "This is another error!"));  
  50. $errs = countErrors($messages);  
  51. echo("There are " . $errs . " errors in the result.\n");  
  52. ?> 

结束语

如果您在编写 PHP 代码的过程中养成本文讨论的良好习惯,您将能够构建易读、易理解、易维护的代码。使用这种方式构建的易维护代码将降低调试、修复和扩展代码所面临的风险。

使用良好的名称和更短的方法能够提高代码的可读性。注释代码的目的有利于代码理解和扩展。适当地处理错误会使代码更加健壮。***,停止使用复制粘贴,保持代码干净,提高可重用性。

 

到这,五个良好的习惯都给大家介绍完了。希望对你有帮助。

【编辑推荐】

  1. 提高PHP速度的几种办法
  2. PHP爱好者请坚定你们的信念!
  3. 警惕 PHP程序员最易犯10种错误
  4. 让PHP网站跑的更快 如何优化PHP
  5. 简单说说PHP优化

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...