すべてのJavaScript開発者が読むべき12冊の本

注:描かれているWeb開発ブックのランダムなコレクション。

私はJavaScriptブックの大ファンです。 JavaScriptの長年の学習者である私は、市場に出回っている非常に多くの人気のあるJavaScriptの本を読むことができました。最近は、初心者をランク付けすることを目的としたものをスキップする傾向がありますが、JavaScriptの開発者向けの書籍を多くの経験がなくても読んでいます。

これはJavaScriptブックにとって奇妙な時期です。 ES6でJavaScript言語のメジャーアップデートが行われたため、今日のJavaScriptシンタックスとスタイルは、ほとんどの本で説明しているES3-ES5スタイルのJavaScriptとは大きく異なりますが、ES6は実際にはES5のスーパーセットであり、古い本のなかにはまだ適用できる学習のナゲットがあります。

つまり、古い本は時代遅れではなく、わずか2年前にリリースされたものでさえ、年齢を少しだけ示しているだけです。 60代の俗語をまだ使用している高齢者と話しているように思えるかもしれません。 JavaScriptを初めて使用する場合は、引数に配列メソッドを使用するだけで我慢するのに慣れている昔ながらのハックをすべて発見するのは楽しいかもしれません。 JSの歴史のレッスンをお楽しみください。

JavaScriptコミュニティの一部の著者は、ES6を教えることを目的とした本を執筆しています。基本的なJavaScriptに少し精通した後で読むことをお勧めします。 ES6をまだ知らない場合は、「ES6の学習方法」をお読みください。

最終的に、すべての新しいJSブック作成者はES6を当然のことと見なし、JSブックの世界は通常に戻ります。推奨事項を学習順に大まかにリストします。

私の他の本の投稿と同様に、Amazonのリンクはアフィリエイトリンクであり、あなたが使うお金の一部はJSHomesでホームレスと戦うために使われます。

十分な話。本を引き出してください!

  1. 「子供向けJavaScript:プログラミングの遊び心のある紹介」ニックモーガン

タイトル通り、この本は非常に基本的なプログラミング概念の気まぐれな調査ですが、だまされてはいけません。子供向けの本は子供向けだけではありません。これまでにコードに触れたことがない場合は、あなたが大人になっても、ここから始めるのが良いでしょう。泳ぎ方を学ぶ前に深いところでダイビングすることは、イライラする経験になる可能性があります。いくつかの簡単な勝利で練習を始める方が良いです。

2. Eric Elliottによる「ソフトウェアの作成」(免責事項:私です)は、関数型プログラミングとJavaScriptでのオブジェクト合成の調査です。すべてのソフトウェア設計は構成です。複雑な問題を小さな問題に分解し、それらのソリューションを構成する行為です。ほとんどの開発者は、作曲技法についての理解が限られています。それが変わる時です。

「ソフトウェアの作成」では、Eric Elliottが関数の構成とオブジェクトの構成の両方を含む構成の基本を共有し、JavaScriptのコンテキストでそれらを調べます。この本は、関数型プログラミングとオブジェクト指向プログラミングの両方の基礎をカバーし、シンプルなビルディングブロックを使用して複雑なアプリケーションを構築および構築する方法を読者がよりよく理解できるようにします。

3. Marijn Haverbeke著「Eloquent JavaScript:A Introduction to Programming」

この本は芸術作品です。明確な言語を使用した明確なロードマップを使用して、基本的な概念を説明します。それは見事に構成され、編集されており、ほとんどのプログラミング本とは異なり、あなたが練習するための演習がいっぱいです。高校や大学でプログラミングの基礎を教えていたら、これを教科書として使っていました。

4.ダグラス・クロックフォードによる「JavaScript:The Good Parts」

今では馬鹿げているように思えるかもしれませんが、この本が書かれたとき、JavaScriptはまだブラウザーの小さなスクリプト言語として生活を始めた若い言語でした。当時、ブラウザは本格的なアプリケーション開発者によって探索され始めたばかりでした。

2004年以前は、ブラウザで実際のアプリケーションが実行されていることはほとんどありませんでした。ブラウザはかろうじてインタラクティブでした。サーバーにデータを送信するにはページの再読み込みが必要でしたが、それだけのストレージ容量はありませんでした。 JavaScriptは主に、マウスのホバー状態などの簡単なユーザーインターフェイス効果を作成するために使用されました。

JavaScriptは、C / C ++、C#、Javaなどのコンパイルされた言語でコードを書いた「本物のプログラマ」からの多くのジョークのターゲットでした。ブラウザの実際のプログラミングを行いたい場合は、フラッシュを使用しました。

当時はJavaScriptをrid笑するのは簡単で、誰もがそうしているように見えましたが、ダグラス・クロックフォードは、ブレンダンアイヒがプログラミングの大衆に真に評価され始めたばかりの言語のナゲットを隠していることを認識しました。この本では、これらの機能の基本について説明し、JavaScriptがどれほど特別でクールなものであるかについて、新たな理解を与えることができます。

5.「JavaScriptアプリケーションのプログラミング:Node、HTML5、Moderns JSライブラリを備えた堅牢なWebアーキテクチャ」、Eric Elliott(私です)

JavaScript開発者を雇ってアプリケーションを構築し始めたとき、JavaScriptを利用して堅牢なアプリケーションアーキテクチャを構築する方法を理解している人はほとんどいませんでした。それを念頭に置いて、JavaScriptのベストプラクティスをカバーし、プロトタイプ、オブジェクト構成、および少なくとも機能プログラミングの基本概念を紹介する本を書くことにしました(典型的なJavaScriptアプリケーションの構築と保守の方法を理解するのに十分) 、それらの概念を適用して、アプリケーションのビジネスドメインに関係なく、ほとんどのアプリケーションで発生する共通の懸念事項を構築します。

「JavaScriptをどのように使用しますか?」という質問に多くの本が答えています。「JavaScriptを使用して実際のアプリケーションを構築するにはどうすればよいですか?」という質問に答えたいと思いました。

この本を公開してから2年で技術は大きく変わりましたが、正直なところ(著者の目標として)、今日の市場でのJavaScriptアプリアーキテクチャの最高の概要です。 JavaScriptの理解を深めることに加えて、Nodeの基本、RESTful API、認証と承認、機能切り替えシステム、ロギングなどについて学びます。

6.「効果的なJavaScript:JavaScriptの力を活用するための68の具体的な方法」by David Herman

JavaScriptの基本的な知識を習得した後、「効果的なJavaScript」を使用して言語の詳細なガイドツアーに参加し、熟練したマスタープログラマーが教えたレッスンの例を示します。

すぐに、浮動小数点数の精度(JavaScriptには数値型が1つしかなく、浮動小数点型であるため)から、型強制とセミコロン挿入の奇妙なものまで、JavaScriptのいくつかの癖が紹介されます。本の残りは同じスタイルで続けられ、関数、オブジェクト、配列、ライブラリーとAPIの設計、および並行性を扱うためのベストプラクティスを探っています。あなたのスキルレベルに関係なく、私はあなたが何か新しいことを学ぶことを約束します。

7.デビッド・フラナガンによる「JavaScript:The Definitive Guide」

Definitive Guideは、Webアプリケーションの構築に関心のある人の観点からのJavaScriptおよびWebプラットフォームAPI機能の詳細な調査です。これは、多くの言語機能のかなり徹底的な概要であり、IEの古いバージョンに関する警告が散在していますが、この時点ではおそらく安全に無視できます。この本には6つの版がありますが、もっと多くの版が来ることを願っています。私は以前の版を所有していましたが、新しい版がリリースされると常に新しいことを学びます。

8.カイル・シンプソンによる「You Do n't Know JS」

これは本当に一連の本です。それらはすべてスタイルと範囲が似ており、一部は他よりも大きく、すべては非常に優れています。

私は長い間JavaScriptでプログラミングしています。 JavaScript仕様の複数のバージョンを研究し、仕様の新しいバージョンの開発に密接に従いましたが、すべての小さな隅々を探索するカイルの深い魅力は、私がまだ発見も探索もしていない言語の多くのビットを発見することができました。

「決定版ガイド」が深海ダイビングだと思った場合は、スキューバダイビング用具を取り外して、深海の水中海洋探検家を準備してください。これまでに人間がこれまでに遭遇したことのないJavaScriptの種がいくつか登場します(とにかく、このシリーズが書かれた前に、とにかく)。

このシリーズでは、ソフトウェアアーキテクチャ、深いプログラマーの知恵、または多くの異なる言語に容易に対応できる豊富なソフトウェア設計原則についての多くの話はありません。しかし、それは確かにあなたが新しい感謝とJavaScriptのより深い理解を得るのを助けるでしょう。カイルが言語機能を深く掘り下げることに専念しているのは、TC39チームでさえ何かを学ぶことができると思う貴重な宝物です。

9. Reginald Braithwaiteによる「JavaScriptAllongé:The Six Edition」

JavaScriptAllongéは本質的に、関数で考えることに関する本です。分離された小さなユニットから柔軟なソフトウェアを構築します。

とはいえ、過度に規範的または意見を表明しないようにしています。導入部から借りるには:

「JavaScriptAllongéは、ソフトウェア開発の幅広いコンテキストでのJavaScriptのベストプラクティスの問題に対処しようとはしていません。JavaScriptAllongéは実践に関する本ではなく、思考に関する本です。」

この本を読むと、著者が約束を守っていることに気付くでしょう。これは間違いなくあなたが読む最初のJavaScriptブックではありません。 Reginaldは、部分的なアプリケーションとカリー化された関数式を示した後、IIFEやクロージャーなどの中間関数スコープトピックをゆっくり構築することにより、「const」などの単純な概念を導入します。

JavaScriptの入門書のほとんどは、値と、 `var`、` let`、または `const`を使用してバインディングでそれらの値を表す方法について話すことから賢明に始まります。レジナルドは正当な理由でビートを反転します-彼はあなたの脳を踊らせます。この本は、あなたが機能について異なって深く考えることを助けようとしています、そして、それは働きます。

JavaScriptを実際に使いこなした後、関数型プログラミングとオブジェクト指向プログラミングの手法を組み合わせてJavaScriptアプリケーションを構築する方法を検討する準備ができたら、この記事をお読みください。

10. Mike Cantelon、Marc Harter、TJ Holowaychuk、Nathan Rajlichによる「Node.js in Action」

「Node.js in Action」は、HTTP / HTTPS、Connect / Expressミドルウェア、Socket.IOを使用したリアルタイムメッセージング、データベースの使用などの重要なトピックをカバーする基本的なNodeアプリケーション開発の優れた紹介です。 Nodeを初めて使用する場合は、ここから始めるのが最適です。

11. Ilya Grigorikによる「High Performance Browser Networking」

優れたアプリケーションパフォーマンスの重要性を誇張することは困難です。ページの読み込み時間をミリ秒単位で短縮し、UIのジャンクを削減することで、優れたユーザーインターフェイス設計のオーバーホールによってのみ匹敵する投資収益が得られます。

この本は、HTTP2、データストリーミング、WebSocket、WebRTC、DataChannelなど、影響の大きいパフォーマンスに関する考慮事項をカバーしています。

つまり、この本は、パフォーマンスプロファイルを最適化することにより、より成功するアプリケーションを構築するための決定的なガイドです。

12. Boris Smusによる「Web Audio API」

JavaScript Rock Starには、すべてこの本が必要です。結局のところ、ギターをWebブラウザに接続するまで、あなたは本物のJSロックスターではありません。これらは「すべてのJavaScript開発者が読まなければならない」本だと言ったのは知っていますが、これは、サウンドと音楽で遊ぶのが好きなJavaScript開発者専用です。ほとんどのJavaScript開発者は、このAPIをまったく学習しなくても大丈夫であり、まったく害はありませんが、それは退屈です。

私は音楽とオーディオエンジニアリングが大好きなので、この本が私のリストに載っています。 WebオーディオAPIは、実際には、Webプラットフォーム標準を使用してサウンドを生成および操作するための関連APIのシステムです。ブラウザおよびノー​​ドで使用できます。

WebオーディオAPIを使用するには、グラフ内のノードを操作します。通常、便利なリファレンスを紹介するだけですが、オーディオエンジニアでない限り、少し圧倒されるかもしれません。この本は、さまざまなタイプのオーディオノードをガイドし、それらを組み合わせて、タイミングAPIを使用してサウンドを正確にスケジュールし、時間の経過とともにパラメーターを操作し、オーディオエフェクトを適用し、さらにオーディオビジュアライゼーションを作成する方法を説明します。

つまり、とても楽しいです。

EricElliottJS.comで無料レッスンを開始してください

エリック・エリオットは、「Composing Software」および「Programming JavaScript Applications」という本の著者です。 EricElliottJS.comとDevAnywhere.ioの共同設立者として、開発者に不可欠なソフトウェア開発スキルを教えています。彼は暗号化プロジェクトの開発チームを構築して助言し、Adobe Systems、Zumba Fitness、The Wall StreetJournal、ESPN、BBC、およびUsher、Frank Ocean、Metallicaなどのトップレコーディングアーティストのソフトウェアエクスペリエンスに貢献しています。

彼は世界で最も美しい女性との遠隔生活を楽しんでいます。