用PHP开发健壮的代码,第1部分

用PHP开发健壮的代码系列文章是关于解决大中型应用程序中的实际问题的。这一系列文章主要侧重于PHP4中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门。在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码。在这第一篇文章中,PHP高手Amol Hatwar从更高的角度介绍了如何为中到大型Web 应用程序设计和编写无错误、可维护的代码。

如果您是一名构建Web应用程序的开发者并且需要速度、功能和平台独立性(platform-independence),那么PHP将适合您。而且PHP是免费的,易于学习和部署。这些是使PHP如此受欢迎的最大优点。但这些优点也可以变成缺点。由于PHP易于使用,所以开发者在本应规划和设计的时候,他们经常先把代码硬塞到编辑器中。而且,在PHP中,解决问题的方法不止一种,比较容易犯那种惨痛的错误,这种错误过后难以订正。

在这一系列文章中,您将学会如何避免许多错误。如果您一步不落地坚持到底,您会发现自己尝试一两次就能编写无错误的代码了,对此不要感到奇怪。我还会指出PHP4 中可用的新功能,它们使开发工作更容易。我要介绍的大多数示例都是用来处理诸如脚本配置和安装、文件处理以及数据库使用之类的实际问题。即使您对这一切都不熟悉,您也会发现理解起来很容易。不过,我假设您对PHP有初步的了解。如果您需要重新温习,您会发现本文结尾处所列出的参考资料会对您有所帮助。

奠定健壮的基础

用PHP编写代码与用类似 C 的语言编写代码非常相似。由于它们句法上类似,所以还会导致类似的代码维护问题。当必须开发大型应用程序时,您可能要编写大量代码。随着时间的流逝,这些代码可能变得难以管理,错误很快就会乘虚而入。无论您从哪里听到这种说法,都不要相信 — 至少不能全信。但是,更重要的事实是如果您发现自己维护代码过于频繁,那么首先您的应用程序的设计可能是很糟糕的。

正确地设计代码

您最初做出的选择会影响您以后编写代码时的自由度。这使得正确的设计成为一个重要的先决条件。虽然当您解决一个微不足道的问题时设计会成为一个额外的仪式,但是您至少必须知道就是应该这样做的。许多人把设计和规划看作额外的开销。但是以糟糕的设计开始,或者根本就没有设计,结果总是会造成草率的代码。请记住,再巧妙的编码也不能弥补糟糕的设计。虽然如何设计应用程序超出了这个系列文章的范畴,但我还是会提示一些设计Web应用程序时应该牢记的问题。

分割和征服

通过一个个较小的松散耦合的部件来设计和编写大型应用程序总是更可取的。这样,每个部件都是可维护的。例如,一个内容管理系统(Content Management System,CMS)可能分布在许多诸如用户认证、显示、内容解析和查看统计信息等较小的模块上。而且,如果您的模块足够通用的话,您可以在您开发的其它应用程序中重用代码。程序员经常这么做,但他们仍然抱怨。至于编码的技巧就是让每个模块具有它绝对需要的功能并且到此为止。赋予一个模块的功能要不多不少,恰到好处。

绝对不要在页面中考虑

如果您对用PHP将您的 HTML 页面变得更动态些感兴趣,这部分将适合您。当您想在每个页面上显示日期和时间以使其看上去是最新的时候,通常是这个习惯开始的时候。每个 HTML 页面都变成一个只有有限几行的小PHP脚本,日期函数隐藏在某个地方。如果这是您想要的,您必须认可这是使该作业实现的最简单的方式。但是,想象一下您必须做些什么变动才能改变页面上呈现的日期格式。您将不得不更改每个页面内的代码。

显然,有更好的方式来达到这个目的。我最喜欢的方式是使用配置文件并在配置文件中定义一个常量,这个常量保留 date() 函数的格式字符串。然后,您就可以在需要的地方使用 date() 函数了。每个页面仍以脚本结束,但是您要彻底地把那些您必须对单行代码作更改的地方降到最少。

图 1. 避免硬编码


如 图 1所示,您在所有页面上都能看到日期格式的更改。这里的想法就是要避免复制代码以及硬编码。在编写大型应用程序时,请牢记这一点。当您避免了复制代码时,调试和维护就变得更加容易了。

时间: 2024-09-23 15:22:43

用PHP开发健壮的代码,第1部分的相关文章

用 PHP 开发健壮的代码(二):有效地使用变量

变量 "用 PHP 开发健壮的代码"是关于解决大中型应用程序中的实际问题的系列文章.在本文中,PHP 老手 Amol Hatwar 讨论了如何有效地使用变量.他还演示了如何通过使用 PHP 中可变的变量名来构造配置文件解析器,以便简化脚本配置.在我的前一篇文章中,我研究了在规划.设计甚至编写代码期间必须考虑的一些因素.在本文中,您将真正接触到实际代码,并可以看到实际运行中的一些东西.如果您还没有看过前一篇文章,那么最好现在就看一看. 正确处理变量变量与函数是任何计算机语言必不可少的要素

用 PHP 开发健壮的代码(一):高屋建瓴的介绍

用 PHP 开发健壮的代码 系列文章是关于解决大中型应用程序中的实际问题的.这一系列文章主要侧重于 PHP 4 中可用的新功能,重点介绍了大量使开发工作更容易的技巧和窍门.在这一系列文章中,您将发现许多要学习的示例和技术,还附带了大量样本代码.在这第一篇文章中,PHP 高手 Amol Hatwar 从更高的角度介绍了如何为中到大型 Web 应用程序设计和编写无错误.可维护的代码.如果您是一名构建 Web 应用程序的开发者并且需要速度.功能和平台独立性(platform-independence)

用PHP开发健壮的代码:有效地使用变量,第2部分

"用PHP开发健壮的代码"是关于解决大中型应用程序中的实际问题的系列文章.在本文中,PHP老手Amol Hatwar讨论了如何有效地使用变量.他还演示了如何通过使用PHP中可变的变量名来构造配置文件解析器,以便简化脚本配置. 在我的 前一篇文章中,我研究了在规划.设计甚至编写代码期间必须考虑的一些因素.在本文中,您将真正接触到实际代码,并可以看到实际运行中的一些东西.如果您还没有看过前一篇文章,那么最好现在就看一看. 正确处理变量 变量与函数是任何计算机语言必不可少的要素.有了变量,您

用 PHP 开发健壮的代码(三):编写可重用函数

函数 在本系列文章(有关如何在实际情况下开发有效的 PHP 代码)的第 3 部分中,Amol Hatwar 讨论了如何构建最有效的功能型函数,使用这些函数不会牺牲太多性能或可管理性.作者重点阐述了如何编写可重用函数,并介绍了如何避免与该任务相关的一些最常见问题.欢迎回来.在本系列文章的第 1 部分中,我讨论了一些基本的 PHP 设计规则,并介绍了如何编写安全.简单.与平台无关且快速的代码.在第 2 部分中,我介绍了变量,并讨论了它们在 PHP 编码中的用法 - 好的和坏的实践. 在本文中,您将了

用 PHP 开发健壮的代码:编写可重用函数,第3部分

在本系列文章(有关如何在实际情况下开发有效的PHP代码)的第3部分中,Amol Hatwar讨论了如何构建最有效的功能型函数,使用这些函数不会牺牲太多性能或可管理性.作者重点阐述了如何编写可重用函数,并介绍了如何避免与该任务相关的一些最常见问题. 欢迎回来.在本系列文章的第1部分中,我讨论了一些基本的PHP设计规则,并介绍了如何编写安全.简单.与平台无关且快速的代码.在第2部分中,我介绍了变量,并讨论了它们在PHP编码中的用法 - 好的和坏的实践. 在本文中,您将了解如何在PHP中明智地使用函数

安卓简单app开发实践,代码完成后没报错,但功能就是无法使用,学生菜鸟,求指导

问题描述 安卓简单app开发实践,代码完成后没报错,但功能就是无法使用,学生菜鸟,求指导 想把网上一个简单记事本的功能(编辑,保存,修改,删除)添加入一个含三个Fragment的app框架中,但添加并把提示的错误修改后发现功能根本不管用,图标都不能点击,运行结果中console显示[2015-07-14 22:44:42 - ddms] Can't bind to local 8700 for debugger. 解决方案 看下防火墙和杀毒软件设置,提示是端口没法绑定. 解决方案二: 直接使用真

分享9个最好用的JavaScript开发工具和代码编辑器

  这篇文章主要介绍了9个最好用的JavaScript开发工具和代码编辑器,需要的朋友可以参考下 Web设计和开发是现今越来越流行的职业方向之一.工欲善其事,必先利其器,如果你想在这个领域出类拔萃,那么你就必须具备一些优秀的技能,例如能操作不同的平台.IDE和其他各种各样的工具. 谈到平台和IDE,现在已经不是以前那个掌握一个IDE就能"一招鲜吃遍天"的时代了.激烈的竞争以及蔓延到现在的集成开发环境.基于IDE是用于创建和部署应用程序的强大客户端应用程序,下面我们要分享的就是对于很多网

Android开发常用经典代码段集锦_Android

本文实例总结了Android开发常用经典代码段.分享给大家供大家参考,具体如下: 1.图片旋转 Bitmap bitmapOrg = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.moon); Matrix matrix = new Matrix(); matrix.postRotate(-90);//旋转的角度 Bitmap resizedBitmap = Bitmap.createBitma

android-安卓开发 如何在代码中动态切换fragment加载的布局文件?

问题描述 安卓开发 如何在代码中动态切换fragment加载的布局文件? viewpager和fragment一起用的时候,比如有啊,吧,a,b,c,三页,一开始显示的是a,我想当用户滑到b和c时先显示的是一个loding的圆环进度条,之后再显示这个fragment的内容,请问应该如何做? 解决方案 上面说的是fragment之间的切换,你这个问题直接用view.setVisibility()方法控制进度条隐藏或显示就好了,也可以吧进度条放在Dialog或pupopWindow等当中控制show