トップ «前の日記(2020-05-25) 最新 次の日記(2020-06-09)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2020-06-07

_ JavaScript Primer

アスキーというかドワンゴの鈴木さん(いつもありがとうございます)からJavaScript Primer 迷わないための入門書 をもらったので読んだ。最近、JavaScript使いまくりプログラムをいじくっているのでありがたいタイミングだった。

JavaScriptのハードコアな本をちゃんと読むのはオライリーの犀本以来で、その後はおもにMDNECMAの仕様書で済ませているわけだが、やはり日本語の(信頼がおける)文書は読みやすい(MDNはMSDNほどではないが、やはり微妙なところではEnglishに言語設定しないとわけがわからない)。

本書は基本的には通読すべきで(必ずしも精読は必要ないと思う。どこに何が書いてあるかを漠然と記憶して後から参照できるようにするため)、要は一昔前っぽいガチなプログラミング言語の入門書(言語仕様と10日でわかるチュートリアル系の中間やや左(この場合、左は言語仕様)より)に近い。

おそらくおれの感触では、おれと同様に21世紀初頭にそれなりにJavaScriptを学習してアプリケーション開発しているプログラマーが最新のJavaScriptに知識をブラッシュアップするのにもっとも向いていると思う(ES2015ネイティブな人にとってはどうだかわからん)。すごく良い本だ。

全体は450ページあって、340ページが第1部 基本文法で、このパートはとても良い。第2部がユースケースと銘打って100ページでNode.jsを使ったTODOアプリケーション開発チュートリアル、残りが参考リンク集で簡潔な説明とともに基本的なツール類へのリンクがある。書籍なのでリンクは面倒だが、ある名前のツールがどういう役割でJSコミュニティでの受容状態についてぱっとわかるのがありがたい。

もしかすると執筆にそれなりの時間がかかったのかな? と思わされるのは「はじめに」でES2015(ECMAScript 2015年仕様)に基づいたと記述されているにもかかわらず、第1部第22章の非同期処理のパートではES2017(ECMAScript 2017年仕様)のasync/await構文についての説明がされている点で、確かにasync/await構文を使える限り、生Promise(ES2015)の出番は、Promise.allくらいしか無いので、これまた良い。

全体の3/4が第1部の基本文法ということは、基本文法の解説がちゃんとしているということで(言語仕様ではなく入門書だから)、具体的には用例が掲げられているため、すぐに使えるという点にある。

あと、おそらく筆者グループは実際にアプリケーションを開発しているのだと思うが、知りたいことがちゃんと目次レベルでわかるのも本書の良い点だ。

具体例: 第14章 配列 14.2 オブジェクトが配列かどうかを判定する

↑ 少なくともtypeofとか書いて悲しい思いをした人ならわかるはず。なお、Array.isArray(obj)を利用する。このあたりは、21世紀初頭くらいからJavaScriptを書いている人なら、とてもわかりみあるはず。便利なものが実装されたものだ(IEだと利用できるようになったのは2011年のIE9からなのでむしろ21世紀初頭からJavaScriptを使っていると知らない可能性高いというかおれは知らなかった)。

チュートリアルは実際に手を動かして読んだわけではないが、非同期処理での例外処理の書き方やPromiseを返すように作っておくとあとからAsync関数に書き直しやすいというtipとかユニットテストの書き方とか短いながらも勘所を抑えてある感が強い。

JavaScript Primer 迷わないための入門書 (アスキードワンゴ)(azu)

本書はCC BY-NC 4.0(営利目的以外での共有を許可)でライセンスされていて(サンプルコードはMIT)、https://jsprimer.net/で公開されている。Web版にはチートシートが追加されている。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え