噂によると、Tmall は最近、長年使用してきた PHP を完全に放棄し、Node に切り替えたとのことです。どのような点が考慮されていますか?
返信内容:
興味: Tmall 従業員、Tmall ノードのコア開発者。
Tmall PHP ノード移行の主要推進者の 1 人として、この質問に答えさせてください。まず、いくつかの質問について説明します。Tmall が登場する以前は、PHP は主にフロントエンド レンダリング ビジネスに使用され、バックエンド ビジネスは現在も主に Java であり、node はフロントエンド レンダリング レイヤーを置き換えるだけでした。 ; 2015 年以前の Tmall では、フロントエンド コードは基本的に PHP システム上で実行されていましたが、すべての PHP ビジネスが完全にオフラインになったのは 2016 年の初めになってからでした。
なぜ変更する必要があるのかと疑問に思われるかもしれません。 phpは世界で最高の言語ではないでしょうか?もちろん、php は世界で最高の言語ですが、Tmall には適していません。それは時代背景から始まらなければなりません。天猫のビジネス シナリオは非常に特殊で、毎年開催されるダブル 11 では、非常に強力なシステムの安定性と非常に高い開発効率が求められます。オリジナルの PHP システムは非常に前 (9 年以上前) に設計されました。設計の当初は、今日の Double 11 のような高い同時実行性と高効率の開発に対するプレッシャーはありませんでした。また、その当時のフロントエンド開発システムはありませんでした。時代は今日ほど完全ではありませんでした。 2014 年までに、フロントエンドは依然としてこの開発システムを使用してビジネスを行っていたと言えます。これは単なる焼畑農業であり、その効率はダブル 11 の膨大な需要を満たすにはほど遠いものでした。 2015 年のダブル 11 を例に挙げると、合計 1,000 を超えるイベント ページがオンラインで作成されると、需要の変化による手戻りも含めて多大な労力がかかります。 、費やされる時間は莫大になります。さらに重要なのは、PHP システムでフロントエンド開発を行う場合、フロントエンド開発者は PHP、JS、CSS を同時に習得する必要があるということです。ほとんどのフロントエンドは PHP についての十分な知識を持っていません。 、そしてそれらが作成するページのパフォーマンスは非常に悪いです。cat ホームページを例に挙げると、PHP バージョンは 25 コアの物理マシンで 300QPS しか実行できません。このような歴史的背景の下、Node は上記の問題をより適切に解決できます。実際、Tmall のホームページは 2014 年にノード ソリューションの試験運用を開始し、その年のパフォーマンスと安定性がビジネスのニーズを完全に満たしていました。同時に、現在のフロントエンド エンジニアリング ソリューションのほとんどは Node プラットフォームに基づいています。したがって、このような特定の歴史的条件の下で、Tmall は元の PHP システムを再構築するために Node を使用することを選択しました。
PHP と Node には優劣はありません。Tmall は、新しいフロントエンド レンダリング システムを再構築するために Node を選択しました。さまざまな要素を考慮すると、それが最適とは言えませんが、間違いなく最適です。ビジネス上の問題を迅速かつ効果的に解決し、企業に価値を生み出すことができる技術的ソリューションのみが生き残ることができます。
元アリババ PHP エンジニアとしてお答えします。
- Alibaba は Java テクノロジー文化であり、ビジネス部門のバックエンド システムのほとんどは Java で実装されています。 PHP は、Tmall で一部のフロントエンド プレゼンテーション層の作業 (一般にネストされたページとして知られる) のみを実行します。はは、結局のところ、この点では Java よりも PHP の方がはるかに使いやすいです。このチームは Java に比べて非常に小規模でしたが、ビジネスが複雑で変化しやすかった初期の頃、これらの PHP エンジニアは多大な貢献をしてくれました。非常に多くの汚い仕事が行われてきました。
- より正確に言うと、PHP はバックエンドのフロントエンドです。もちろん、ブラウザーのフロントエンドは依然として JavaScript によって支配されています。もともと密接に関連していた作業が 2 つのチームに分かれたため、コミュニケーションコストが大幅に増加しました。
- そもそもページの作成は技術的な仕事ではないので、node.js がそれを奪ったのは良いことです。このように、フロントエンド チームは、ブラウザのフロントエンドと HTML プレゼンテーション層 (ページのセット) の作業を担当するため、通信コストが大幅に削減されます。 PHP エンジニアは退職後、より多くのスペースを確保できる Java バックグラウンド開発に直接切り替えることになり、双方にとって有利な状況になります。
Tmall の PHP to Node のケースは、このシナリオでは実際に最も有利な選択です。他の企業が同様の状況にない場合は、不要なトラブルを避けるために追従しないでください。
人気のある情報: メインストリームにはノードがあってはならず、バックエンドはすべて Java である必要があります。Java は同時実行性の高い Alibaba システムに最適であるため、フロントエンドとバックエンドはゲートウェイ mtop を介して接続されます。シナリオ
利息関連、ダブル イレブン ファーマーに提供されたコード
この判断ができるということは、エンジニアの運用保守レベルが非常に高く、プロジェクトの実施プロセス全体に強い影響力を持っていることを示しています。
企業によっては、運用保守担当者がどのようなテクノロジーを使用したいかを聞いて、システムを新しいものにアップグレードすることを敢えて行わず、xx 個のコンポーネントを使用する必要がある場合があります。古いものだと監視が書けない ああ、運用保守というのはハードウェアだけのことですか?ん。
最適な言語というものはなく、最適な言語があるだけであることがわかりました。
レンダリング レイヤーを PHP から Node.js に変更し、内部 Zebra システムを使用してモジュールをページにすばやく構築するだけです。高負荷 QPS とデバイス検出については、CDN が担当します。
ほとんどの場合、フロントエンドのレンダリング レベルは計算よりもレンダリング出力に重点が置かれるため、Node.js を使用する方が Tmall のビジネス シナリオに沿ったものになります。
php業界に1年いるphperとして意見を述べさせていただきます。このニュースを見たとき、私は将来の雇用状況が悪いのではないかと少し心配になりました。実際、今年のPHPの雇用状況は昨年ほど良くないように感じますが、上記のコメントを読んだ後です。 , 私はまだ、最初に PHP をしっかり学び、その後、他の言語を学びたいと思っています。たとえ PHP の雇用状況が非常に良かったとしても、プログラミングで長く働くつもりのプログラマーは、1 つの言語だけで仕事をすることはできません。人生。したがって、この件に関しては、天猫の行動にあまり注意を払う必要はないと思います。さあ、小さなコーダー!
Alibaba は何年も前から PHP を放棄しており、Node への切り替えは純粋に視聴者を誤解させるものであり、バックエンドは依然として Java であり、長い間 Java によって支配されてきました。
Tmall は JAVA ベースではないでしょうか? フロントエンド言語は PHP だけではないはずです。この噂はどこから来たのでしょうか...
古いことわざにあるように、意見が異なると、遅かれ早かれ別れることになります。
PHP は世界で最も美しい言語です。そしてアリババのウェブサイトはとても醜い。