水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2012年のえび日記 > 2012年7月 > 2012年7月13日(金曜日)

2012年7月13日(金曜日)

JavaScript勉強会 二回目

公開: 2012年7月23日2時40分頃

「ツッコミながらスクラムで学ぶ JavaScript勉強会」第二回が開催されました。今回の範囲は、テキスト「よくわかるJavaScriptの教科書 (www.amazon.co.jp)」のLecture1-1~1-2の部分で、alertダイアログを出すプログラムが出てきます。

事前に第二回目の課題を出していたので、各人の課題を見ながら進める感じなのですが、前回は時間が足りなかったので、今回はあらかじめ一通り見て面白そうなもの、質問が多いものをピックアップする形を取りました。

課題 2-1: 前回の振り返りと感想

卵の話が印象的だったという話や、XHTMLの話などがちらほらと。

課題 2-2: JavaScript 最初の一歩 (基本課題)

confirmダイアログを出して問題を表示し、正解/不正解を判定してalertするというプログラム。各人が書いてきたコードの中で、個性的なものをレビュー。

教科書通りだと3行で書けるのですが、これを1行で書く者もいれば、逆に50行で書く猛者も。汎用性やメンテナンス性を考えて、後でいろいろなものを変更できるような設計にする、という無駄な頑張りをみせていただき、勉強になりました。

課題 2-3: Lecture1-1~Lecture1-2を読んで (基本課題)

今回の範囲を読んだ感想ですが、多かったのは「bool値」より「真偽値」のほうが分かりやすいという意見。著者は「真偽値」のほうが分かりにくいと考えたようですが、そうでもないと思った人が多かったようです。

※全体的に、著者が「難しい」と思った用語を避けようとし、それが逆に分かりにくくなっているというパターンが多いように思います。用語が分かりにくいというのは、その用語が指している概念が分からないという話であって、単語そのものが難しいわけではないはずです。単語を別のものに差し替えたからと言って、分かりやすくなるとは思えません。また、一般的に使われている用語を知らないと、他のプログラマーとコミュニケーションしたり、ドキュメントを読んだりするときに困ることになります。

if(confirm("……")) というコードが分かりにくい、という意見も複数見られました。条件式を渡す例にしたほうが分かりやすそうですが、条件式はもっと後に出てくるので、ここでは説明していないのですね。

課題 2-4: プログラムとは (基本課題・おまけ課題)

前回の終了後に作成した、プログラムとは何かを説明する資料について。

おおむね好評だったようですが、作者の感想は「初心者にもわかりやすい説明が数時間で書ければ誰も苦労はしません」だそうです。

課題 2-5: Lecture1-1~Lecture1-2はどうなの? (チャレンジ課題)

意見が集中したのは文字列リテラルの話。「パラメータの両端には必ずクォーテーションの記号をつける」という説明がなされていますが、正しくありません。パラメータ (引数) が数値や変数であればクォートは必要ないからです。実際にここで説明されているのは、パラメータ (引数) の書き方ではなく文字列リテラルの書き方なのですが、本書では「リテラル」が説明されていないばかりか、なんと「文字列」が説明されていないのですね (後で「文字列連結」という言葉は出てくるのですが、「文字列」という言葉は単独では出てこない)。

あとは、「HTMLではタグの属性にダブルクォーテーションを使う(XHTMLの書式の場合)」という記述。言うまでもありませんが、XML構文でも属性値を単引用符で括ることはできます。だからこそXMLでは ' という実体参照があらかじめ用意されているわけで。HTMLでは二重引用符を使うことが多いですが、これは慣用的なものです。

それから「bool値」まわり。「型」の概念を説明せずにスルーしようという意図で書かれているのだと思いますが、結局「特別な値」という説明で、逆に苦しくなっているように思います。細かいところでは「trueおよびfalseは、英語でそれぞれ「真実/嘘」といった意味があります」という説明に対し、「trueとfalseは形容詞」というツッコミも。これは私も言われてみるまで気づきませんでした。

今回はツッコミがかなり多く、上で紹介した以外にも細かい話がいろいろとありました。文、ブロックといった概念を説明するべきではないかという話も出ましたが、今回は説明資料は作られず。ECMA-262の仕様では実は関数定義は文ではないなど、いろいろと奥が深かったりするようです。

関連する話題: Web / JavaScript / / ツッコミながらスクラムで学ぶ JavaScript勉強会

最近の日記

関わった本など