Reactフレームワークの歴史:FacebookがInstagramを取得した方法と、これがReact.jsのソースコードのオープンにつながった理由
![](https://habrastorage.org/webt/5e/ef/h4/5eefh4cykvvk8ad7tbdtuus5hfm.jpeg)
今日、 Reactは世界で最も人気のあるJavaScriptのJavaScriptライブラリの1つです。Githubには7万以上の「スター」、毎月少なくとも1100人の作成者、 数百万のダウンロードがあります。さらに、このフレームワークは4000以上の企業で使用されています 。 しかし、Facebookが初めてReactを世界に公開したとき、幸せな人はほとんどいませんでした。
ソフトウェア開発の世界で最も人気のあるテクノロジーの1つであるReactの誕生の話に飛び込むことにし、このライブラリの起源であるPete Hunt(現在はSmyteのCEO)を招待し 、ついに話しました彼らがReactを作成した理由、Instagramの買収後にこのテクノロジーがFacebookで人気を博した理由、そしてそれが人々にどのようにもたらされたか。
ハイライト
FacebookカメラアプリからInstagramの買収まで
マーク(ザッカーバーグ)は全員を集めて、「モバイルデバイスは「撃つ」ので、緊急にすべてを落とし、リソースをモバイル開発に移します」と言いました。 これはある種のクレイジーなアイデアだと思いました。ネットワーク上で最大の写真サイトの作業をサポートできず、チームに少数の人々がいます。 私たちのトラフィックのごく一部を占めるiOSおよびAndroid向けアプリケーションの開発に人々を移すのはまったく無意味です。 しかし、マークは100%正しかったことが判明しました-だからこそ、私はFacebookのCEOではありません...
Facebook Cameraアプリケーションを開発し、何が起こったのかを誇りに思っていました...しかし、Instagramが来て、私たちのプロジェクトは忘れ去られました...
InstagramのメンバーにはFacebookのガレージが与えられ、そこで落ち着いてアイデアを提出できました。 信頼できるFacebookセキュリティシステムを使用していましたが、 AWSの使用も継続し、私が知る限り、独自の製品戦略も開発しました...そして、私はInstagramに転勤した最初のFacebook従業員でした...
Alconostに翻訳
Instagramにはウェブサイトが必要です
彼らはすでに写真付きのページを持っていて、ウェブはちょうど計画のように見えたので、チームは最初にモバイルデバイスに焦点を当てました。Instagramは常に主にスマートフォン、タブレットなどです。さらに、彼らは多くの公開コンテンツを持っているので、 、仕事の重要な部分は検索エンジンの最適化だったと思います...
...誰かがアップロードしたすべての写真を見るのは不可能でした。 私たちはそれを修正したかったのですが、問題がありました: Djangoはアプリケーションサーバーで、特定の数の接続のみをサポートできるデータベースサーバーでPostgresを使用していました...ロードする場所がなく、多くの動的なWebページを提供することは、特にインターネットから見える。 レンダリングをクライアント側に転送する必要があると判断しました。
私はFacebookフロントエンド開発者(UIEチーム)に行き、「みんな、JavaScriptフレームワークが必要です。 どちらのアドバイスがありますか?「彼らは答えます:「まあ...現在3〜4つのパイロットプロジェクトが稼働しています:BoltJS、JSHTML、これがReactです。」 ...私はこれらのライブラリを見て、それらに取り組んだ人々と話し、 Reactを試してみることにしました。
ReactはFacebookで人気を集めています
広告部門の開発者が私にやって来ました-これはFacebookで最も強力なフロントエンドの1つです-「職場でのReactはどうですか?」と尋ねました。「はい、今はこのことのファンです。他には何も聞きたくありません。 「...
ジョーダンウォーク(Reactのアイデアを思いついた人)は広告チームの出身であることがわかりました。 製品の開発中、「ここで何かを変えるのは頭痛の種です。どこかでセミコロンを忘れると、会社は毎日の収入を失う可能性があります。」 ジョーダンは夜、週末にアイデアを残し、仕事の後も長持ちしましたが、最終的にチーム全体にこのプロジェクトに没頭させるよう説得することができました。 彼は何日もフレームワークに目を通し、その結果、主要な入力のコンポーネントを開発し、「ニュースフィード」の小さなブロックに展開するように見えましたが、これは別のアプリケーションではありませんでした-Instagramは最初の本格的なアプリケーションになりました...
そこで、彼らは広告部門で次のように決定しました。「ニュースフィードで機能し、Instagramで機能しました。自宅で試してみます。」 モバイル検索チームでも同じことが言われました。「ニュースフィードで機能し、Instagramで機能し、広告部門の人たちが自宅でそれを実装する予定です-試してみます」など。
Reactフレームワークのソースコードを開く
Facebookにかかわるすべての人は、そのためにドキュメントを書き、すべてを準備したので、そのとき非常に心配していました。
その年の後半にJSConf EU会議が開催されました。 私はこのようなことを言ったプレゼンテーションを書きました。「Reactの方が良いことをあなたに納得させるつもりはありません。 このライブラリの違いを説明し、誰も試したことのない3つまたは4つのアプローチを示します。」 今回、聴衆は(Reactフレームワークについての最初の講演と比較して)はるかに協力的であることが判明しました。
Reactについて議論するとき、安定性の問題はしばしば見落とされます。 私がFacebookを辞めたとき、すでに数万のReactコンポーネント、つまり数十万行のコードがありました。 互換性を損なうフレームワークに何らかの変更を加えた場合、コンポーネントを書き換えるように他の全員に伝えることはできません-これらの数十万行すべて... Reactチームはこれをしなければなりませんでした。 そのため、いくつかのスクリプトの助けを借りて何らかの自動化が必要になり、これらのスクリプトをコミュニティで公開する必要がありました。Angular2のアプローチはここでは適用できませんでした。同じ人が基本的な変更を加えてコンポーネントを書き直したためです。
Reactライブラリの将来に関する一般的な考えと考え
Reactチームは、「このライブラリを祝福し、適切なアプローチを実装していると信じています」と言うサードパーティのライブラリバッジを提供できるようにしたいと思います。
最近、ファイバーはテストに合格し始めました-これは本当にクールなプロジェクトのようです。 とても面白いアイデアがたくさんあります。 React VR開発の発表も興味深いイベントです。 React Nativeまたは単にReactを使用してナビゲートできるプラットフォームの数を考えてみてください:iOS、Android、インターネット、そして今や仮想現実...それは巨大なセグメントであることが判明しました。開発者にJavaScriptの使用方法を最小限に教え、 React-そして、これらすべてのプラットフォームのAPIに関するドキュメントがあれば、すぐにビジネスに取り掛かり、実りある仕事を始めることができます。 これは素晴らしいことであり、すべてがどのようになったかを見ることができて非常にうれしいです。
![](https://habrastorage.org/webt/vk/p-/xm/vkp-xmwxq1jsje2aof0bn3jmxla.jpeg)
Pete Hunt、CEO @ Smyte。 OG React.js。 元FacebookおよびInstagram
ジョナス:みなさんこんにちは。 ピート、あなた自身について少し教えてください。
ピート:もちろん。 私の名前はピートハントです。 昔々、私はFacebookで働いていました-Reactフレームワークのチームで。 過去2、2年半、私はSmyteという会社のCEO兼共同設立者です。
Facebookはこれを行います。最初の6週間は、トレーニングコース(ブートキャンプ)のプログラムに参加します-今かどうかはわかりませんが、その後は最初の6週間でした。 さまざまなタスクが与えられており、使用しているテクノロジーに応じて、フロントエンド、バックエンド、インフラストラクチャ、モバイルソフトウェアなどのタスクに取り組んでいます。
J:写真の操作はどうですか? ビデオや写真を使用した大規模な作業で問題が発生しましたか?
P:もちろん。 私はビデオに参加し、サポートやメンテナンスのようなことをしていました。
当時、多くのことが同時に起こりました。クロニクルが登場し、多くの検索機能などを備えていました。 当時、モバイルプラットフォームへのアクセスがあったことも重要です。そのため、会社に来てからわずか数か月で、Mark(Zuckerberg)が全員を集めました。
「モバイルデバイスが撮影されるので、緊急にすべてをドロップし、リソースをモバイル開発に移行します。」
-マーク・ザッカーバーグ
多くはWeb開発からモバイルプラットフォームのチームに移されました。これがなぜ必要なのか理解できなかったので、これは私を怒らせました。 私はスマートフォンを持っていなかったので、この「機動性」は私には魅力的ではありませんでした。 2011年で、最初のスマートフォンは卒業証書を受け取ったときに初めて登場しました。
これはある種のクレイジーなアイデアだと思いました。ネットワーク上で最大の写真サイトの作業をサポートできず、チームに少数の人々がいます。 私たちのトラフィックのごく一部を占めるiOSおよびAndroid向けアプリケーションの開発に人々を移すのはまったく無意味です。 しかし、マークは100%正しかったことがわかりました。だからこそ、私はFacebookのCEOではありません。
J:はい、いいアイデアでした。
P:間違いない。 誰かがモバイル開発チームに連れて行かれ、その中でもFacebookであまり忙しくない人々がいくつかの製品やインフラストラクチャ要素を購入する機会を得ました。 そのため、 Instagramを購入したとき、次のように言われました。「Instagramにアクセスし、それらに必要なWebコンポーネントを開発し、それらを統合し、Facebookチームへの参加を支援する写真の担当チームの経験者が必要です。 一般に、それらを正しく受け入れる必要があります。」 そして、私はInstagramに異動した最初のFacebook従業員の一人でした。
Q:しかし、あなたはまだモバイルプラットフォームの将来について確信を持っていませんでしたか?
P:私は、一般的に言えば、まだこれがどのように起こったかを理解しようとしています。 一般的に、ある晴れた日(または夕方)にメールで電子メールを受け取りました-「みんな、明日早く仕事に来てください。重要なお知らせがあります」。 私たちが来ました-そして、これは私たちに言われたものです:「事実は、私たちがInstagramを買ったことが約1時間後に発表されるということです-彼らのチームは今日の午後に会いに来ます。」 わあ!
J:ええ、はい、面白かったです。 それで、午後に14人があなたのオフィスに来ました。
P:はい、そこには約14人がいたと思います。 どこかにあなたが確かに数えることができる写真があります。
Q:Facebookカメラが好きでしたか?
P:そうですね。 私はすでに会社の精神に染み込んで成功したかったのですが、私たちに勝ってほしかったのですが、これは成功のようには見えませんでした...しかし、それは間違っていたことが判明しました。
InstagramのメンバーにはFacebookのガレージが与えられ、そこで落ち着いてアイデアを提出できました。 信頼できるFacebookセキュリティシステムを使用していましたが、 AWSの使用を継続し、私が知る限り、独自の製品戦略も開発しました。 興味深いことに、それはすべて非常に孤立しているように見えました。 私はマークや経営陣、他の誰とも話をしませんでしたが、彼らは彼らが望むことをする機会を単に与えられたように見えました。
J:それで、どうしてInstagramに移されたのですか?
P:ウェブサイトが必要でした。
J:彼らはそれを持っていなかったのですか?
P:彼らはすでに写真付きのページを持っていて、ウェブは計画中にしか見えなかったので、チームは最初にモバイルデバイスに焦点を当てました:Instagramは常に主にスマートフォン、タブレットなどです。さらに、彼らは多くの公開コンテンツを持っています、だから、仕事の重要な部分は検索エンジンの最適化だったと思う。実際、私はFacebookからInstagramチームに送られた最初のフルタイムの開発者だった。
J:いつそこに着いたのですか、彼らはまだフロントエンドのフレームワークを持っていませんでしたか?
P:私たちには、本格的なWebアプリケーションのセットになると思われる何かを開発するタスクがありました。 写真とプロフィールページから始めて、ハッシュタグページ、地図(たとえば、地理検索用)などを作成します。これらはすべてInstagram Webサイト用です。
J:その前に、個々の写真のページがありましたか?
P:はい、写真のページがあり、instagram.comが表示されました。これは、アプリケーションの看板としての役割を果たしました。 それだけでした。
J:はい、覚えています、写真しか見ることができませんでした。
P:ええ、誰かがアップロードしたすべての写真を見るのは不可能でした。 修正したかったのですが、問題がありました。Djangoはアプリケーションサーバーで、 Postgresはデータベースサーバーで、このデータベースは特定の数の接続のみをサポートできます。 容量に制限があり、可能な限りすべてを圧縮しました-ロードする場所がなく、多くの動的なWebページの作成と保守は、特にインターネットから表示される場合、大きな負担になります。 レンダリングをクライアント側に転送する必要があると判断しました。
FacebookはJavaScriptを使用しないようにしました。クライアントはより多くの負荷をかける必要があり、プロセッサの負荷が増大します。これはまだ調査が必要な別の言語です。 したがって、JavaScriptコードはほとんどありませんでしたが、このコードはどこでも使用されていました。 私はJavaScriptを知っていましたが、実際はそうではありませんでした。 そこで、私はFacebook(ユーザーインターフェイスを開発するためのUIEチーム)のフロントエンド開発者に行き、「みんな、JavaScriptフレームワークが必要です。 どのアドバイスがありますか?」
彼らは答えます:「まあ...私たちは3つまたは4つのパイロットプロジェクトを進行中です:BoltJS、JSHTML、そしてこれがReactです。」 これらのソリューションのそれぞれについて、パイロットプロジェクトがありました。おそらく何か他のことです... FacebookがWebOSから開発者を雇ったようで、これらの人たちは仕事に長けているようです。 また、Javelinモバイルフレームワークもあるため、さまざまなオプションがありました。 私はこれらのライブラリを見て、それらに取り組んだ人々と話し、 Reactを試してみることにしました。
「ポイントの間に」「Reactを試してみよう」と「何かを始めよう」「たくさんの血、汗、涙がありました。」
Q:その決定をしたきっかけは何ですか? 他のオプションはどうですか? 名前が気に入りましたか?..
P:これらのソリューションにはすべて独自の「ハローワールド」がありましたが、以前にクライアントアプリケーションでレンダリングする必要があった場合、Reactを見たときに、これはあまりにも良いと思うかもしれません。 しかし、私たちはこのフレームワークを立ち上げ、完全に機能しました。
Q:プロフィールページで?
P: Instagramのプロフィールページ。
J:あなたは仕事のスピードに感銘を受けました。 このReactのすばらしいところを実感して、すぐにプロファイルページの開発を開始しました。
P:はい。でも、「Reactを試してみよう」と「機能するものを手に入れよう」という点の間には、血、汗、涙がたくさんありました。
彼らはFacebook上で他の誰よりも上手に何かをすることができましたが、単にクラウドサービスを使用したものがありました。
良い例です:Reactを含むすべてのFacebook JavaScriptコードは、社内で開発されたパッカーによって構築されました。これは、機械学習または統計を使用した非常に高度なツールです。これは、個々のモジュールのダウンロードログと依存関係図を調べて実行されました最適化-結合するモジュールと、事前にロードする必要があるモジュールを示します。
ちなみに、このパッカーは科学の候補者によって書かれており、驚くほど働きました: Webpackよりも、 今日のオープンソースで見つかるものすべてよりも優れていますが、残念ながら、Facebookインフラストラクチャに大きく結びついていました。
最終的に、私はリーダーシップを発揮し、3人または4人の開発者から成るチームに加わりました。私たちはこのビジネス製品セット全体を追加および組み立てたいと考えました。 この時点で、私たちはすでにReactを試していました-それは私たちを魅了しました。
J:そして、Reactはクールなものであり、それを使用する必要があることをどの時点で認識しましたか? いくつかの予言があったのでしょうか? たとえば、「おそらく、Reactを使用すると、クールになります。」 どうだった?
P:チーム全体が働きました。 また、APIの多くをクリーンアップし、パフォーマンスの問題を修正し、Instagramにすべてを詰め込みました。そして、ソースコードを開いたときに、この多くを使用しました。
J:だから、それがすべてどのように発展したかを見ると、あなたが試したアイデアがあったことがわかります-そしてそれはその実行可能性を証明しました。 ところで、その時点で何人のユーザーがInstagramにいましたか?
P:覚えていませんが、数十億以上のようです。
A:それで、あなたはある程度このことがうまくいくことを知っていました。 Reactを使用して他のすべてをすぐに書き始めましたか?
P:このフレームワークは本当にクールなもので、真に革新的なアプローチであるように思えました。 私はその一部になりたかった。 したがって、暇なときにコードに貢献し始めました-Facebook側のコードベースに。 新製品がリリースされると、バグの修正、APIのクリーンアップ、ドキュメントの作成などを行いました。
J:Instagram。
P:はい-しかし、これらの修正はReactカーネルに返されていました。
Q:ソースコードは初日から公開されていましたか?
P:そうでもない。 Facebookは、ReactライブラリのソースコードをInstagramチームに完全に公開しました。
モジュールの唯一のソースはFacebookコードベースであったため、何らかの機能を使用する必要がある場合は、目的のコードを選択してInstagramにエクスポートするだけでした。 そして、常に問題になりました。すべてをRequireJSに変換し、たとえば何かを壊す可能性のある「ハッカー」スクリプトがありました-修正する必要がありました。 したがって、その時点では、安定性を夢見ることしかできませんでした。
J:あなたは変更を加えましたが、基本的には徐々に起こりました。 次に、ニュースフィードを作成する必要があり、明らかにReactを使用します。 そして、ニュースフィードの後に何が起こったのか、覚えていますか?
P:それから、Facebookでは、広告部門の開発者もクライアント側でレンダリングする必要がありました。彼らはいくつかの重要な広告製品を書き直したので、数か月前と同じように適切なツールを探しました。 最初はBoltJSがありましたが、その後Reactに切り替えました。
BoltJSおよび他の同様のソリューションを使用してアプリケーションを作成することにより、同様のアプローチとコンポーネントを使用します。 通常、最初のレンダリングの後、Reactがない限り、DOMモデルを手動で更新する必要があります。 Reactが何をしているのかを見たとき、それは私に脳を与えました;私はこれがどのように可能であったかを理解しませんでした。
これで、Reactがどのように機能するかをかなり明確に理解できました。違いを変更する仮想DOMモデルを想像してください。 当時、DOMモデルの更新は具体的な問題でした。 IE7および8で製品を展開したときのことを思い出し、レンダリングの速度がどれほど速いかを見たときに、これがまさに必要なものであることが明らかになりました。
J:うーん、これはすべて非常に興味深い。 すべてが非常に調和して考え出されたようです。 申し訳ありませんが、広告チームはBoltJSを見て、Reactに切り替えたとおっしゃいました。
P:はい、広告チームのメンバーが来ました-そして、これらはFacebookで最も強力なフロントエンド開発者の一部です-そして彼らは尋ねました:「仕事でReactが好きですか?」そして私は答えます:「はい、私は今、このことのファンです。友達として聞きたくないより」
その後、彼らはいくつかのパフォーマンステストを実施し、UIEチームもいくつかの内部テストを実施し、誰もがこのプログラミングモデルを非常に気に入っていました。このソリューションは、必要な問題を解決するのに十分な速度で動作することが判明しました。
J:ええ、はい、面白かったです。 そして、広告部門の開発者は何を必要としていたのですか-なぜ彼らはReactを使いたいのですか? 問題はありましたか? 彼らは以前何と仕事をしましたか?
P: Facebookで広告を出したことがありますか?
J:はい、取引がありました。
P:それは非常に複雑です。 さまざまな人口統計グループがあり、それぞれ異なる方法でお金を使うため、人がどこにいるかを理解する必要があります。 イスラエルで広告を行う場合、右から左、または左から右に表示する必要がありますか? また、実際の広告ユニットに正確に対応する広告ユニットのプレビューも必要です。そのため、同じコードでレンダリングする方法が必要です。さらに、編集機能を提供する必要があります。また、広告の作成と編集の境界線の場合もあります。 そして、すべてが迅速に機能するはずです。 また、「保存」ボタンを押しても変更が突然保存されない場合は、購入するつもりのないものに誤ってお金をかけることができます。 ですから、これは非常に大変な作業です。
ジョーダンウォーク(Reactのアイデアを思いついた人)は広告チームの出身であることがわかりました。 製品の開発中、「ここで何かを変えるのは頭痛の種です。どこかでセミコロンを忘れると、会社は毎日の収入を失う可能性があります。」
ジョーダンは夜、週末に仕事に取り組み、仕事の後に長引き、最終的に他のチームに彼の無邪気さを納得させることができました(方法はわかりません)。 彼は何日もフレームワークに目を通し、その結果、主要な入力のコンポーネントを開発し、「ニュースフィード」の小さなブロックに展開するように見えましたが、これは別個のアプリケーションではありませんでした-Instagramは最初の本格的なアプリケーションです。
J:それで、Reactはすでに何らかの形で広告に使われていることがわかっているのですか?
P:広告には使用されませんでした-「ニュースフィード」で少し使用されました。 ちょっとした実験でした。「ニュースフィード」のユーザーの1%が、クライアント側でコメントウィンドウを表示していました。
J:おもしろい...それはかなりうまくいったが、広告は深刻な問題だ。会社全体がそれを取り入れているからだ。 最初は、このアプローチはユーザーの1%がどこかでテストした後、パフォーマンステストを見たと思います。これが、広告が徐々にReactに転送された方法です。
P:その通りです。 そしてその後、FacebookはJavaScriptアプリケーションを記述するための新しい標準を事実上確立しました。
広告でのツールのパフォーマンスを証明できた場合、すべての「重い」ユーザーインターフェースでそれを証明する必要があります。 次に、2番目の質問が発生します。このことはモバイルデバイスでも機能しますか? 私たちはテストを実施し、JavaScriptがモバイルデバイスで機能する場合、Reactはそこで機能することを発見しました。
しかし、Facebookには別の深刻な質問がありました:レンダリングでクライアントをどれだけ過負荷にすることができますか?
J:Instagramがすべてを結び付ける前から、FacebookはReactライブラリのメインユーザーになりましたか?
P:最初はInstagramでした。 そこにはReactがいたるところにありましたが、この場合の製品の「コンタクトゾーン」はFacebookでの広告よりも少なかったため、国際化、ローカリゼーションなどに注意を払う必要はありませんでした。 はい、行を翻訳しましたが、たとえば、異なる通貨について知ることは不要でした。 他のコンポーネントの一部のコンポーネントをプレビューする必要はありませんでした-など。 当時、私のJavaScriptコードをチェックする必要はもうありませんでした-私はすでに自分でこれを行うことができました。
J:Reactフレームワークのソースコードを開くことにしたのはいつですか。
P:とてもよく覚えています...私はこのフレームワークの仕事を賞賛しました-私だけでなく:Facebookで彼は多くのファンを得ました。 たとえば、Michael LowmanはInstagramデザイナーです。今日使用されているオリジナルのWebサイトとロゴを思いついたのは彼でした。 Instagramから他の人がいましたが、彼らは日陰に少し残っていました。
私たち全員がこのことをとても喜んでいたので、彼らが私に魅力的な申し出をしたとき-あるスタートアップの最高技術責任者の地位(Facebookを去って彼らに行くこと、そして彼らはすでに数百万ドルの収入を得ていました)、私は答えました:しかし、6か月後、Reactフレームワークのソースコードを公開するのを手伝いたいと思っています...」と言ったのは、私がとてもクールだったからではなく、このアイデアが私を完全に魅了したからです。
しかし、この提案は私のキャリアにおける重大な進歩です。 しかし、それはどこにありますか:「いいえ、申し訳ありません。Reactというロケットにしっかりと釘付けにされています。」
A:Reactは未来です。
P:はい、十分な熱意がありました。 Reactは私が知っている最高の開発者によって作成されたためです。さらに、多くの競合するソリューションが並行して存在し、テンプレートで何かをするのは間違いであることがわかりました。 また、仮想DOMモデルにさまざまな変更を加えたソリューションがほとんどの場合に機能することもわかっていたため、確認することができました。 うまくいかなかった場合は回避策があり、Reactを使用してアプリケーションの90%を作成でき、残りの10%でこのライブラリなしで作成できました。
Q:オープンソースのアイデアをどのようにして得ましたか? 誰もが使用できるようにこのものをリリースする必要があることを決定しましたか、それとも単なる標準的なアプローチですか?異なる製品でうまく機能するコンポーネントがある場合、ソースコードを開くことを考え始めていますか?
P:みんなそれが欲しかった。 Facebookはどういうわけか、オープンソースではうまくいきませんでした。同社のポートフォリオは、放棄され忘れられたプロジェクトの束のようなものでした。 iOSには多くの人に知られているそのようなライブラリがあります-Three20 、そしてすべてのiOS開発者はFacebookを嫌っています:彼らのプロジェクトはこのライブラリに依存していたので、会社はそれをサポートするのをやめました-そしてもちろん、これは多くを怒らせました。 そのため、Facebookはこの分野ではあまり良くありませんでしたが、ある時点で彼らは改善することを決め、同時にジェームズ・ピアスを雇ったと思います。 そして、その当時、開発者の間で、Reactライブラリのソースコードを開きたいと思っていた多くの人々がいたことは、とても幸運なことに一致しました。
最後に、すべてを準備し、JSConf 2013カンファレンスで発表することにしました。覚えているかどうかはわかりませんが、カンファレンスはFacebookのスポンサーであり、このために会社は紹介レポートなどを作成する機会を得ました。 性能に関して何らかの合意がありました。 非常に魅力的な男であるTom Occhinoが登場し、すぐに私が会った中で最も賢い開発者であるJordanが彼の後ろに現れました。 そして、彼らはそのようなことを言いました:「要するに、我々はウェブアプリケーションを構築する新しい方法を思いつきました。 あなたはすべてを間違ってやっています-私たちがそれをどのように行うかを見てください。」少なくともそれはそれが認識された方法です。 , - XML JavaScript , . : «XML? XML, , JavaScript-, … — ».
, React, «OK» . , , .
: .
: , — , , , . - , React , , . , … — . , .
: , , , , Webpack.
: . Webpack , , . . , , : , .
: , React, Webpack?
: , . , , , Webpack , React.
: , -, ? «»?
: , . JSConf 2013 .
React , , . IRC-, — , : (Chang Lu) (Ben Alpert), . , : «, JSConf», — : « !»
: « , — !»
: — . : , (Christopher Chedeau) . - , — , - . , , . JSConf EU : « , React — . , , - , ». (David Nolen) — , ClojureScript . - React, , : MVC- JavaScript ( The Future of JavaScript MVC Frameworks ). React, . , - , React: - — — , React, .
: . , — StackShare. , ?
: 2013- — , 2014 .
: , : « StackShare», — - . , , : «, , ?»
: , , , — , , . : , , StackShare — .
: , - , . , . , : « React — , ?»
: React , : - , - — React, . , React — , — OCaml.
: - , ?
: - , TTI ( ). , , , , , . , — ?
: , — .
: . React, . , React — . - , , — .
: . ?
: , React. - - , : Angular 2 , .
: . ? ?
: . React, , , React - -, , , , : , . , .
, , — , . API. , — Google . NodeJS API . , , , . , .
, React , : , . . , . API - Node.js. : , - «document.--». — - , - : , , .
: React - , ?
: . -, , . : , , React. , « JavaScript». : , , — — .
, React -, : « , ». , : - — , React . , , , , .
: . , -, React? , -, ? — ? React Native, , , , — .
: Fiber — , . - , . React VR — . , , React Native React: iOS, Android, , . - React Microsoft Word — , .
, , JavaScript, React — , API , . , , . «» Windows Mac: , , React. , React.
- - . , . React, — , . , . , « »: , , , , , , - , , . , . , , - , .
: . : Smyte React?
: , Smyte — .
Smyte — « »: Smyte — API, «» — , , . , - , , , , . , , , .
: — « ». : , , — .
. , , , React, , , — , .
: Smyte , , ?
: . : GoFundMe, Indiegogo YouCaring, . — Quora, musical.ly TaskRabbit. , , , . , , , — .
: , . , - , , - . Smyte ? Smyte?
: . , , Smyte. … , , , , , .
, , . : « , ». Smyte: , , , .
: ! , .
: , .
Alconost is hiring
この記事はAlconostによって翻訳されました。
Alconost Nitro ( -) Frontend- (React.js). , dev@alconost.com