検索
ホームページバックエンド開発PHPチュートリアルTmall が PHP を完全に放棄したことについてどう思いますか?

噂によると、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 エンジニアとしてお答えします。
  1. Alibaba は Java テクノロジー文化であり、ビジネス部門のバックエンド システムのほとんどは Java で実装されています。 PHP は、Tmall で一部のフロントエンド プレゼンテーション層の作業 (一般にネストされたページとして知られる) のみを実行します。はは、結局のところ、この点では Java よりも PHP の方がはるかに使いやすいです。このチームは Java に比べて非常に小規模でしたが、ビジネスが複雑で変化しやすかった初期の頃、これらの PHP エンジニアは多大な貢献をしてくれました。非常に多くの汚い仕事が行われてきました。
  2. より正確に言うと、PHP はバックエンドのフロントエンドです。もちろん、ブラウザーのフロントエンドは依然として JavaScript によって支配されています。もともと密接に関連していた作業が 2 つのチームに分かれたため、コミュニケーションコストが大幅に増加しました。
  3. そもそもページの作成は技術的な仕事ではないので、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 は世界で最も美しい言語です。そしてアリババのウェブサイトはとても醜い。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP依存性噴射コンテナ:クイックスタートPHP依存性噴射コンテナ:クイックスタートMay 13, 2025 am 12:11 AM

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

PHPの依存噴射対サービスロケーターPHPの依存噴射対サービスロケーターMay 13, 2025 am 12:10 AM

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

PHPパフォーマンス最適化戦略。PHPパフォーマンス最適化戦略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPメールの検証:電子メールが正しく送信されるようにしますPHPメールの検証:電子メールが正しく送信されるようにしますMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

PHPアプリケーションをより速くする方法PHPアプリケーションをより速くする方法May 12, 2025 am 12:12 AM

tomakephpapplicationsfaster、followthesesteps:1)useopcodecachinglikeopcacheTostoredscriptbytecode.2)最小化abasequeriesecachingingindexing.3)leveragephp7機能forbettercodeefficiency.4)

PHP依存性インジェクション:コードのテスト可能性を改善しますPHP依存性インジェクション:コードのテスト可能性を改善しますMay 12, 2025 am 12:03 AM

依存性注入(DI)は、明示的に推移的な依存関係によりPHPコードのテスト可能性を大幅に改善します。 1)DI分離クラスと特定の実装により、テストとメンテナンスが柔軟になります。 2)3つのタイプのうち、コンストラクターは、状態を一貫性に保つために明示的な式依存性を注入します。 3)DIコンテナを使用して複雑な依存関係を管理し、コードの品質と開発効率を向上させます。

PHPパフォーマンスの最適化:データベースクエリの最適化PHPパフォーマンスの最適化:データベースクエリの最適化May 12, 2025 am 12:02 AM

DatabaseQueryoptimizationInpholvesseveralstrategESTOEnhancePerformance.1)selectonlynlynlyndorycolumnStoredatedataTransfer.2)useindexingtospeedupdataretrieval.3)revenmecrycachingtostoreres sultsoffrequent queries.4)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター