2016年1月3日、ダンアブラモフは次のようにツイートしました。
「2016年、Angular、Ember、Cycleの助けを借りて、より多くのReactプログラマーに何かを作成してもらいたい。 プログラマー、Angular、Ember、Cycle-React。 一緒に私たちはより多くを学びます。」
このアピールに続いて、Reactと経験を共有します。 しかし、これを行う前に、フロントエンド開発での最初の経験を説明します。
次のようなものでした:
Angularドキュメントとの戦い
私が学校プロジェクトのために作成した最初の独立したフロントエンドアプリケーション。 Angularでブラインド処理しましたが、アプリケーションは目立ちませんでした。 私は文字通り図書館をつまずいた。 ドキュメントを理解するのは難しいように思えたので、学習プロセスに圧倒されました。 すべてがアプリケーションを作成することになりましたが、ルートがありませんでした。 したがって、概して、それは役に立たなかった。 Angularを守るために、私はその時点ではまだ完全に環境に優しいと言え、Angular 2のドキュメントが良いか悪いかを評価できませんでした。
悪い経験の後、私は他の選択肢を探し始め、エンバーを試すことにしました。
Ember文書に対する私の反応
Emberを学習することは、何かを学ぶことと同じ困難を抱えています。 しかし、Angularと比較すると、学習は簡単でした。 EmberはAngularよりも軽く、AngularはEmberよりも重いとは言いません。 しかし、私はEmberコミュニティで私が本当に愛していること、つまりドキュメントへの注意を強調しています。 コミュニティがドキュメントを管理する方法により、Emberを簡単に知ることができます。 私の観点から見ると、エンバーを勉強するということは、この枠組みで採用されている慣習を勉強することを意味します。 Emberは、構成よりも慣習の哲学を適用します。
このフレームワークは、開発者に以下を提供します。
- Ember Routerを使用したルーティング、
- テストの「実行」、
- テストフレームワーク
- ember-dataを使用したデータ永続性ライブラリ、
- RSVPの非同期コードを使用した作業のライブラリ、
- ember-cliコマンドラインインターフェイス
- ポッドの標準プロジェクト構造
- リッチアドオンシステム 。
お気づきかもしれませんが、Emberツールボックスには余分な「グッズ」がたくさんあります。 これがどのように機能するかを理解するには時間がかかります。 しかし、この科学を習得すると、すぐに非常に生産的になります。 何がどこにあるかを知っているので、プロジェクトを簡単に開始したり、プロジェクトに参加したりできます。
ただし、既製のツールは、アプリケーション独自のアーキテクチャと比較できない場合があります。
反応開発
React.jsはフレームワークではなくライブラリです。 明らかに、それは開発者にEmberが持っている機能を提供しません。 Emberは家を提供し、Reactは家を建てるために使用できるツールを提供します。 またはタワー。 または宇宙船。 しかし、これは私の場合ではありません。 すべての準備が整ったEmberからやってくると、最初はReactで何をどのように使用するのか、特にツールチェーンの設定に関して理解するのが困難です。 Reactを使用するように訓練された多くの人々は、疲れを感じ、ある意味では失っています。
すべてを自分で設定したら、そのプロセスで何をどこで使用するかを学びます。これは開発者としての貴重な教訓になります。 Webpackとローダーの使用方法、開発サーバーの構成方法、またはテストフレームワーク(Mochaなど)を使用したテスト(Karmaなど)の実行方法を学習すると役立ちます。 私が受け取った知識は将来的に私を助けることができると確信しており、Emberで行われているすべての仕事に感謝します。
すべての自己調整は次のようになります。
しかし、それは価値があります!
Reactの操作方法を学ぶのは非常に簡単です。 近年、Reactは多くのJavaScriptフレームワークに影響を与えています。 エンバーも例外ではありませんでした。 彼は「コンポーネントファースト」アプローチ、非常にシンプルなライフサイクル、「アクションアップ、データダウン」システムなどを採用しました。
また、Reactを使用してプロジェクトを作成することで、ReduxおよびいくつかのReactツールを使用した関数型プログラミングをある程度行うことができました。 また、ReactとReduxには優れたドキュメントがあります。 これは学習プロセスにとって重要だと思います。
EmberをReactで調べて使用した後、あるフレームワークが他のフレームワークより優れているとは言えません。 どちらも同じ問題を解決するための異なるアプローチを表しています。 さらに、ソフトウェアを作成するための異なる哲学を表しています。 どちらの側を選ぶか(戦争のように)を選択する代わりに、オープンソースソフトウェアの作成の根底にあるハードワークに敬意を表さなければなりません。そして、できれば密輸業者。
最終的に、選択するフレームワークまたはライブラリは、期限、現在の問題、そしておそらく開発マネージャーによって決定されます。 Ember.jsおよびReact.jsを使用して、クールなアプリケーションを作成できます。 両方の生態系は素晴らしいです。
PS JSXはそれほど悪くありません。