12

私は Web 開発に不慣れで、js フレームワークがアプリで果たす役割を完全には理解していません。私は jQuery から始めましたが、マルチプレイヤー戦略ゲームである私のプロジェクトでは、prototype.js または node.js を試してみるべきだと言われました。

複数のフレームワークを使用する必要がないように、早い段階でフレームワークを選択し、それが必要なすべてを実行することを確認することは重要ですか?

4

4 に答える 4

9

私は Web 開発に不慣れで、js フレームワークがアプリで果たす役割を完全には理解していません。

あなたは新しいですが、あなたはラッキーです!

数年前、開発者は、CSS (まだ少しあります)、イベント処理、アニメーション、DOM 操作など、クロス ブラウザーの問題に対処するのに非常に苦労していました。ブラウザごとに異なるコードを頻繁に書かなければなりませんでした。

JavaScript ライブラリが実現し、開発者の問題が解決されました。開発者は舞台裏ですべての魔法を実行し、ユーザーは (ほぼ常に) 同じコードを記述して各ブラウザーで動作します。つまり、JavaScript ライブラリは、どのブラウザーでも使用できる一貫した関数セットを提供することで、クロスブラウザーの問題を独自に解決します。

通常、JavaScript ライブラリはこれらを処理するか、次のオプションを提供します。

  • クロスブラウザーの問題の処理
  • アニメーション
  • カスタム ダイアログとウィジェット
  • 少ないコードを書く能力
  • 特定のセレクター エンジン
  • DOMの作成・改変
  • イベント処理
  • ユーティリティ機能
  • AJAX

私は jQuery から始めましたが、マルチプレイヤー ストラテジー ゲームである私のプロジェクトでは、prototype.js または node.js を試す必要があると人々から言われました。

基本的に、それらは同じことを行います (上記)。どちらを選択するかはあなた次第です。個人的には jQuery が好きです。なぜなら、簡単に始められ、CSS のようなセレクター機構を備えているからです。

Node.JS は、クライアント側 JavaScript に基づく jQuery や Prototype とは異なり、まったく別の獣です。node.js はサーバー側 JavaScript です。

複数のフレームワークを使用する必要がないように、早い段階でフレームワークを選択し、それが必要なすべてを実行することを確認することは重要ですか?

たとえば、必要に応じて必要な場合を除き、重要ではありません。個人的には、最初に JavaScript 自体を学習することをお勧めします。そうすれば、後で JavaScript ライブラリにアクセスしたときに、それを最大限に活用できるはずです。

于 2012-06-30T19:44:58.387 に答える
4

JavaScript フレームワークの役割は非常に単純です。より高いレベルの機能のセットを提供して、以前に行われたことを再コーディングすることなくアプリケーションを構築できるようにし、開発のための構造を提供することです。jQueryまたはprototype.jsは、他の人が何度も何度も書く必要があることがわかった関数のセットと考えることができます。画面上のオブジェクトのアニメーション化や、DOM 内の要素のマージや再配置などは多くのアプリケーションに共通しているため、これらのフレームワークや他の多くのアプリケーションでは、これらの共通タスクを簡素化しようとしています。もう 1 つの優れた点は、プラットフォームごとに可能な限り最善の方法で一般的な問題を解決しているため、どのブラウザーや電話でも同様のエクスペリエンスが得られることです。これは以前はそうではありませんでした。

Node.js は別物です。これはサーバー側の言語 (もちろん言語は JavaScript です) ですが、実際にコードを実行してデータベースと通信し、ページをフェッチするという点で、php、perl、python、または ruby​​ (またはお気に入りのサーバー側言語) の役割を果たします。他の人は通常ブラウザでユーザーのマシン上でコードを実行します。

1 つのフレームワークを選択して、それをよく学習することをお勧めします (私の個人的な投票は、幅広い開発者ベース、優れたプラグイン、優れたドキュメント、およびコードのわかりやすさから jQuery です)。通常の JavaScript で橋渡しできるものでできないことは何でも。実際には、どのフレームワークでも何でもできますが、あるフレームワークでは別のフレームワークよりも単純なタスクがいくつかあります。複数で作業する場合、それらが積極的に衝突することはないかもしれませんが、それは開発の悪夢になります。

特定のアプリケーションを機能させるには、フロントエンドとバックエンドの両方が必要です。構築しようとしているアプリが Web サイトである場合は、必ずこれらの JavaScript フレームワークのいずれかを使用しますが、Android または iPhone のモバイル アプリについて話している場合は、これらは必要ありません。

于 2012-06-30T19:34:10.493 に答える
1

コメントに入れられたものを拡張し、これらの「フレームワーク」が何であるかを明確にするだけです:

好きなだけフレームワークを使用できますが、(適切に作成されていれば) 相互に競合することはありません。一部のライブラリでは、$ などの特殊文字に割り当てられるため、問題が発生する可能性があります。また、JavaScript でまだ使用されていない特殊文字の量が限られているため、これはほとんど避けられませんが、通常、より成熟したフレームワークではこれが特定され、回避策が記述されています。 jQuery.noConflict は、基本的に以前に $ を使用していたものを再割り当てします。

各フレームワークには負荷があり、それぞれに次のような特定のプログラミングのニーズに適した独自の特定のニッチ/API があります。

Sizzle (jquery で使用) - DOM を操作するための優れたセレクター構文

jQuery - 優れたプラグイン アーキテクチャ、一般的なプログラミング要件の多くを処理する成熟した API、jQuery UI と組み合わせると優れた UI コンポーネント

Handlebars.js - テンプレート ベースの dom 操作 + その他の素敵な MVVM (?)

Sproutcore.js、node.js...など - それぞれを読んで、フレームワークが何を目指しているかを確認してください。

それらを混ぜ合わせることができます - 時折競合が発生することがありますが、これは作成者に報告する必要がありますが、1 つのフレームワークに限定されているとは感じません。

于 2012-06-30T19:41:00.227 に答える
1

利用可能なフレームワークの範囲に当惑するのは簡単です。最近では、毎月新しいフレームワークが時代精神に入るように思えます。

重要なのは、自分に合ったものを使用することと、重要なことに、すべてのフレームワークとライブラリが同じことを行うわけではないことを理解することです。

たとえば、jQuery は DOM 操作と AJAX を中心にしています。はい、より多くの側面がありますが、これらがセールスポイントです. これをたとえば、データレベルの API を充実させて、たとえば PHP のようなものに近づけることがすべてである Underscore.js と比較してください。結局のところ、JavaScript には、そのような言語と比較して伝統的に制限のある API があります (ただし、ECMA の連続したリリースとベンダー固有の API で常に機能が強化されています)。

Node.js は、hackartist が彼の回答で述べたように、クライアントではなくサーバー側であるという点で、上記の両方とはまったく関係ありません。

特に初期段階では、焦点が似ている複数のライブラリを使用することは避けます。jQuery UI と、たとえば extJS の両方に読み込まれるプロジェクトに出くわします。はい、これでさらに遊べますが、オーバーラップを考えると、ページの読み込み重量に対するマイナスの影響がメリットを上回ります。見た目が気に入っていて、重要なことに、ドキュメントやコミュニティが快適に感じられるものを選びましょう。

最後に、ライブラリとフレームワークは実際には同じものではないことに注意してください。どちらも内部では JS です。ライブラリは関数とパターンの提供に向けて調整されており、少なくとも通常は、すべてをネイティブまたは「バニラ」JavaScript で行った場合よりも少ないコードを記述することを意味しますが、フレームワークは包括的な構造に関係しています。コードの構造と、さまざまな部分がどのように関連または相互運用するかを示します。

于 2012-06-30T19:50:48.570 に答える