20141108 - kyosen/developing-backbone.js GitHub Wiki

活動概要

  • 日時: 2014/11/08(土) 13:00 -
  • 参加者: 伊藤、乙村、辻、矢野、米田、井谷
  • 欠席者:
  • 内容: Backbone.jsアプリケーション開発ガイド 8,9章

8章 モジュール形式の開発

8.1 RequireJSとAMDによるモジュール管理

  • p182 描画するためにスクリプトをすべて読み込まないといけない場合は、同期も非同期も同じか?(乙村)

    • 非同期の方がブラウザ側でscriptタグの読み込みを完了したと認識するのが早くなるので、ユーザが操作ができるタイミングが早くなるのではないか。(伊藤)
  • 遅延読み込みと非同期読み込みの違いは?(米田)

    • 遅延は必要なタイミングで読み込む。
    • 非同期は別スレッドで並行して読み込む。
  • p182 8.1.1 の1つ目の項目の「リクエスト数の制限」は RequireJS では扱っていない問題だと思われる(矢野)

    • r.js を使用すれば1つのファイルにまとめることができるので、本制約を回避できるソリューションを提供していると思われる(辻)
  • RequireJS を用いると依存関係を管理できるが、自分ですべて定義しなければならない?(辻)

    • そのとおり。
    • scriptタグでフラットに記述するよりかは依存関係の見通しがよくなる。(矢野)
  • p183 module_id が省略化となっているが、どうやって処理をしている?(伊藤)

    • 3つの引数の型が異なることを利用して処理をしていると思われる。(伊藤)
  • p184 define(function(require) { } ) を使用する場合は、function(require)と記述しないといけないのか?

    • require は関数の中で使う変数名なので何でもよい。
    • require の引数 'foo', 'bar' はパス名を表す(p187 のカスタムパス参照)
    • p185 の require('foo') と p185 require(require(['foo', 'bar'], function(foo, bar){ } は異なるものだと思われる(伊藤)
  • p184,185 define(function(require) { ・・・ のコードと require(['foo', 'bar'], function(foo,bar){} は同じ処理?

    • そのとおり。
  • p186 Shim にすると何がうれしいのか?(伊藤)

    • 読み込んだ関数の中で _ を使うと underscore と解釈してくれるのでは?(乙村)
    • p186 下部「これによって、lib/underscore.js から読み込まれたスクリプトが_というグローバル変数にセットされます」とあるのので、グローバルに設定されると思われる。
      • The important line here is exports: '_'. This line tells RequireJS that the script in 'lib/underscore.js' creates a global variable called _ instead of defining a module.
    • underscore.js を script タグで読み込むのと何が違うのか?(辻)
      • 非同期で読み込むという点(伊藤)
  • p188 「こうすれば以下のようにしてUnderscore.jsのShimを利用できますが、カスタムパスを指定することも以前として可能です。」の日本語がよくわからない(辻)

  • p187 require('lib/backbone', function(Backbone){...} と require(['foo', 'bar'], function(foo, bar){ } は同じだと思われる。(伊藤)

  • p193 r.js はすべてのファイルを連結して1ファイルにまとめてくれ、1つのファイルを指定すれば使えるという理解でよい?(米田)

    • そのとおり

8.2 まとめ

9章 チュートリアル3 - RequireJSを使ったモジュール形式のアプリケーション

  • 節構成が章によってバラバラ(辻)

9.1 概要

9.2 マークアップ

9.3 設定項目

  • p199 のコードは main.js の中身か?(伊藤)
    • そのとおり

9.4 モデルとビューそしてコレクションのモジュール化

  • p200 の下部の HTML では template の script タグがあるが、p202 の HTML には記載されていない。何故?(米田)

    • テンプレートの HTML を外部ファイル化しているため、それを読み込むときにスクリプトがテンプレートであるとわかるため。
  • p204 の render:function() のコードについて

    • var done = Todos.done().length; の done は使用されていないので、このコード自体は不要だと思われる(矢野)

9.5 ルート別のモジュールの読み込み

  • p205 ルートに応じて異なるモジュールを読み込むとあるが、具体的にどの部分(コード)のことを言っているのか?(伊藤)

    • 9.5.2 の「モジュールローダーのローダー」のコードが該当。ただし、何がしたいのかが読み取れない。(辻)
  • p205 ここのルートは「根っこ」ではなく「経路」の意味。(乙村)

  • 9.5.1 と 9.5.2 はLumbarの話。9.5.3は?(米田)

    • 9.5.3 は Node.js と Express の話で、Lumbar の JSON形式が使えることを紹介しているのでは?(伊藤)

9.6 その他のパッケージ形式

次回の予定

  • 12/21(日) 13:00-
  • 13章-15章
  • 忘年会
  • 必ず写経してくること!
    • 写経できない部分でもサンプルの意味を理解する
    • 必要な理論があればそれも理解してくる