Java开发经历:8年+。 PHP开发经历:3个月。
想做一个网站,因为有多年的Java经历,所以一末尾自然是想用 Struts+ibatis,虽说 Java Web 开发配置挺繁琐的,但有多年的积聚,自然也不是大成果。
在准备的进程中,逐渐发现,我要做的网站,最好是基于一个成熟的CMS或者WIKI系统做定制,否则白手起家工作量太大,可是,经过对比选型,我发现在这方面的开源领域,Java阵营毫无抵抗的输给了PHP阵营。
痛苦啊,选择啊,我想选PHP吧,Drupal 或者 Droomla,但又担心从头搞定PHP耗时太长,于是希望能够混搭使用,也就是偏重前台展示的部分,使用PHP在Drupal上定制,而偏重后台业务逻辑的,使用Java开发,两者之间用 Web Service 互通。
但是,这种混搭风也有成果,那就是开发的复杂度高,从环境搭建到测试,都麻烦,而且Java很耗资源,对虚拟主机的要求高,所以,最终在这个项目上放弃了使用Jaa的念头(至多是暂时的),完全转向了PHP。
用PHP写代码的进程中有些感悟,总结如下:
上手复杂度:PHP胜 我用 Java 做了 2-3 年的 Swing 开发,然后转向WEB,第一个接触的框架是 Struts,事先的感受就是要配置的东西太多了,前后鼓捣了三个多月,才觉得渐入佳境了。
如今PHP从末尾理解到现在总共三个月左右的工夫(而且只是专业工夫),其中有一周的工夫在看PHP官网的文档,理解主要的言语特性,前面基本上就是边看边改代码,并照猫画虎的写东西。虽说当年对软件开发的理解不能和明天相提并论,但客观的说,PHP确实复杂、易学,而且特别适宜做WEB开发。
开发感受:各有胜场 PHP最让我不爽的地方: 经常是出错后屏幕一片空白(White Screen Of Death,都有专有名词了,可见这是PHP出错表现的一大特性),什么信息都没有。 开发工具的auto complete能力远不如java。
PHP比拟爽的地方: php中,数组和哈希表等价,而且是使用最普遍的数据构造,变长参数+数组做参数,能大大提高写代码的灵活性。 基本上不必为NPE担心。 访问数据库比JDBC复杂多了,不必什么耐久化框架也能很快的写出类似DAO的代码。 许多专为WEB设计的特性,使得从页面获取信息,或者向页面输入信息都变得非常轻巧。
谈不上爽或者不爽的特性: echo 的内容直接到前台页面上了,一末尾我以为echo和java的System.out一样,会写到日志。 由于不像Java那样对classpath以及class的路径有着严厉的要求,一时之间还不习气,原来创立一个Java类放在什么地方基本上没什么可思索的,但现在经常要决策一个文件该放在哪个目录下。 因为可以OOP,也可以不OOP,所以,增加新功用点的时候,经常很纠结O还是不O。 代码风格啊!太习气了getData这样的命名,是在不顺应get_data这样的函数,因此,执着着,没有入乡随俗的改正来,也好,一眼就可以看出,哪些是属于框架的,哪些是属于我的。
平台对比 假设拿PHP和JAVA比,我觉得PHP是瑞士军刀,而JAVA则是家庭五金维修工具N件套,N = 100,在解决网站开发这一成果上,PHP确实是小巧、易用,但也有不尽如人意的地方。
比方,我发现J2EE中简直必不可少的JDBC衔接池,在PHP中约等于无,所以,用户恳求过来,假设需求访问数据库,都是现连、现取、现关,究其缘由,是架构不同造成的。
实践上,J2EE中有Web Container的概念,用户恳求是由Container分配的线程完成的,线程可以使用进程的内存空间交互数据;而PHP是依靠于Apache的,每次用户恳求,Apache都启动一个新的进程来执行PHP脚本,进程执行完,一切资源都回收了,所以在默许情况下,一个PHP脚本想要留下点“全局”的东西并不容易(我一末尾就被 global 这个关键词给骗了);当然,也不是说不同的恳求之间完全没法交流数据,只是这样需求使用共享内存,或者使用文件做耐久化。
不过,Apache用进程处理恳求应该比线程形式要愈加健壮,因为在J2EE中,因为一个线程的成果导致整个Container挂掉的情况屡见不鲜。
OOP PHP主流版本已经对OOP的支持很好,但因为历史缘由,好多PHP的开源项目的代码都是不那么OOP的。一末尾,我是跟着框架的习气,用不怎样OOP的方式写代码,在写了十几个零散的函数之后,终于忍不住,又全部重构成对象了。
做了这么多年的Java,OOP的思想已经非常深化,虽然当年从学校出来的时候,也是从构造化程序设计转向面向对象的,但N年之后,再从面向对象转向构造化,这种不习气的觉得愈增强烈。也许是OOP真的是愈加契合自然的思考习气吧,现在看着一长串的零散的函数,很有一种不安全的觉得,况且还要挖空心思的为方法起名,以避免冲突,累!
总结 1、应该把PHP纳入本人的开发工具箱 2、PHP不够完美,但可圈可点之处甚多。 3、面向对象为PHP增色不少 4、在开源领域,PHP方面比拟发达的是最终应用,所以才有那么多人使用wordpress建独立博客,哪怕没有开发经历;而JAVA方面比拟发达的是开发框架和类库,给程序员们使用的。从这个角度来讲,Java是个小众的言语。
本文来自CSDN博客,转载请标明出处:blog.csdn/jinxfei/archive/2010/08/10/5801280.aspx文章由
姿美堂整理,收集辛苦,希望能保留出处,谢谢斑竹大哥。