百度
360搜索
搜狗搜索

大公司为啥php转java,为什么大型网站前端使用 PHP 后台逻辑用 Java详细介绍

本文目录一览: 有什么必要的原因技术选型必须由php转为java

其实并没有这个必要,主要问题是PHP早前生态比较多,也比较乱,然后很多开源共享的代码后来发现很多性能和安全的问题,所以大家就觉得PHP不如JAVA了,其实好好写的话并不会有那么大的差别的
例如更高的安全性,例如开发软件
商用计算要求性能比较高
密码:2727

为什么大型网站前端使用 PHP 后台逻辑用 Java

php不用编译,易修改,适合做前端,因为前端经常改来改去的,java支持多线程,还得编译,但是可靠,因此java来做后台,但是php做业务逻辑也是可以的,比方说先把需要做的画成草图,然后分成几个小的模块,用php来做这些模块,也是可以的。
很多是个人喜好吧,也有大型网站用python的
从这几个方面看
一、运行机制:
Java代码被编译成字节码后,会在虚拟机里由JIT进行二次编译成为本地码,据传言其执行速度可以和C++相媲美,经过我自己测试,用Java实现一个简单的Memcache协议的缓存服务器,在Java 1.6下运行,和memcache本身相比,同样数据量的存取时间比大概是3:2,虽然有差距,但是比想象的要好很多。Java 1.7在JIT方面做了大量的改进,性能比Java 1.6还要好。
PHP是直接对文本代码进行解释执行,即便有opcode缓存技术,仍然有不可逾越的性能鸿沟。PHP的opcode类似于java的class字节码,仍是解释执行。
二、处理并发:
Java在并发处理上采取单进程多线程的方式,web应用会随着web server的启动而启动,而来自web 浏览器的请求将被分配给线程池内的闲置线程处理,也就是说当有请求到达的时候,进程是准备好的,线程是准备好的,Java要做的仅仅是业务逻辑处理了。
PHP在并发处理上时采取多进程的方式,在web server里没有物理的web应用概念,每个请求都相当于一个独立的应用,而进程也随着请求的到达才启动,而随着请求的结束而消亡。在Fast CGI环境下,有类似于线程池的进程池技术,对性能提高有很大的帮助。然而一方面web server和Fast cgi通讯仍需要通过socket,多出了一定的IO损耗,另一方面进程池内的进程间也很难进行通讯,所以在并发处理上仍然无法和Java相比。
三、数据库应用:
Java可以采用数据库连接池技术,节省下数据库连接过程带来的时间损失。
PHP没有这个好处,原因来自上面的第二条。
在数据库接口上java有JDBC,PHP有PDO,这两个很类似。然而Java有非常多的ORM技术框架(如Hibernate)使数据库操作变得异常简单,而PHP的运行方式决定了它是ORM的禁区(当然也可以做ORM,只是做到什么程度是由你对ORM带来的性能损耗的忍受程度决定的)。
四、缓存技术
Java是单进程,很多缓存可以直接在Java的heap中做,而无需借助外在的工具,当然也有很好的缓存框架,比如Ehcache,因为没有网络IO,所以性能非常高。
PHP多进程单线程决定了它只能借助外来的缓存服务器,比如Memcache.
五、热部署
Java的热部署能力很弱,如果希望修个BUG而不停服是很难做到的。
PHP天然热部署。
现在明白为什么后台逻辑用java了吧

为什么大型网站前端使用 PHP 后台逻辑用 Java

底层数据量太大,业务逻辑太多,软件制作比较合适
而数据库里的数据调取,展示给用户之前是使用PHP来操作服务器端
最后用HTML前端展示PHP调用的数据

为什么大型网站前端使用 PHP 后台逻辑用 Java

php轻量,运行快。Java逻辑紧密适合做数据的计算
楼上正解
php在生成页面,展示页面的速度要快的多,而且要轻量的多,对于频繁访问的页面来讲负担要小的多,而客户最重视的就是体感,加载速度是很重要的一个指标。所以采用php
但是相对于java的运算能力来讲却要差很多,就算把php所有的辅助插件都装上,高压力测试(数据运算类)下也就和java平起平坐。而java还有很多好用的第三方包可供节约开发周期和维护成本,在开发的规范性上也比php要强。这就是为什么后台选用java,当然不光java,甚至有的网站还有.net在里面参与

为什么大型网站前端使用 PHP 后台逻辑用 Java

php优点
1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换 PostgreSQL或者Oracle,支持N种数据库。(N >= 10)
2. 语法简单,如果有学习C和Perl的很容易上手,并且跟ASP有部分类似。有成熟的开发工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。
4. 有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smart template做模板层,如果是PHP 5.1的话,还能够使用PDO(PHP Data Object)来访问数据库。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持类似ASP.net的事件驱动的框架:Prado,支持类似Ruby On Rails的快速开发的框架:Cake等等,足够满足你的应用需求。
6. PHP 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。
7. 有成熟的社区来支持PHP的开发。
8. 目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。
9. 有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客 WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。
缺点
1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。
2.语法不太严谨,比如变量不需要定义就可以使用,在c,java,c++中变量是必须先定义以后才可以使用的。
3.也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。

为什么大型网站前端使用 PHP 后台逻辑用 Java

这样做的网站安全性比较高,也比较容易,谢谢
http://www.zhihu.com/question/20314377,这是题主的答案。

为什么大型网站前端使用 PHP 后台逻辑用 Java

首先,为什么是PHP和Java,不是其他。这和两者的开源社区都很活跃,并且都很适合进行Web开发有很大的关系,而且都很适合Linux环境下运行,可以在运维上统一管理。
  尽管.Net市场占有率也不低,但由于Windows和SQL Server的License费用、开源社区不活跃等多种问题相对而言考虑得少一些。TIOBE TOP 10中适合Web开发的语种还包括了Python Perl Ruby,其中Perl已经是昨日黄花,主要在服务器脚本领域还有较多应用,Web上已经不太可能Yesterday oncemore了。Python最近上升势头挺猛,但仅需要考虑文档较少、招聘相对困难基本就注定了暂时不会是大网站的主流选择。Ruby就不更不用提了。
  再看一下两个语言之间的差异。 PHP灵活,上手快,易修改,发布快捷,缺点是容易犯错(常见如拼写错误、SQL注入、上传执行等)、执行效率不高、缺乏全局缓存。Java的优点则是稳定可靠、运行效率高(尤其是JIT的出现之后差距更大了)、不容易犯错(强类型、预编译、必须拦截异常等等),缺点是开发和发布的效率相对较低。尽管优秀的工程师能在一定程度上改变以上的问题,但通常而言,哪能到处都是高手多如狗的梦之队?
  然后从MVC的层次结构上说,在一般网站项目的开发周期中,需求变更最频繁、调整最多的是View,其次是Controller,最后是Model。这非常好理解,没事干谁天天改数据结构?每次版本升级控制结构都要改的啦,或多或少而已。而View,啥时候两天不改BU啊PM啊UED啊大概是集体休年假了吧?
  再次是两者之间的通信,目前RPC技术已经足够成熟,无论是Web Service/Hessian/RESTful API都能够让开发人员专注在功能开发上,而不需要过多的考虑异构平台的差异和通讯的细节。这也就意味着在大公司里同时应用两种语言的方案并不会引入过多的复杂度和工作量。当然,文档量的下限倒是因此被拔高了不少,但事实上大部分团队对此其实都是喜闻乐见的:别每天说文档重要但没空了,你不写其他同事怎么配合?
  总的来说,靠近用户的前端,使用PHP能够更快的完成前端频繁而琐碎的更新,自如的应对各种需求的变化。页面的结构调整、用户输入内容的基本验证、仅只和用户交互有关的简单逻辑等都很适合使用PHP来开发,甚至可以通过类似Smarty等模板技术将其页面的变动迁移到前端团队。而基本的业务逻辑和数据的更新采用Java开发,可以有效的提高复用度、提升性能和吞吐能力、规避安全问题等。而开发效率稍有降低换来的是可维护性的提升,发布速度慢就更不是问题了,因为通常对于基础业务逻辑的调整往往都是整体修改,并层层测试确认才能发布的。
  所以,大型网站前端采用PHP后端采用Java,既好招人又好维护、系统稳定还性能高、连安全性都大大增加。代码复用、文档完备度居然也都改善了。让你在以上这些好处触手可及时,对架构师知识谱系在广度上要求更高一些这事根本就不是个问题。
  好吧,后面的同学补充了一个很好的问题,为什么不是仅用PHP或是仅用Java?这个我原本稍微提了,不过之前发布前删掉了的,因为问题是为什么PHP+Java。其实也有很多公司为了保证团队组织不至于过度复杂,会更倾向于采用单一语言,尤其是中小公司。
  单一方案其实一样可以做良好的隔离,PHP同样可以提供Service,而性能问题其实很多时候是算法和架构的问题而不是语言差异的问题。如Velocity或JSTL等也是很优秀的隔离方案。
  但我们都知道,现实往往比理想骨感很多,这些方案在高压力下会暴露出很多问题而体现双语言的优势,这些在上面其实都提到,详细说明一些很难得到改变的点:
  1、PHP由于其动态脚本语言的特性,包括类、函数、常量在内都需要在每次请求周期中重复执行后才能建立运行环境;为了保证解析速度而牺牲编译质量;应用了FastCGI但仅仅只是复用进程处理请求减少fork成本而不是像其他语言,初始化完毕后通过FastCGI的接口获得数据并以对应接口返回数据等几个原因,基本上已经不可能在性能上追回当初更烂现在开着JIT牌跑车的Java了。 更何况,还缺少了系统级共享数据的支持,使得核心数据一次性初始化后重复使用必须借助扩展或中间件。
  2、在PHP里是如此的容易犯错而难以发现,即使你用实质上出自官方的Zend Studio,也无法改变一个事实:要保证你的程序高质量无大错,得要有充足的经验、足够的严谨、以及——负责任的QA。淘宝的黄裳就曾经拿IDE这事开过玩笑。而玩笑背后的那个原因“缺乏中间件”最近几年有不少的改善,主要是不少中间件的支持变得更广泛了从而让PHP得益,但发展的根源其实还是在C和Java社区。性能和易犯错则是语言特性造成的技术难点,也是用来换取灵活、快捷的必要代价,很难去指望有根本的改善。
  3、Java的世界里也有JSTL、Velocity和Freemaker等,但和PHP灵活而强大的动态能力、丰富的函数和类库、轻松的学习成本、多到令人发指的文档相比,简直就是渣,就是渣啊!JSTL改完了要重启Context啊有木有?Velocity不关缓存也要重启啊有木有?Velocity开缓存性能低下啊有木有?即使这些都不管,调整下某个数据校验规则要改Action也要重启有木有?
  好吧,吐槽结束。
  实际工作中性能问题可以通过良好的架构解决,容易犯错的问题可以通过框架和规范以及全面的测试来解决,中间件选择少些但其实该有的都有了,Java的灵活性一样有不少可供考虑的解决方案,不说 OSGi 之类,就算是挫得要死的摘掉节点重启,完成后重新上节点的策略也都能凑效。
  所以,大家会看到单一语言的技术团队也很多,这个问题的真正考虑还是更多在团队自身的特点、积累等等。用了双语言的,也知道自己为什么要用这些,不用的也清楚自己的路该怎么走。最后的最后说一句:如果你不知道自己为什么要用双语言方案的话,基本上你也就不需要考虑它了。
  小猪,写程序很好玩
  后端java最大的优势在于庞大的生态环境,你想解决的任何问题,java都有现成的方案,而且,相对其他语言来说,基于jvm的方案在运行效率和运维成本上平均来说是最佳的(这里不讨论说什么运维人员的能力之类的,只假设我们的运维都只具有一般的平均水平),所以,后端天然是倾向java的,无论前端用什么。
  至于前端,最大的问题在于,一个网站的UI,变动相当频繁,传统的基于java的开发方案,jsp tag lib,freemaker, velocity。。。。你让前端怎么改,怎么调试?不经过专门学习他们怎么看得懂?而且,java的开发模式,动不动上来就是MVC,后端跟前端结合太紧密了,基本上前端很难自由的在ui层工作。反过来,基于PHP的前端方案,至少做前端的都能看得懂,都能调试得了,这就是巨大的生产力的解放了,讲后端java做成rest服务,前端所有的动态代码都可以交给前端工程师,对他们来讲,最舒服的动态网页方案,自然就是PHP,这个是历史沉淀决定了,谁也没法改变,无论你多么看不起PHP,包括我自己也是并不喜欢PHP,但是仍然要再强调一次,对前端工程师来说,最舒服最自在的动态网页方案,仍然是PHP!就如同上面很多人回答的,PHP就是快,快在哪儿?PM说要改什么,前端上手10分改好,30分钟后已经release了。把任务发给后端工程师?那慢慢等吧。。。

php程序员是继续往php道路走下去,还是转走java道路?

看得出来你在纠结未来的技术路线如何走,说说我自己的路线:
我最早学的是ASP,那时候就套套网站,那个年代靠ASP找工作也是一大把,也较容易找到工作。
后来发现ASP没落了,于是重心转到PHP(因为ASP、PHP一起学习的),就这样,一直做PHP,工作中不会遇到什么大问题,但是PHP也有它的瓶颈,PHP适合做网站,但对于某些业务需求它就搞不定,所以把目光瞄向Java,于是系统性的学习Java。
现在各类应用,用PHP+Java基本上就没啥问题了,所以说Java你也可以去学一下,两者互补。

PHP的开发效率比java要高,为什么现在java这么流行?

首先,你说的PHP比Java开发速度快,这点是在业内达成共识的,Java薪资这块普遍比PHP的高,开发效率反而更慢,这点也是实际情况。那为什么导致这种“倒挂”现象呢?在这里我们具体分析一下两者的特点优劣:
1、开发速度上:
在开发速度上,PHP开发起来比Java要快,所以项目周期也会缩短。因为PHP内置函数库是很强大的,它更适合做“胶水语言”,作为大前端开发语言是很合适的(因为前端逻辑可能会经常变动)。
2、性能上:
在小型项目上,PHP的性能高于Java性能(Java对于服务器硬件要求比PHP要高很多,占更多资源);但在大型项目上,Java的稳定性比PHP要强几个档次,性能上也是。总之PHP更适合只做中小型网站、或者大型网站的前台。
3、安全性上:
PHP在安全性上虽比其它脚本语言高,但如果开发者不留意,还是容易形成很多漏洞,因为PHP本身是弱类型语言,而Java是强类型语言,在安全性上高于PHP。所以一般银行系统都是清一色的Java。
综上,PHP被人评价为“脏而快的语言”,Java则更权威一点。所以在大型项目上,更多的是会选Java而不考虑PHP,PHP只适合做网站型应用。Java在开发速度上较慢,但换来的是稳定性的持续。

阅读更多 >>>  php怎样获取当前页面文件名

网站数据信息

"大公司为啥php转java,为什么大型网站前端使用 PHP 后台逻辑用 Java"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:大公司为啥php转java,为什么大型网站前端使用 PHP 后台逻辑用 Java的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!