2011年02月10日 20:45 [Edit]
this===javascript.modern; // 書評 - JavaScriptパターン
オライリー矢野様より献本御礼。
待ってました!
これこそ、モダンなJavaScript。
「JavaScript: The Good Parts」が「JavaScriptかくあるべき」という一冊なら、こちらは「JavaScriptこう書くべき」という一冊。プロJavaScripters、必携。
本書「JavaScriptパターン」は、「なんでもあり」であるがゆえに「なにがなんだかわからなかった」JavaScriptの世界を「かたづけてくれる」一冊。
内容紹介JavaScriptについては一通りマスターした中上級者がさらに上を目指すための高度でかつ有用なテクニックを盛り込んでいます。
というのは正しいけれど、出来ればそれよりも少し早めに取りかかって欲しい。「Head First JavaScript」の次あたりには。
アンチパターンを繰り返して欲しくないから。
目次 - O'Reilly Japan - JavaScriptパターンより
|
|
例えば、グローバル変数をどうするか。
ご存知のとおり、JavaScriptではvarを付けない限りそれはグローバル変数になる。そのあたりはさんざん「JavaScript: The Good Parts」で Douglas Crockford も Dis っていることではあるけれど、普及してしまったものは仕方がない。Perlだってuse strict;が普及するまでだいぶ時間がかかったし、そして ECMAScript 5 が"use strict";をもたらすのはこれからだ。
とりあえずvarをつけまくるのはいいとして、グローバル変数を明示的に使うにはどうしたものか。windowで代用する?ブラウザーはよくてもnode.jsとかはそうは行かない。
var global = (function(){ return this; })();
いい線行ってる。しかしこれは"use strict";ではうまく行かない。ではどうする?
こうすればいい。
(function(global){
var foo = 1,
bar = 2,
// …
/* more lines of codes */
})(this);
jQueryなども、もちろんこうしている。
本書にはこうした「こんなときどうする」というパターンがいくつも出てくる。これらのパターンは昨日今日出て来たのではなく、第一線の JavaScripters が試行錯誤した結果獲得したものだ。知らなくても動くコードは書けるだろう。しかし知っているのと知らないのでは、書きやすさと書き直しやすさ、とくに後者が断然違う。パターンは車輪より再発明しにくいことを考えれば、中上級者になるのを待たずに身につけた方がいい。
これから JavaScript を習う人たちが本当うらやましい。まだDOMもなかった頃からやっていた人たちがそれでどれほど苦しみ、そしてどれほどJavaScriptを誤解したことか。とはいえ、それは実用言語がいずれも通って来た道でもある。はじめから道をつけようとした言語はまず成功しない。Pythonでさえその例外ではないことは、「言語設計者たちが考えること」を読めばわかる。道があるから人が通るのではない。人が通ったところが道になるのだ。
通るなら、この道を。
Dan the Good Old JavaScripter
