らいふうっどの閑話休題

興味のあることをゆる~く書いていく

Angular in 2020 and Beyond の翻訳

mediumAngular in 2020 and Beyond の翻訳です。 長所、短所、そして次へ

f:id:ic_lifewood:20191225213626p:plain

まず、 Angular の利点、変更されるもの、および React よりも Angular の利点について説明しましょう。

私は主に Angular の未来と何が変わるかに焦点を当てています。 通常、 Angular について学ぶには、 GitHubリポジトリを参照します。リポジトリは、ここからアクセスできます。これは、コードの変更点や追加する機能について最新情報を入手するのに最適な場所です。 また、 Angular をプロジェクトに使用する場合は、問題を確認して問題に注意することができます。

・・・・・・

Angular の改善が必要な弱点

Angular の最大の問題は、 Angular で構築するアプリが比較的大きいことです。 これは、プロジェクトのファイルサイズが大きいことを意味します。 これは、 Angular CLI が原因の JavaScript バンドルが原因で発生します。 これらのバンドルを、 React アプリを作成して取得したバンドルと比較すると、 Angular アプリは大きくなります。

実行時には、違いは見当たりません。 ランタイムのパフォーマンスはかなり良いですが、アプリは単純なアプリであっても比較的大きいため、読み込みに時間がかかることがあります。

第二に、 Angular アプリは非常に複雑になる可能性があります。 Angular は完全なフレームワークです。 それだけでなく、機能とツールの完全なプラットフォームでもあります。 そして、それは、 Angular の学習が React の学習よりも少し難しいことを意味します。 React では、システムのユースケースに関連するコンポーネントの構築のみに焦点を合わせます。 後に、 React はいくつかの新しい機能を追加しましたが、そのコアはコンポーネントの構築に基づいています。 これは、 Angular にはあるが React には存在しないグローバルな状態管理、サービス、および依存関係の注入に関するものです。 HTTP または AJAX リクエストの場合、 React 用に別のライブラリが必要ですが、 Angular に組み込まれています。 ルーティングも同じです。

React および Vue JS と比較した場合、 Angular はより多くの関係が組み込まれているため、学習が少し難しいのはこのためです。これはアプリにも関連しています。 もちろん、それは難しいことですが、これは大きな強みでもあります。なぜなら、これは常に組み込まれているので、存在する機能にいつでも頼ることができ、非常にうまく機能するからです。 Angular のコアを開発する同じチームがフォームの検証やルーティングなどの作業も行うため、フレームワークのこれらの部分が最新であり、ベストプラクティスに従って、 Angular のバージョンと互換性があることに依存できます。 これは、 React で使用されるサードパーティのアプリでできることではありません。 ルーティングライブラリを使用している場合、 React の最新バージョンに更新されていないか、 React のすべての機能をサポートしていない可能性があります。 サードパーティのライブラリを同じレベルに更新するのには時間がかかります。

・・・・・・

Angular の輝く強み

Angular には、プロジェクトの種類に関係なく、より多くの依存関係とコンポーネントが組み込まれているため、 Angular で対応します。 これが最大の強みです。 多くの機能を選択できます。 優れたプラクティスに従うための明確なルールセット、明確な構文、および typescript があります。 明確に定義されたスタイルガイドと、 Angular を学習するための大量のリソースとチュートリアルがあります。

Angular の新しいバージョンは6か月ごとにリリースされます。 だからといってすべてが変わるわけではありませんが、フレームワークは徐々に進化します。 これがこれらの Angular アップデートの中核です。 すべての更新には完全な下位互換性があり、 Angular 2 の最初のリリース以降、小さな API の変更など、小さな変更のみが発生しています。 ゆっくりだが一定の改善は常に良いです。

Angular のある Web サイトには、 「バージョン8.0およびIVYの計画」 と呼ばれるブログ投稿があり、バージョン8および将来の計画について説明しています。 これは読む価値があり、Opt-in-Ivyのプレビューを提供します。 Ivyは内部の Angular Renderer です。 レンダラーは、指示を受け取ってDOMに変換するエンティティエンジンです。 レンダリングは非表示であり、 Angular での作業方法は変わりません。

・・・・・・

Angular を使用すると、小さくて高性能なアプリができます。 将来的には、2020年以降のように、最新の JavaScript の差分ロード、オプトイン Ivy プレビューが搭載され、 Angular チームはBazelの実装に取り組んでいます。Bazelは、Angular CLI で、 Google が開発したコンパイルツールです。 また、ファイルサイズの改善、より小さなバンドルの作成を支援し、一般的な開発者エクスペリエンス全体を強化するためのビルドプロセスを高速化することができます。 それはすぐに利用可能になります。

アプリケーションのサイズが小さくなるため、これらの弱点は取り除かれます。 代わりに、多くの機能、明確な構文、構造という強みがあります。 次に、小型で高性能のアプリを作成します。 繰り返しになりますが、 Angular チームの目標は、 API の大幅な変更を回避することですが、もちろん、コンポーネントを作成するためのいくつかの代替方法を確認できます。 そして、おそらく、 IVY で NG モジュールを削除することで可能になる可能性があるので、コンポーネントに集中することができます。

したがって、現在のAngular は、すでにかなり良いものであり、非常に人気があり、うまく機能しています。 アプリは少し大きくなっていますが、それは大きな問題ではありません。

medium.com

medium.com