据小道消息,天猫最近彻底抛弃用了多年的PHP,转投Node,出于什么考虑?
回复内容:
利益相关:天猫员工,天猫node核心开发者。
作为天猫php迁移node的主要推动者之一,我来回答一下这个问题。首先,解释一些疑问:关于使用范围,天猫之前php主要用于前端渲染这块业务,后台业务过去和现在一直都是Java为主,node替换的仅是前端渲染层;天猫在2015年之前,前端代码基本都跑在php系统上,直到2016年初,才彻底下线了所有的php业务。
各位可能要问了,为啥要换呢?php不是世界上最好的语言吗?php当然是世界上最好的语言,只是不适合天猫。这个得从当时的背景谈起。天猫的业务场景非常特别,每年的双11需要非常强的系统稳定性和非常高效率的开发效率。原先的php系统设计年代非常久远(9年多前),设计之初,没有现今双11这种压力高并发和高效率开发的压力,当时的前端开发体系也没有如今这般完善。可以说,到了2014年,前端还是使用这一套开发系统去撸业务,简直就是刀耕火种,效率上远远满足不了双11的海量需求。以2015年双11为例,总共上线了超过1000个活动页面,如果前端一个页面一个页面地去写,得耗费大量的人力,再算上需求变更带来的返工,耗费的时间又是一笔巨大的成本。更重要的,在php系统上系统做前端开发,前端开发人员需要同时掌握php,js和css,技术体系上存在隔离,大部分前端对php掌握程度不足,写出的页面性能非常糟糕,以天猫首页为例,php版本在25核的实体机上,只能跑出300QPS。在这样的历史背景下Node刚好能够比较好的解决上面的问题。其实早在2014年,天猫的首页就开始试点Node方案,并完美的度过了当年的双11,性能和稳定性完全满足业务的需要。同时目前前端的各种工程化方案大多基于Node平台。所以在这样的特定的历史条件下,天猫选择使用Node重构原有的PHP系统。
php和node没有谁好谁坏,php依旧是世界上最好的语言;天猫选择了Node来重构新的前端渲染系统只是各种因素的综合考量的结果,不能说最好,但肯定是最合适的。技术方案只有能够快速有效的解决业务问题,为公司创造价值,才能够活下去。
作为一个前阿里PHP工程师,我来回答一下。
- 阿里是Java的技术文化,绝大部分业务部门后台系统是Java实现的。PHP在天猫也只是做一些前端展现层的工作,俗称套页面。呵呵,毕竟这方面PHP比Java好用太多。这个团队比起Java来说规模非常小,在早期业务复杂多变的时期,这些PHP工程师们立下了汗马功劳。多少脏活累活都干了。
- 更准确的说PHP做的是后端中的前端,浏览器前端当然还是JavaScript的天下。本来关系紧密的工作还分成2个团队,增加了大量沟通的成本。
- 套页面嘛本来也不是什么有技术含量的工作,被node.js抢了去也是好事情。这样前端的团队多了一块蛋糕,浏览器前端与HTML展现层(套页面)的工作一个团队负责,少了很多沟通的成本。而退下来PHP工程师直接转去做空间更大的Java后台开发,双赢的局面。
天猫的PHP转Node的案例实际上只是在它这个场景下最有利的选型,其他公司如果不是类似的情况就别效仿了,避免带来不必要的麻烦。
普及信息: 主流一定没有node,后端都是java,前后端通过网关mtop连接,因为高并发场景java是阿里体系的不二选择
利益相关,为双十一贡献过的码农
能做出这个决定,说明他们的运维水平很高,而工程师在整个项目实施的过程影响力很强。
在次一些的公司里,通常运维一听你要用什么什么技术,两手一摊,系统不敢升到新的啊,xx组件要用旧的啊,不会写监控啊,意思就是运维只管硬件呗?nnd。
事实证明没有最好的语言,只有最适合的语言。
只是把渲染層從PHP換成Node.js,配套內部的斑馬係統,可以快速的將模塊搭建成頁面。至於負載高QPS、設備探測,則由CDN來負責。
大部分的情況下,前端渲染層面更多落在渲染輸出而不是計算,因此使用Node.js更加符合天貓的業務場景。
作为一个入行php1年的phper,发表下看法。当我看到这个消息的时候,我开始有了点担心,担心未来的就业会不会很糟糕,其实感觉今年php的就业形势不如去年,但是看了上面的评论,我还是先把php给学好,然后再学其他语言,就算php就业形势一直很好,一个打算长久干程序的码农,也不可能一辈子只搞一种语言。所以关于这个事情,我觉得没必要太在意天猫的行为,他只是做了适合他的事情而已。加油,小码农!
阿里抛弃PHP多年了好不 至于转投Node 纯属误导观众 Node只是渲染层 后台还是Java并且长期是Java统治
天猫不是JAVA为主么? 前台语言应该也应该不止PHP一种才对 哪来的小道消息...
还是那句老话,三观不同,早晚分手。
PHP是世界上最美的语言。而阿里的网站那么丑。
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn