牛骨文教育服务平台(让学习变的简单)
博文笔记

java、php博弈论

创建时间:2017-11-30 投稿人: bhggk 浏览次数:316
  • 小编开门见山,说说我工作经历里的php和java吧。

java、php博弈论

So which one is belong to you

  • 大学刚毕业,在学校学的是java语言,主要是j2ee方向的。那个时候的开发模式:导入jar包、配置xml文件、搭建ssh框架,然后在ssh框架下面进行自己的页面开发。因为只用一种语言,也就没有所谓的比较了。大学毕业以后,进入的第一家公司是做人力外包的,项目用的是php语言,那个时候然后突然发现php写项目的时候,竟然这么方便。不需要定义Bean层,json数据的传递,json_encode和json_decode解决;不需要声明变量的类型,判断值相等的时候也就不需要转换变量类型了;那是的感觉,总结一句话就是同样开发一个web项目,php写的代码会比java少很多。刚毕业那会,因为有了这些优势后,自然而然的慢慢偏向了php做web开发。

  • 做了一段时间php,项目结束了,人力外包到客户那边的自己自然也就需要听从公司安排,重新进入项目组了。有意思的是这次进入的是j2ee项目,然后重温了一把导jar包、写xml配置文件、基于ssh框架开发web的流程。然后感觉不想做人力外包了,跳槽来到了一家产品开发的公司,项目开发语言php。对于有了经验的我来说,日常的开发任务是按时保质的完成了。在这家公司我的事业变得更开阔了。不再是以前的那种只知道基于框架写if for这种的了,知道了全文搜索引擎shinx和solr,知道了数据缓存memcache,消息队列rabbitMq,知道了图片搜索框架Lire,知道了Lucene等等。我开始去学这些我从leader那里听到的技术关键字,然后上网搜,去学习,慢慢的就应用到项目中进行开发。遇到问题谷歌百度,有些时候还会用这些技术关键字查找技术交流群,然后和群里的朋友进行问题请教。直到今天,我认为我的技术还是不行的,但眼界确实是有了,至少关于应用一个新的技术,应该怎么快速掌握也算小有体会了。

  • 现在再去谈php和java给我的技术印象的时,我有了不同的看法,也不会想着一定要放弃哪一个。 总结起来看:在做数据展示一层的时候,毋庸置疑的没有变量声明,没有bean层构建,没有json数据解析麻烦的php开发速度快而且让人很愉悦的。而j2ee相较的就不是那么舒坦了。但是,在数据收集,处理一层的时候,php多线程的薄弱,肯定没有之前那么舒坦,就像我前面所说的用php抓取数据项目。而相较于java的jar包和php的扩展库,我个人还是倾向于jar包,毕竟在服务器上安装扩展,作为非专业运维人员的我每次总会感到忐忑。但是,需要了解的是,在一些开发场景里,不安装php扩展的话,去手写一个相同功能的php代码出来估计并不是什么都可以做到的。就像我所接触到的,依照相似图片确定相似款商品的场景。在php里这里需要安装一个phash的扩展,可悲的是这个扩展还不是那么容易安装的。而相对的如果用基于Lucene的Lire做图片对比搜索的话,就要容易的多了,添加jar包,定时创建图片索引库,需要查找图片的时候调用Lire的函数在图片库里进行匹配。

  • 当然,到了这里的话,对于我这种不能创造轮子,只能使用轮子的可悲程序员而言,也总找到了一个属于自己的方式。在php处理薄弱的块的时候java去写,如果是数据收集或者定时处理大批量数据的case那就用j2ee去写,存入数据库,或者创建索引库。然后用php去查询数据库或者索引,按照逻辑找到自己需要的数据展示。如果是一些php没有支持或者扩展库安装维护很繁琐的case也用j2ee去写处理过程,处理的触发和结果返回以http请求方式进行。struts2接受php收集到的条件参数,然后由指定的action进行业务处理,最终将返回结果设为json格式给php,php再做相应的展示处理。自然,这中间会因为http请求导致性能会慢,但是像这种case不可能太多,而且也可以优化其他区域来解决。比如:在php端进行memcache或者rabbitmq的条件数据存储,j2ee端收集条件数据处理,然后将结果和特定key对应存回memcache或者rabbitmq,php端再依照key取出结果这种。

  • 最后,小编认为,其实真的没必要去比较php或者j2ee,因为我们做产品时,肯定是什么样的语言在哪个阶段能给自己带来方便就用哪种语言了。简单说就是,没有最好的语言只有最适合的语言。

  • 语言永远没有谁好谁坏,每一种语言都有其弊端以及优势。而我们作为使用者,扬其长避其短,才是对的,不是吗?

java、php博弈论

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。