今日の通勤で隣で妙齢の若い女性がAJax+JQueryの本を読んでいた。
ま、イマドキだな、とは思ったが、驚いたのが本はボロボロ。女性らしくあちこちに小見出しの耳が貼ってあり、中は線を引きまくり。。。
いや、JQueryの本は読んだが、1.5回くらい読んで終わりだったなぁ。。。
なんで、こんなに電車の中の女性と俺は違うのだろうか?
で思ったのが、動作原理を知っているかどうかじゃないか、と思った。
JQueryの場合、JQueryを学ぶ最初にいきあたるこの書き方が鍵ではないだろうか。
$(document).ready( function() {
$('#button1').click(function(){
alert("Good Day");
});
});
最初の$はJQuery。そこにJavaScriptオブジェクトのDocumentがもつメソッドreadyになった時におこなうべき作業をfunction()以下の関数で定義する。したがって、この関数は無名関数である。JavaScriptはすべてをオブジェクトとして扱うから、これは関数オブジェクトとして格納される。
内部は当然、Jqueryのネームスペースであるから、個々のidタグにJqueryがイベントを貼り付けていく。
大事なことは、このソースすべてがDocumennt Ready直後に設定されるだけで、基本的にその場で動くことはない、ということだ。JQueryの秀逸なところは、最初にイベントをどんどん貼り付けていけば、CSSのセレクターのようにユーザーはプログラミングできし、実行は早いというアイデアである。
と、JavaScriptの初心者ならばまるで理解できないことを書いた。
しかし、この書き方すべてを理解せずに「覚える」となると苦痛ではないかと思う。まず、なぜ最後が});で終わっているのか説明できるだろうか。。。
多くのシニアエンジニアで勉強を怠らない人は(いまだに汎用機の技術だけで今を語るB氏みたいなのは論外であるが)、時代の流れと共に技術の成長についていっている。
例えば、上記のようなJavaScriptの書き方ができるようになったのは今ではあまりにも当たり前なダイナミックHTML(ブラウザーに表示した内容を常に動的に書き換えられる)というブラウザーの大変化があったおかげである。
それからJavaScriptは延々とオブジェクト指向に変化し、ブラウザーはまるでJavascriptの一例であるかのようになった。
ところが市販の本は原理から始めると書くのもタイヘン、著者もよく知らないから、いきなり「JQueryはこう書いたら動きます」とブラックボックスとして話が始まる。
中身を理解しないまま、書き方だけを覚えようとすると冒頭に出てきた女性のように本がボロボロになるまで読まなければならなくなるだろう。
一方で、原理から書き起こした本は結果に辿り着くまでに時間がかかる割に正確に書くのはタイヘンなので、著者の労力の割に売れるとは思えない。
でもなー、技術の変遷から理解するほうが王道だと思うんだよなー。