ホームページ  >  記事  >  バックエンド開発  >  タオバオのシニアアーキテクトが Weibo に投稿した一文、質問させてください

タオバオのシニアアーキテクトが Weibo に投稿した一文、質問させてください

WBOY
WBOYオリジナル
2016-06-13 12:56:19911ブラウズ

淘宝網の上級建築家が Weibo でこれを言ったので、質問させてください
淘宝網の上級建築家が Weibo でこれを言いました、内容は次のとおりです
「Web を行う場合、フロントエンドは PHP (または Ruby、Python、Perl) ですぐに開始する必要があります。ある程度の段階まで開発した後、中間層は C/などの言語を使用できます。高いパフォーマンスと分散サービスを実現するには、C++、Java、Go の 2 つの言語をよく学ぶ必要があります。」

リンクはこちら
このフロントエンドはどのように定義されていますか?あるいは、このフロントエンドとは何を指しますか?
私の現在のレベルでは、私が理解しているフロントエンドは html css js などです。


------解決策---------
N、直接対面することを指し、より広範囲にすべきです。ユーザーのパフォーマンス/受信層
-----解決策----------------------------
概要 ユーザーと対話する層をフロントエンドと呼び、PHP などのスクリプトもユーザーと対話します。バックエンドとは、データ ストレージまたは計算の層を指します。ログなどのデータベース、ログ分析など。

ただし、個人的には、mvc モデルの c がフロントエンドとバックエンドの橋渡しであるように、php などのスクリプトも中間層に位置付けられるべきだと考えています。
------解決策---------
タオバオのフロントエンドはPHPで作られているのではないでしょうか?最下層は c、c++、java
------解決策--------------------------- -----
高性能と分散を前提として、PHP はフロントエンドに到達しました... ここで言うフロントエンドは、一般的にフロントエンドを指す場合があります。プロジェクトでは、PHP はデータをスローする代わりに出力を処理することがよくあります。Say it についてはこれだけです。

このことには科学的な基準がないので、投稿者は、彼の言うことが何であれ、それを心配する必要はありません。
------解決策----------------------
彼が話しているフロントエンドとは何かではありませんフロントエンド、5階の意見と同じです

DAO 以下は通常 C++ か JAVA と言われています
-----解決策---------
いいえ、インターフェースを使用して他の言語のインターフェースにデータを転送する必要があります。これは、それぞれが一定期間実行される駅伝のようなものです。
私はこれを長年行ってきましたが、データをフォーマットしてすぐに次の相手に送信するだけなので、長い間データベースに「触れて」いませんでした。

引用:
引用: 彼の言ったフロントエンドは、5 階の意見と同様、私たちが通常理解しているフロントエンドではありません

DAO以下は通常C++かJAVAと言われています
私はまだそのレベルに達していません。私が書くコードはすべて同じ言語で書かれています。プロジェクトでの言語ライティングを褒める方法を知っていますか?
たとえば、あなたが言ったように、daoはjavaを使用します、おそらくdaoはphpを使用します、これをどのように組み合わせるのですか
?

-----解決策---------
引用:
私はまだそのレベルに達していません。私が書くコードはすべて同じ言語で書かれています。プロジェクトでの言語ライティングを褒める方法を知っていますか?
たとえば、あなたが言ったように、daoはjavaを使用します、おそらくdaoはphpを使用します、これをどのように組み合わせるのですか
?



DAO は引き続き PHP で記述できます。言語をまたぐ場合は、この DAO クラスに REST モードのデータ操作を実装し、JAVA が REST サービスを提供します。 実際にプレイしたわけではありませんが、手元のプロジェクトはこの段階に入る準備ができています。ただし、私は JAVA に習熟していないので、もちろん JAVA を使用して REST を実行することはなく、REST サービスとして PHP を使用します。 (主に分離のためであり、クロスランゲージを実現するためではありません)、将来的に JAVA に変更するかどうか見てみましょう... 会社は、たとえば従業員など、PHP 以外の技術者を雇用することに興味がないようです。時間をかけて .NET を学び理解するのに満足していない

------解決策--------------------- -----異なる言語での対話、最も単純な方法 この方法は、I/O 出力インターフェイスを使用して実行できます。たとえば、Java は PHP インターフェイスに json を返すように要求し、その結果を取得した後、それを .net にポストします。

ただし、Apache Thrift などの他の方法もあります。 Facebook によって以前に開発されたもので、これは翻訳機能として機能します。ソース言語のデータ構造を独自の中間言語 (DSL) に変換し、それをターゲット言語が認識できるデータ型に変換します。ただし、これは少し大掛かりで、ある程度の学習コストが必要です。
Google のprotocolbuf などの軽量なものもあります。

------解決策---------
引用: 引用: 言語をまたぐ必要はありません。インターフェイスを他の言語のインターフェイスに渡すだけです。これは、それぞれの言語が一定期間実行されるリレー レースのようなものです。 私はこれを長年行ってきましたが、データをフォーマットしてすぐに次の相手に送信するだけなので、長い間データベースに「触れて」いませんでした。
上記はタイプミスです。JSON データです。また、クロスランゲージである必要はないとも言いましたね。あなたの返答に対する私の現在の理解レベルから判断すると、あなたはすでにその言葉遣いを賞賛していると思います。他の言語のインターフェイスにデータを転送すると言ったからです。間違いではありません...

彼の言う通り、それは言語を超えた話ではありません。それが私が話している最初の方法です。
真に言語を横断するには、PHP が Java または .NET のデータ型を読み取りまたは参照できる必要があり、これには特定の変換作業が必要です。別の例として、c が C++ のクラス データを読みたい場合、c にはクラスがないため、構造体に変換する必要があります。 Thrift とprotocolbuf も同様に機能します。

最初の方法では、すべての言語でサードパーティのデータ型 (json、xml など) が使用されます。
------解決策-----
そうですね、JSON を除いて、実際にはクロスランゲージではありません、XML、BSON など、要件がそれほど高くない場合は、REST を通じてこれらのデータ形式を満たすことができると思います。ただし、REST は http プロトコルに基づいており、Web 開発の分野で一般的に使用されます。 非 Web 開発または Web 基盤モジュールが、実際の言語間翻訳データおよびオブジェクトである可能性があります。

------解決策---------------- - --- タオバオのホームページ、商品ページ、およびユーザーがよく使用するその他のいくつかの Web アプリケーションは PHP で作成されています。 Java や C++ よりも効率が高くなります。

タオバオの支払い関連機能は C++ または PHP で実行できます。
お金が絡んでくるので、こういった機能は本当に重要です。安全性やその他の要素を考慮してください。したがって、phpは使用されません。
また、phpからjavaを呼び出すこともできます。マニュアルには
があります。
これが私の理解です
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。