JavaScript開発者に最適なツール



ある種のJSライブラリが定期的に登場し、さまざまなフォーラムで騒々しく議論し始めています。 第一に、熱意が徐々に高まり、コミュニティはすぐに戦争キャンプに分割されます。これは新製品とは異なって関連しています。 すべての一般的なJSフレームワークとライブラリを検討することは信じられないほどの偉業となるため、最も人気があり影響力のあるフロントエンド開発ツールのリストを提供したいと思います。 同時に、それらの使用に関するいくつかの推奨事項を示します。

しかし、ビジネスに取りかかる前に、次のことを明確にします。



Angularjs


これは、多くの開発者が複雑なWebアプリケーションを作成および保守するために使用する一般的なエンタープライズレベルのフレームワークです。 おそらく、非常に人気があると見なす方が正しいでしょう。 Angularは、Domino's Pizza、Ryanair、iTunes Connect、PayPal Checkout、Googleなどの企業で使用されています。 これは、Googleがサポートするオープンソースフレームワークです。 Angularは、複雑なWebアプリケーションを構築するための「HTML拡張機能」として位置付けられています。 TypeScriptに精通しているなら、Angular 2が TypeScript書かれていることを知りたい思うかもしれません。

角度-MVCフレームワーク。 モデルとビュー間の双方向のデータバインディングを実装します。 このアプローチにより、データの変更に応じて両側で自動的に更新できます。 Angularでは、再利用可能なビューコンポーネントを作成できます。 また、利用可能なサービスフレームワークのおかげで、バックエンドとフロントエンド間の相互作用を簡単に構築できます。 そして最後に、Angularは純粋なJavaScriptです。

使用に関する推奨事項 :複雑なフロントエンドアプリケーションを作成していて、問題を解決できる単一のモジュラーフレームワークが必要な場合。

GitHubhttps : //github.com/angular/angular.js
オフサイトangularjs.org

ReactJS


昨年の最も人気のあるJSプロジェクトの 1つ。 私は彼については話しませんでした ほとんどすべての会議で、Reactとこのファミリーの他のライブラリ( FluxRedux )に関する講演を聞くことができました。

React-ユーザーインターフェイスを作成するためのJSライブラリ。 これは、多くの大企業の参加を得て、主にFacebookで開発されたオープンソースプロジェクトです。 MVCモデルに関しては、ReactはVを指し、アプリケーションアーキテクチャの他のすべての側面を事実上無視します。 UIエレメントの作成と組み合わせを容易にするコンポーネントレイヤーを実装します。 インターフェイスレンダリングは、DOMを抽象化することで最適化されます。これにより、Node.jsからReactをレンダリングすることもできます。 さらに、Reactは一方向のリアクティブデータストリームを実装しているため、他のフレームワークと比較してツールの理解と習得がはるかに容易になります。

Reactは、EmberとAngularのVを置き換える場合があります。

使用に関する推奨事項 :強力なビューレイヤーフレームワークが必要な場合、およびその他のアプリケーションレイヤーが必要な場合。 または、ReactをAngular、Backbone、またはEmberの追加として使用できます。 最後に、Reactは同形Webフレームワークの作成に役立ちます。

GitHubhttps : //github.com/facebook/react
オフサイトFacebook.imtqy.com/react/

バックボーン


このフレームワークはそのシンプルさで知られており、単一のJSファイルに収まります。 Backboneは、 CoffeScriptUnderscore.jsも作成したJeremy Ashkenasによって作成されています。 開発チームは特に、AngularやEmberなどのモンスターを必要としないシンプルな構造のWebアプリケーションを作成する開発チームを使用することを好みます。

バックボーンは、本格的なルーティングMVCフレームワークです。 モデルを使用して、データの変更を処理するためのキーと値のバインディングとイベントが実装されます。 モデルとコレクションは、RESTful APIと対話できます。 ビューは宣言型イベント処理を使用し、ルーターはURLを使用して状態を管理します。 過度の機能や複雑さを伴わずに1ページのアプリケーションを作成すれば十分です。

使用に関する推奨事項 :これは、単純なWebアプリケーションを作成するための優れたGOTOフレームワークです。

GitHubhttps : //github.com/jashkenas/backbone/
オフサイトbackbonejs.org

エンバー


このかなり人気のあるフレームワークでは、プログラマーの生産性を向上させることに重点が置かれています。 Emberの主要な開発者の1人はYehuda Katzです。彼はRuby on RailsとjQueryの作成に深く関わっています。 Emberは、時間を無駄にしない「意欲的なWebアプリケーションを作成するためのフレームワーク」として位置付けられています。 彼は非常にarbitrarily意的に振る舞い、自分で多くのことを決定し、開発者に事実に立ち向かいます。

EmberはMVCフレームワークにも属します。 テンプレートと、Angular、Backbone、Reactと同じ方法でデータを自動的に更新する組み込みのビューエンジンを使用します。 Emberは、 Webコンポーネントテクノロジーをサポートしており、独自のタグでHTMLを拡張できます(Angularと同様)。 また、フレームワークには、RESTful APIで動作できるルーティングエンジンとモデルが組み込まれています。

使用に関する推奨事項 :正常に機能するフレームワークが必要な場合。 また、Emberは、限られた予算または厳しい締め切りのために柔軟性を必要としない人にとって有用です。

GitHubhttps : //github.com/emberjs/ember.js
オフサイトemberjs.com

jQuery


jQueryライブラリーの紹介は不要です。 彼女のクロスブラウザのサイトのおかげだけが現実になり、ウェブはモダンな外観を獲得しました。 jQueryは、ほとんどの主要なブラウザーがWeb標準をサポートし始めた理由の1つになりました。 jQuery Foundationの使命は、「オープンソースソフトウェアの開発とサポート、および開発者コミュニティとのコラボレーションのおかげで、誰もがアクセスできるようにオープンWebを改善することです。

jQueryは世界で最も使用されているJSライブラリであり、DOM、イベント処理、アニメーション、およびAJAXの使用による作業を簡素化します。

使用に関する推奨事項 :このライブラリは常に使用できます。 Zeptoのようなよりコンパクトなバージョンを好まない限り。

GitHubhttps : //github.com/jquery/jquery
オフサイトjquery.com

アンダースコアとダッシュ


標準のJavaScript機能では、完全に動作できない場合があります。 補助機能、またはコードを簡素化する機能が常に不足しています。 アンダースコアとlodashは、組み込みのJSオブジェクトにモンキーパッチを適用することなく、100以上のヘルパー関数とその他の便利な機能を提供するJSライブラリです。 特に、 map, filter, invoke, reduce, template, throttle, bind, extend, pick, cloneなどが利用できます。

Underscoreの使用に関する推奨事項 :プログラマーとしての生活をすぐに楽にする単一のJSファイルが必要な場合。

GitHubhttps : //github.com/jashkenas/underscore
オフサイトunderscorejs.org

lodashを使用するための推奨事項 :AMDおよびコミュニティが作成したプラグインのサポートが改善された、アンダースコアのモジュール型でわずかに高速なバージョンが必要な場合。

GitHubhttps : //github.com/lodash/lodash
オフサイトlodash.com

D3.js


Webアプリケーションの標準要件の1つは、データの視覚化とグラフ化です。 そしてこの分野では、事実上の標準はD3.jsです。 これはGithubで最も人気のあるプロジェクトの1つであり、多くの企業で使用されています。 D3は、チャート、グラフ、その他の種類の視覚化を構築するためのライブラリ群の基盤です。

D3では、任意のソースからデータを取得して、DOM / SVG / CSSに変換できます。 このプロジェクトは最新のWeb標準をサポートしているため、FlashやSilverlightなどの独自の形式に遭遇する可能性について心配する必要はありません。

使用に関する推奨事項 :あらゆる種類の視覚化。

GitHubhttps : //github.com/mbostock/d3
オフサイトd3js.org

Babylon.js


最新のWeb標準に完全に準拠したクロスブラウザゲームを作成したいですか? 次に、WebGLとJavaScriptに基づく3次元エンジンであるBabylon.jsを見てください。 リアルな物理学、サウンド、パーティクルシステム、その他の美しさを備えた信じられないほどの高品質のゲームを作成できます。

使用に関する推奨事項 :ゲームや複雑な3Dシーンを作成する場合。

GitHubhttps : //github.com/BabylonJS/Babylon.js
オフサイトbabylonjs.com

Three.js


これはかなりコンパクトな3Dライブラリであり、本格的なゲームエンジンを使用せずに、HTML5キャンバス(キャンバス)、SVG、およびWebGLで3Dシーンをレンダリングできます。 Three.jsは非常に使いやすく、オフサイトではさまざまな使用方法を確認できます。

使用に関する推奨事項 :キャンバスに表示できるシンプルな3Dビジュアライゼーションが必要な場合。

GitHubhttps : //github.com/mrdoob/three.js/
オフサイトthreejs.org

モカとチャイ


JavaScriptコードのテストは、長い間非常に面倒です。 他の言語のコードのテストについても同じことが言えますが。 しかし、すべての開発者は定期的にテストに参加する必要がありますが、私たちの多くはこのアクティビティを好まないため回避しています。 ただし、2つの詩的なライブラリ、MochaとChaiは、テストプロセスに対する嫌悪を克服するのに役立ちます。

Mochaは、ノードモジュールまたはブラウザーアプリケーションで非同期コードを簡単にテストできるJSフレームワークです。 Mochaのテストでは、例外トレースの品質が向上し、連続して実行できます。

ChaiはTDD / BDDアサーションライブラリです。Mochaで使用すると、テストをシンプルで読みやすい形式で表現できます。

使用に関する推奨事項 :常に! コードをテストし、世界を少し良くします。

GitHub Mochahttps : //github.com/mochajs/mocha
オフサイト モカmochajs.org

GitHub Chaihttps : //github.com/chaijs/chai
オフサイト チャイchaijs.com

カルマ


MochaとChaiがリストに登場したため、ここにテストランナーを含める必要があります。これにより、継続的な統合テストが可能になります。 Karmaは、異なるブラウザーでのMochaおよびChaiテストの作業を自動化するのに役立ちます。

すべてのブラウザがどのプラットフォームでも動作するわけではないため、テストプロセスを促進する無料のツールに注意してください。


使用に関する推奨事項 :アプリケーションの包括的なテスト、およびすべてのブラウザーでテストに合格することを確認する場合。

GitHubhttps : //github.com/karma-runner/karma
オフサイトkarma-runner.imtqy.com

Phantomjs


テスト実行中にブラウザー全体を起動するのはあまり経済的ではありません。これにより、メモリーとプロセッサーのリソースが過剰になります。 PhantomJSを使用すると、Safariで使用されるエンジンであるWebKitのヘッドレスバージョンを実行でき、以前のバージョンではChromeでも使用できます(今日ではBlinkを使用しています)。 JavaScript APIから、テストの実行、スクリーンショットの作成、ネットワークの監視、ページの表示の自動化を行うことができます。

使用に関する推奨事項 :多数のテストを実行し、ページ操作を行い、ネットワーク要求を監視する必要がある場合。

GitHubhttps : //github.com/ariya/phantomjs
オフサイトphantomjs.org

グラントとガルプ


サイトを実稼働環境にロールアウトする準備として、通常、JavaScriptとCSSの縮小を使用したパフォーマンスの改善、CoffeeScript / TypeScriptのコンパイル、ユニットテストなどのタスクを実行する必要があります。 確かに、運用環境での展開のためにサイトを準備するツールのパッケージが既に手元にあります。 ただし、そうでない場合は、GruntまたはGulpをタスクランナーとして推奨できます。 両方について、無数のプラグインが作成されており、展開の準備としてサイトで何でもできるようになっています。

Gruntの使用に関する推奨事項 :構成ファイルを作成することを好み、タスクエグゼキューターが中間ファイルを生成できることを気にしない場合。

GitHub Grunthttps : //github.com/gruntjs/grunt
Grunt Offsitegruntjs.com

Gulpの使用に関する推奨事項 :構成する代わりにコードを作成することを好み、Node.jsストリームを使用してパフォーマンスを向上させたい場合。

GitHub Gulpgithub.com/gulpjs/gulp
Gulp Offsitegulpjs.com

バベル


言語としてのJavaScriptは急速に発展しています。 たとえば、 ECMAScript 2015は昨年の夏にリリースされ、そのコア機能の多くはすでに多くのブラウザーに実装されています。 ECMAScript 2015との互換性の問題に興味がある場合は、 kangax調べることができます。 Edge、Chrome、Firefoxの最新バージョンはほぼ完全に互換性があることに注意してください。

しかし、私たちは理想的な世界に住んでいません。 開発者は、最新かつ最高のJavaScript機能をサポートしない古いバージョンのブラウザーをサポートする必要があります。 そして、ウェブとコードベースを改善したいと考えています。 これは、SS標準の最新機能をES5に変換するJSコンパイラであるBabelを使用して実行できます。 これにより、IE 9などの非常に古いブラウザーでも実行できます。Reactでの開発を促進するBabel向けに記述されたプラグインがいくつかあり、仕様で説明されていない機能(ES7など)を使用します。

使用に関する推奨事項 :最も高度なJavaScript機能を使用したいが、古いブラウザーのサポートを維持する必要がある場合。

GitHubhttps : //github.com/babel/babel
オフサイトbabeljs.io

作詞家:Rami Sayar
トップJavaScriptフレームワーク、ライブラリ、ツール、およびそれらを使用するタイミング

Source: https://habr.com/ru/post/J277869/


All Articles