【第22期】观点:IT 行业加班,到底有没有价值?

使用PHP程序开发高效的WEB网络系统

转载 2016年06月01日 08:26:10
PHP是一个很优秀的工具,它可以简单,也可以复杂。不一样的项目,应该用不一样的PHP。


  小项目 - 简单而直接的PHP


  一般对于一个功能页面在20以下的网站,我们可以用一个很简单的框架结构来写。在这个规模上,我建议是使用比较直接的面向过程编码方法,原因很简单,没有必要把class文件弄的N 多,结果controller里边就一个new就完了。当然,需求频繁变化的项目除外。


  在这个级别上,php优点表现的很明显:快速开发,一目了然。缺点同时也被隐藏得很好。


  中型项目 - 结构优美的OO化的PHP


  对于一个中型项目,我建议使用一个良好设计的框架来做,这个框架可以是基于MVC模型,封装了众多底层操作的,当然,一定要有一个好的最好是透明的cache机制,这样,我们为了适应变化而加入的OO机制可以运行得更快更好。


  在这个级别上。php的缺点开始凸现,像对OO支持的不完整(这个PHP5有很大改进),只能单线程模式。另外一些外围工具开始出现缺乏支持,像PHP没有好的重构工具,没有好的集成到IDE中的单元测试工具。优点当然还是原来的快速开发,广泛的可用的开源资源。


  大型项目 - 扩展、优化后的PHP


  这里的大型项目,简单的指分布式项目,就是说,你的程序需要被部署在N台服务器上了。在这个层级上,PHP比起j2ee的确缺乏很多支持。我曾和shadow在735上详细讨论过PHP要在大型系统上应用需要解决的一些问题,当然这些问题不光是PHP这个语言的问题,也包括了周边开发的问题:


  1 PHP的页面代码共享,PHP的源代码被载入内存一次以后,就在其中保留 - 这个用APC和Zend的优化器可以搞定。


  2 PHP页面之间的数据对象共享,a.php和b.php之间可以共享一个数据对象,比如数组,这个现在可以用序列化来作,但是会有文件io,这块可以用共享内存或者memcached来处理。


  3 PHP的数据库连接池,因为在多前端的情况下,PHP控制不住对数据库的连接,所以需要在数据库前边去作一个连接池,类似于sqlrelay的东西。另外数据缓存也是很重要的,大压力开发有一个tip,就是能不动数据库就不要动数据库。


  4 PHP的前端cache系统。一个透明的可控制的cache机制,确保网站的页面以最少次数查询数据库。这个有很多实现,但是没有找到特别好的。


  5 一个PHP应用,成功的解决调这几个问题以后,应付稍微大一点的压力是没有什么问题的。


  在这个级别上,重要的是,把PHP java C++ python之类融合起来,使其成为一个高效系统。我们可以用memcached来做分布式内存管理,可以用Lucene 来作全文检索,用ejb 容器来放一些业务逻辑组件,PHP则作为前端和系统的胶水,快速而灵活的把这些粘合起来。
举报

相关文章推荐

PHP程序开发高效的WEB系统

PHP是一个很优秀的工具,它可以简单,也可以复杂。不一样的项目,应该用不一样的PHP。 小项目 - 简单而直接的PHP 一般对于一个功能页面在20以下的网站,我们可以用一个很简单的框架结构来写。在这个...

[转]PHP程序开发范例宝典 -- 第9章 MySQL高级应用技术

第9章 MySQL高级应用技术 来源:http://book.csdn.net/bookfiles/526/ 目录 9.1 PHP的mysqli扩展 9.2 MySQL视图的应用 9.3 MySQL存储过程 9.4 MySQL触发器 9.5 MySQL事务 <div

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

高负载高并发网站架构分析

由于自己正在做一个高性能大用户量的论坛程序,对高性能高并发服务器架构比较感兴趣,于是在网上收集了不少这方面的资料和大家分享。希望能和大家交流 msn: defender_ios@hotmail.c...

我们为什么要使用PDO进行PHP程序开发?

PDO扩展为PHP定义了一个访问数据库的轻量的,持久的接口。实现了PDO接口的每一种数据库驱动都能以正则扩展的形式把他们各自的特色表现出来。注意;利用PDO扩展本身并不能实现任何数据库函数。你必须使用一个特定的数据库PDO驱动去访问数据库。 PDO提供了一个数据访问抽象层,这就意味着,不管你使用...

教教大家如何使用php程序开发一个自动识别移动设备

我在网上找了很多资料都找不到合适的,但是最后我把几家的代码融合在一起,简单的梳理了一下,最后在实现的环节,还真的有点成效,下面我就把代码发给大家看看吧!   你只要写入这个方法  然后调用即可:   ...

PHP程序开发中代码优化

1. If a method can be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2. echo is faster than print. ec...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)