PHP开发大型项目的一点经验


Posted in PHP onOctober 09, 2006

一、变量
最好是把所有的变量存储在一个数组中,这样在程序的开发中可以带来很多的方便,特别是当程序很大的时候。变量的命名就当适合自己的习惯,不管是用拼音还是英语,至少应当有一定的意义,以便适合记忆。变量的命名尽量规范化,不要与PHP中的关键字相冲突。

二、函数
PHP自带了很多函数,这给我们程序的编写带来了很多的方便。当然,在大型程序中我们往往自己要定义许多个函数,几十甚至上百个。当然在使用了类的程序中就不叫函数了,就应该叫方法,这里暂且不谈类的使用方法。函数多了,难免就会搞混了。有什么方法可以解决这个问题呢?可以参照上面变量的使用方法一样,同样的,我们也可以把自己定义的函数名全都放在一个数组中。这样我们在使用的过程中可以直接在数组随时检查函数是否有无重复的定义。如果发现重复的现象,马上变可以改过来。提高了程序编写的速度。函数的使用还有一点要注意的是全局变量,虽然这是一个小问题,但却不容忽视,要不然当某个变量千呼万呼出不来的时候,呵呵。这时看看该变量是否在该函数中已经申明成了全局变量。

三、程序的注释
程序的注释是很重要的,不管是C还是JAVA,程序的注释往往可以体现出程序员的良好编程风格。无论是对于它人还是自己对大有好处,当然我们这里说的是大型项目的开发,团体合作精神是很重要的。当你的程序写出来别人都很难看懂那还怎么谈团体合作精神啊。当然如果这个大型项目是你一个人开发的那就另当别论了,或者是你时间紧迫,来不及写注释。不过一般来说这种情况是很少的。除非真的是非常时刻。一个优秀的程序员绝对会为他写的每个程序加注释,哪怕是给自己看的。

四、采用何种文本编辑软件写源程序
这其实也没一定的规定,只要自己喜欢就行了。我比较喜欢PHPEDIT,也许是用惯了,现在感觉一离开PHPEDIT写PHP就没感觉,初学PHP的时候用NOTEPAD写,因为程序比较简单。所以用NOTEPAD应付下就行了,对于有几百行的程序来讲,用NOTEPAD显然是不合适的。用PHPEDIT工作效率会提高几倍,哪怕你从来没用过。

五、数据库的设计
数据库的设计在开发大型项目中是很重要的一点,关系到整个项目开发的成败。具体也就不多说了。大家可以在自己的实践中积累经验,慢慢去体会。总之在数据库的设计中最好应该一开始就应该确定下来。虽然可以在开发的过程中去改变已经设计好的数据库结构,但这对于整个项目的开发效率来讲将大打折扣,有谁会愿意时不时的去改数据库的结构呢?
六、类的使用
类的使用主要是实现了代码的重复使用,以降低项目开发的时间,程序员的工作量也会减少许多。只要可以使用类的地方应当尽量使用类,使用类应该养成一个良好的习惯,这样才可以在真正使用类的地方得心应手。可以说一个大型PHP项目就是由类组成的。个中的滋味还是自己慢慢体会吧。
总之,在开发大型PHP项目的时候,要预算好时间。特别要小心客户在半途来个回马枪,那就功亏一篑了。

PHP 相关文章推荐
php强制下载类型的实现代码
Apr 21 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
CI框架中zip类应用示例
Jun 17 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
php 浮点数比较方法详解
May 05 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
mongodb和php的用法详解
Mar 25 PHP
JAVA/JSP学习系列之六
Oct 09 #PHP
PHP的宝库目录--PEAR
Oct 09 #PHP
PHP中调用JAVA
Oct 09 #PHP
PHP数据库操作面向对象的优点
Oct 09 #PHP
PHP5中MVC结构学习
Oct 09 #PHP
PHP5/ZendEngine2的改进
Oct 09 #PHP
PHP模板引擎SMARTY
Oct 09 #PHP
You might like
浅谈PHP语法(1)
2006/10/09 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
cookie中的path与domain属性详解
2013/12/18 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
Javascript实现简易天数计算器
2020/05/18 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
Python常用模块介绍
2014/11/21 Python
Python程序退出方式小结
2017/12/09 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python列表推导式入门学习解析
2019/12/02 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
HSRP的含义以及如何工作
2014/09/10 面试题
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
我的中国梦口号
2014/06/16 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS