据小道消息,天猫最近彻底抛弃用了多年的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后台开发,双赢的局面。
利益相关,为双十一贡献过的码农 能做出这个决定,说明他们的运维水平很高,而工程师在整个项目实施的过程影响力很强。
在次一些的公司里,通常运维一听你要用什么什么技术,两手一摊,系统不敢升到新的啊,xx组件要用旧的啊,不会写监控啊,意思就是运维只管硬件呗?nnd。 事实证明没有最好的语言,只有最适合的语言。 只是把渲染層從PHP換成Node.js,配套內部的斑馬係統,可以快速的將模塊搭建成頁面。至於負載高QPS、設備探測,則由CDN來負責。
大部分的情況下,前端渲染層面更多落在渲染輸出而不是計算,因此使用Node.js更加符合天貓的業務場景。 作为一个入行php1年的phper,发表下看法。当我看到这个消息的时候,我开始有了点担心,担心未来的就业会不会很糟糕,其实感觉今年php的就业形势不如去年,但是看了上面的评论,我还是先把php给学好,然后再学其他语言,就算php就业形势一直很好,一个打算长久干程序的码农,也不可能一辈子只搞一种语言。所以关于这个事情,我觉得没必要太在意天猫的行为,他只是做了适合他的事情而已。加油,小码农! 阿里抛弃PHP多年了好不 至于转投Node 纯属误导观众 Node只是渲染层 后台还是Java并且长期是Java统治 天猫不是JAVA为主么? 前台语言应该也应该不止PHP一种才对 哪来的小道消息... 还是那句老话,三观不同,早晚分手。
PHP是世界上最美的语言。而阿里的网站那么丑。

aphpdectionenceindectioncontainerisatoolthatmanagesclassdependencies, 향상 Codemodularity, testability 및 maintainability.itactAsacentralHubForCreatingAndingDinjectingDingingDingingdecting.

대규모 응용 프로그램의 경우 SELLENCIONINGESS (DI)를 선택하십시오. ServicElocator는 소규모 프로젝트 또는 프로토 타입에 적합합니다. 1) DI는 생성자 주입을 통한 코드의 테스트 가능성과 모듈성을 향상시킵니다. 2) Servicelocator는 센터 등록을 통해 서비스를 얻습니다. 이는 편리하지만 코드 커플 링이 증가 할 수 있습니다.

phPapplicationSCanBeoptimizedForsPeedandefficiencyby : 1) ENABLEOPCACHEINPHP.INI, 2) PREPAREDSTATEMENTSWITHPDOFORDATABASEQUERIES 사용

phpeMailValidationInvoLvestHreesteps : 1) formatValidationUsingRegularexpressionsTochemailformat; 2) dnsValidationToErethedomainHasaValidMxRecord; 3) smtpvalidation, theSTHOROUGHMETHOD, theCheckSiftheCefTHECCECKSOCCONNECTERTETETETETETETWERTETWERTETWER

TomakePhPapplicationSfaster, followthesesteps : 1) useopCodeCaching likeOpcachetOrpectipiledScriptBecode.2) MinimizedAtabaseQueriesByUsingQueryCachingandEfficientIndexing.3) leveragephp7 assistorBetterCodeeficiession.4) 구현 전략적 지시

toImprovePhPapplicationSpeed, followthesesteps : 1) enableOpCodeCachingWithApcuTeCeScripteXecutionTime.2) 구현 구현

의존성 주입 (DI)은 명시 적으로 전이적 종속성에 의해 PHP 코드의 테스트 가능성을 크게 향상시킵니다. 1) DI 디퍼 커플 링 클래스 및 특정 구현은 테스트 및 유지 보수를보다 유연하게 만듭니다. 2) 세 가지 유형 중에서, 생성자는 상태를 일관성있게 유지하기 위해 명시 적 표현 의존성을 주입합니다. 3) DI 컨테이너를 사용하여 복잡한 종속성을 관리하여 코드 품질 및 개발 효율성을 향상시킵니다.

DatabaseQuesyOptimizationInphPinVolvesVesstoigiestoInsperferferferferformance.1) SelectOnlyNecessaryColumnstoredAtatatransfer.2) useinDexingTeSpeedUpdatarretieval.3) ubstractOrerEresultSoffRequeries.4) UtilizePreDstatements Offeffi


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

드림위버 CS6
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기