web-dev-qa-db-ja.com

JavaScriptの重要性とそれを学ぶ最良の方法は?

私は新卒ですが、約6か月間Web開発を行っています。私が大学を卒業したとき、サーバー側の言語(PHP、Java)はクライアント側の言語よりも重要でした。 JavaScriptは、データを検証するため、またはAJAX=を使用してページを美化するためにのみ使用されました。サーバー側の検証はもちろんとにかく行われました。

私がより多くのプロジェクトに飛び込むと、JavaScriptが頻繁に使用されていることがわかります。主に視覚効果を作成するためのものですが、重要な部分はデータの伝達(JSON)と要求の作成(AJAX)に使用されます。私がフォローしているプロジェクトでは、JavaScriptがコードベースの30%-40%を占めています!

私の質問は: "JavaScriptは重要ですか?"

私の第一印象は良くありませんでしたが、良いJavaScriptを書くにはスキルが必要であることも理解しています。書くのはとても簡単なようですので、管理が非常に難しく、JavaScriptのフローを特定することが非常に困難です。

P/s:たくさんのトリック、ヒント、ライブラリ(JQueryのような)、およびチュートリアルがそこにあります。それらはたくさんありますが、開始する最良の方法がわかりません。ですから、誰かがアドバイスしてくれたらとても感謝しています。

[〜#〜] update [〜#〜]:現在、JavaScriptを使用しているところです。役立つアドバイスをありがとうございます。答えを要約して、同じ問題のある人にとって良い情報源になるようにします。

JavaScript:

良い理由:

  1. 最高のユーザーインターフェース
  2. 良いフレームワークがたくさん
  3. サーバーサイドJavaScript(MongoDBとNode.js)
  4. それから構築された多くの成功アプリケーション(Gmailは一例です)
  5. オブジェクト指向
  6. 良いサポート(HTML5を含む)

重要な概念

  1. クロージャー(イベント処理)

ベストプラクティス

  1. グローバルなものはありません。 「名前空間/ライブラリとクラス」を使用してみてください
  2. 機能しない(物議を醸す)。まだ機能を使っていますが、それほど悪くないようです。

リソース

  1. Mozilla Developer Network
  2. ダグラス・クロックフォード
  3. W3Schools(スターター)
  4. ティザグ
  5. Javascript-明確なガイド(電子ブック)(Douglas Crockfordが推奨)
  6. 最初のJavascript(電子ブック)
  7. 最初のAjax(電子ブック)
  8. Head Rush Ajax(電子ブック)
  9. オブジェクト指向JavaScript:Stoyan Stefanovによる、スケーラブルで再利用可能な高品質のJavaScriptアプリケーションとライブラリを作成してください。
  10. Javascript Koans

フレームワーク

  1. Mootools
  2. プロトタイプ
  3. 道場
  4. ExtJS
  5. ゆい
  6. GWT
  7. サーバー側:MongoDBとNode.js

JavaScriptの代替(Mike Samuelに感謝)

  1. GWT:code.google.com/webtoolkit(Java)
  2. コーヒースクリプト(python)

繰り返しますが、私はそれらすべてから大きな利益を得たので、すべての回答と意見に感謝します。それでも、closureについての彼の言及に対して、私は1つの回答、レネシスの回答しか受け入れることができないという事実のため、これは私に役立ちます。

25
Hoàng Long

現時点では、単純な静的ページを作成するのでない限り、JavaScriptはWebアプリケーションまたはWebサイトに不可欠です。あなたはそれを学ぶ必要があります。

私は言語自体を学ぶことを大いに支持していますが、実際に使用する必要があり、カスタムフレームワークがまだない、または必要ない場合は、jQueryを使用して学習します。これは、デザインと機能の両方において優れたフレームワークです。

closuresのしくみ(基本的には変数としての関数として定義されています)を学習してください。これは、jQueryの基盤がどのように機能するかを理解するのに役立ちます。

重要なヒントの1つは、守らないと、コードがすぐに制御不能veryになる可能性があることです:名前空間以外にはグローバルスペースを使用しないようにしてください/ライブラリとクラス! (決して関数!)

16
Nicole

はい

JavaScriptは、Web開発を行うために不可欠です。

クライアント側と一般

私は JavaScriptのベストプラクティスのリスト を少し前に作成しましたが、こっそりと JavaScript "gotcha's" に注意する必要があります。関数型プログラミングの基本を理解することは、非常に良い出発点です。物事をローカルスコープに保ち、ライブラリを作成してオブジェクトと関数を含めます。一貫性を保ち、 JSLint を使用します。

Mozilla Developer Network 、より具体的には JavaScriptセクション から始めることをお勧めします。 JavaScriptのしくみ、および一般的なヒントやアドバイスについては、非常に優れた情報がたくさんあります。

サーバーサイドJavaScript

私が強くお勧めするもう1つのことは、 JavaScriptベースのツール 、具体的には MongoDB および node.js を使用することです。 MongoDBは、クエリを実行してデータを操作するために内部でSpiderMonkeyを使用した「NoSQL」データベースです。 Node.jsは、イベント対応の低レベル接続、高レベルHTTP接続、およびサーバーサイドJavaScriptを作成するための他の多くの機能を有効にします。

6
Josh K

はい

短い答えはイエスです。UIが重要であり、最近では多くの問題が発生するため、常に重要であり、常に重要になります。気の利いた効果だけではなく、UIの改善により作業方法が異なります。これはすべてのユーザーにとって重要です。

しかし、待ってください。まだまだあります。

装飾ではなくフロントエンドアプリケーション

Javascriptを過小評価する前に(ほとんどの人はある時点でそうします)、javascriptは最初に考えている以上の能力があることを知っておく必要があります。今日(クライアントサイドのWeb開発を除いて)JavaScriptで何ができるかを見てみると、驚かれるだけでなく、刺激を受けて、見てみましょう。

Javascriptは、Googleの "node.js"だけで、バックエンド言語としてますます使用されています。

JavaScriptを過小評価しないでください

設計上の欠陥 を使用しても、前に例を示したように、開発者はそれを使って素晴らしいものを構築するようになっています。 javascriptを理解するには、おそらく Douglas Crockford よりも聞くのが一番良い人はいないでしょう。ありがたいことに、javascriptに対する私の最初の真剣なアプローチは、彼によるこの小さな話を通してでした。

"Javasciptプログラミング言語"( Part 1Part 2PartPart 4

個人的なメモ:どういうわけか、その話をちょうどいいタイミングで見つけることができました。それはすでに私が販売したプロジェクトアイデアの開発中であり、それが生産に成功しました...私が完全なjavascript noobだったとき(「ウェブページはあなたの名前を尋ね、それを表示します」レベル)。

jQueryとMootools

私はこれのためにトマトが顔に投げられるかもしれないことを知っていますが、-試してみる前にjQueryを試さないでください Mootools、なぜですか?、jQueryは人気です。 =なぜなら、実際にはscript kiddie(* dodges tomato *)は非常に気の利いたものをすばやく実行できるからです。

問題はその後、おいしいスパゲッティコードの形式で発生します。これがmeをjQueryに近づけないようにする1つのことです。コードはスケール。つまり、UI /アプリケーションに追加すればするほど、スパゲッティコードが多くなります。

JQueryが悪いと言っているのではなく、他のフレームワークでより優れたコードを実行できると言っているだけです。 それはクリーンなオブジェクト指向で十分に設計されたモジュラーjavascriptにつながるため、私は常にMootoolsを他のどのフレームワークよりも上に推奨し、一般的にはより良い言語。 Mootoolsのフレームワークの純粋なサーバー側javascriptバージョンもあります ダウンロードページ

これから私があなたに取ってもらいたい唯一のことは次のことです:あなたのスペクトルを広げるjQueryにこだわる前に.

その他の優れたフレームワーク:

*トマトの表面を拭く*

Mootoolsの性質をもう少し理解するには、以下を確認することをお勧めします。

最後に、frameworksは単なるツールであり、宗教ではないであることを覚えておいてください。jQueryとMootoolsでさえ、同時に正確に同時に使用できます( MooToolsを使用したオブジェクト指向jQuery(Pigsフライトを取る) )、そしてどんなツールとしても、それがあなたのニーズに合っている場合にのみ良いです。簡単なDOM操作が必要で、迅速でダーティな、またはすぐに利用できる気の利いたスクリプトjQueryが必要な場合は、OTOH、クライアント側アプリケーションのJavaScriptに依存する予定で、実際にクリーンなJavaScriptアーキテクチャが必要な場合、Mootoolsはあなたのために。

それを学ぶ

私が便利だと思ったいくつかのリソース:

  • W3Schools (開始する)
  • Tizag (開始する)
  • Mozilla Developer Network
  • 私はすでにダグラス・クロックフォードの講演へのリンクを貼っています(パート1から4)。しかし、 Yahoo!Video でjavascriptを説明する彼のビデオが他にもあります。
  • Mootools Essentials 付録に、いくつかの本当に素晴らしい低レベルの説明があります。
5
dukeofgaming

WebサイトではなくWebアプリケーションについて話している場合、長期的な傾向は、UI全体をJavaScriptで記述するか、JavaScriptで記述しないことです。

この理由は、クライアントとサーバー間でUIの状態を分離するのは厄介であることを人々が理解しているためです。その結果、UIコードを完全にクライアント上に、または完全にサーバー上に配置しようとする多くのソリューションがあります。それがサーバー上にある場合、ASP.NETのようなフレームワークになってしまい、あまりJavaScriptコードを記述しません。クライアント上にある場合、ExtJSやDojoなどのフレームワークになり、サーバーをデータストアとして扱うことになります(セキュリティの検証を伴う)。

私のようにクライアント中心のアプローチを好むのであれば、JavaScriptを本当に学ぶ必要があります。 Douglas Crockfordの本を読んで、大きなJSコンポーネントフレームワークの1つを学んでください(ExtJSが私のお気に入りです)。サーバー中心のアプローチを好む場合は、JavaScriptを気にしないでください。どちらのアプローチでもトップクラスのWebアプリを作成できますが、必要なスキルセットは大きく異なります。

私があなたに言えることは、JavaScriptを正しく使用すれば、JavaScriptは他のどの言語とも同じようにクリーンであることです。多くの人々がJavaScriptをPHPのように記述し、すべてを巨大なグローバルな泥の山の上に投げ込みます。 JavaScriptが正しく使用されたときに何ができるかを確認したい場合は、 ExtJSの例 を参照してください。

2
Joeri Sebrechts

JavaScriptはインタープリター型プログラミング言語であり、主に、WebブラウザーがWebページのダウンロードを完了した後に静的Webページを動的でインタラクティブなページに変換するために使用されます。一般に、Webページは、ユーザーエクスペリエンスに依存するのではなく、JavaScriptを使用してユーザーエクスペリエンスを向上させる必要があります。また、DOMオブジェクトとやり取りするためにHTMLページに埋め込まれています。 Gmailは、JSで実装されているインターフェースロジックのほとんどをJSで使用します。そして Douglas Crockford(現在はYahoo!の上級JavaScriptアーキテクト)によると、JSは World's Most誤解されているプログラミング言語

Microsoftのガジェット、Yahoo!などのWebアプリケーション以外に、JSが使用されている他のアプリケーションがあります。ウィジェット、Googleデスクトップガジェットなど.


それを学ぶために、私は Head First JavaScript を好みます。そして、 Head First AjaxHead Rush Ajax があります。これらは初心者には十分です。それらを見てください。

2

Javascript Koans は、JavaScript言語の(良いビット)について少し学ぶための楽しい方法です。

私はいくつかの追加の公案の貢献が大好きです。フォークしてプルリクエストを送信するだけです。

1
David Laing

オブジェクト指向JavaScript:Stoyan Stefanovによる、スケーラブルで再利用可能な高品質のJavaScriptアプリケーションとライブラリを作成してください。

名前を誤解しないでください。JavaScriptに関する以前の知識は想定していません。これは、JavaScriptに関する初心者向けの本です(プログラミング初心者ではありません)。タイトルがなければもっと有名になると思います。

私は最近同じ選択に直面していました、そして、いくつかの推薦された本を試みた後、私は結局これを読んでそして愛することになった。他の本は、辞書のように読むというJavaScriptの知識が多すぎると想定していました。これにはもっと多くの興味深い例/問題があり、欲求不満を解消するために言語の興味深い微妙な点を明示的に紹介しています。

1
zhenka

ちょうど楽しみのために this このJavascriptコードのビットの説明についてはリンク

($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)

他の回答で述べたようにJavaScriptを過小評価しないでください言語は非常に強力であり、上記の種類の難読化を可能にするため、それを知る時間。遅かれ早かれ、別の「賢い」プログラマーが、維持しなければならないコードに残したものと同様のものを解読しなければならない場合があります。

0
kloucks