问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-21 20:44

我来回答

3个回答

热心网友 时间:2022-04-07 11:21

php和java在开源社区的活跃度严重超过了其他的语言,使用人数也都是相当之多;活跃的开发工程师们能够给我帮助,且这俩都能很好的跨平台,不用花费大量的人力物力去维护。php灵活,好学,上手快,容易修改,容易发布,关键是热部署。
Java的优点是稳定可靠、运行效率高(尤其是JIT的出现之后差距更大了)、不容易犯错(强类型、预编译、必须拦截异常等等),缺点是开发和发布的效率相对较低。尽管优秀的工程师能在一定程度上改变以上的问题,但通常而言,哪能到处都是高手多如狗的梦之队?
从MVC的层次结构上说,在一般网站项目的开发周期中,需求变更最频繁、调整最多的是View,其次是Controller,最后是Model。这非常好理解,没事干谁天天改数据结构?每次版本升级控制结构都要改的啦,或多或少而已。
再次是两者之间的通信,目前RPC技术已经足够成熟,无论是Web Service/Hessian/RESTful API都能够让开发人员专注在功能开发上,而不需要过多的考虑异构平台的差异和通讯的细节。这也就意味着在大公司里同时应用两种语言的方案并不会引入过多的复杂度和工作量。当然,文档量的下限倒是因此被拔高了不少,但事实上大部分团队对此其实都是喜闻乐见的:别每天说文档重要但没空了,你不写其他同事怎么配合?
靠近用户的前端,使用PHP能够更快的完成前端频繁而琐碎的更新,自如的应对各种需求的变化。页面的结构调整、用户输入内容的基本验证、仅只和用户交互有关的简单逻辑等都很适合使用PHP来开发,甚至可以通过类似Smarty等模板技术将其页面的变动迁移到前端团队。而基本的业务逻辑和数据的更新采用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也要重启有木有?

热心网友 时间:2022-04-07 12:39

PHP还能搞前端?echo 'hello world'吗

热心网友 时间:2022-04-07 14:13

这个我也不太清楚啊,楼主去后盾人看看吧,说不定能解决问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 PHP做的后台服务端程序应该怎么运行。具体实现的方... 前端是php做的页面后端能用java吗 PHP网站后台需要哪些功能? 234g通用流量是什么意思 请帮忙解释3G4G5G的区别是什么? 洋泾浜的英语使用 什么是5G融合提速包? 3G.4G.5G是什么概念.怎样划分的? 为什么有国内2G3G4G融合流量,上网还是扣话费? 国内2G/3G/4G融合定向流量如何使用 什么是1G/2G/3G/4G/5G 国内2g3g4g流量和省内2g3g4g流量什么意思 中国移动的国内融合LTE(2g3g4g)定向流量什么意思... 套餐内包含2G/3G/4G网络流量是什么意思? 融合流量是什么? 5G流量包里面这个国内2G/3G/4G融流量是什么意思?... 电脑的一条横杠怎么打出来 电脑上打单子那一条横杠怎么打 这一道横杠在电脑键盘上是那个键? 电脑输入横杠在上边,按哪个键? PHP只能开发后端吗? 求好看的素描动漫女孩图片 求几张动漫女孩萌系的眼睛素描教程图片 求超可爱动漫女生素描图 动漫少女的素描图片,要铅笔画的 素描的动漫女生,要比较Q一点的那种,不过不要太难... 简单素描卡通女孩怎么画 动漫素描图片 古代漫画美少女素描图片(手绘)百 怎么画最简单的素描卡通少女 求一张呆萌的素描卡通女生简笔画图片 卡通女生素描该怎么画 素描的动漫人物图片 女生 要长头发的好看的 最好好... 求动漫美女图片素描, 如何画动漫少女的眼睛素描 漫画素描人物头发比较难画特别是女生的头发让我一... 求发一些动漫类女生图片,黑白色的。像素描、漫画... 看p站用什么浏览器 电脑╳p系统用什么浏览器好用 有什么PSP的浏览器啊?