20141019 - kyosen/developing-backbone.js GitHub Wiki
活動概要
- 日時: 2014/10/19(日) 13:00 -
- 参加者: 井谷、伊藤、乙村、矢野、米田
- 欠席者: 辻
- 内容: 番外編 車予約システムを作ってみる
7章 よくある問題と解決策
7.1 入れ子のビューの扱い
- 入れ子のビューはどのような場合に使用するのか?(乙村)
- 一覧と明細。(伊藤)
- 一覧と明細は違うのでは?(米田、井谷)
- ヘッダー、フッター、サイドメニューなどが該当するか?(伊藤)
- サイドメニューで選択したとき、コンテンツが切り替わるようなケース。(米田)
- ToDo では new しただけだったが、この章では親ビューにセットしている。(乙村)
- この章の議論で、親ビューにセットするか否かは重要な問題か?(伊藤)
7.2 入れ子のビューでのモデルの管理
- モデルを親子関係にし、ビューも親子関係にしていて、アンチパターンぽい。(乙村)
- modelB、modelC は、どちらも viewB が監視している。(乙村)
7.3 子のビューからの親ビューの描画
- イベントを使用すれば、親ビューへの参照が不要になる。(伊藤)
- P.160 の this.viewB.parentView = this がいらなくなる。(米田)
- 親が子を知っているのは自然。(井谷)
7.4 ビューの構造の破棄
- P.161 の close はオーバーライドか?(乙村)
- たぶん新規。(米田)
- remove を使っている箇所を close に置き換えないといけないか?(乙村)
- 元の remove を退避して、新たな remove から退避した remove を呼び出せば、オーバーライドできるかも。(伊藤)
- remove 自体を置き換えるのは問題があるのでは?(矢野)
- (1)機能を追加した新たな関数を追加、(2)既存の関数をオーバーライドする、(3)呼び出し側で追加機能を呼ぶの3通りがありそう。(伊藤)
- ビューが消えないで残る問題が発生するか?(米田)
- 「同時に子要素の関連付けられている不要なイベントハンドらも削除したい」は、自動でしてくれないので明示的にしないといけないということか。(米田)
7.5 ビューの階層構造の描画
- 「コレクションの要素自身もコレクション」とは、2次元配列のような構造のことか?(伊藤)
7.6 入れ子のモデルやコレクションの扱い
- 解決策には永続化の話が出てくるが、課題に永続化の話がない。(乙村)
- 子供の要素を取得しようとしたとき、自動的にフェッチするような機能はないということか。(伊藤)
- 原文には「デザイン」パターンという記述はない。(矢野)
- 子供が Collection でない場合はどうするか?(伊藤)
- Model にも fetch がある。(井谷)
7.7 モデルのより良い検証
7.8 複数バージョンの Backbone.js による競合の回避
- 実際にどのようにして使うのかよくわからない。(米田、伊藤)
7.9 モデルとビューの構造の作成
- 7.9.3 は修正前のコードのほうが読みやすい。(伊藤)
- 解決策に「プラグインを使えばよい」というものが多い。(乙村)
7.10 イベントアグリゲーターとメディエーター
- 7.10.4.1 の mediator はどこかで使われているのか?(伊藤)
- 使われていない。これ自身が1つの例。(米田、乙村)
- イベントアグリゲーターとメディエーターの違いは?メディエーターはロジックも持っている?(伊藤)
- たぶん Yes。(乙村)
- 7.10.4.1 のコードが何をしようとしているのかわからない。(乙村)
- どうやってイベントを発生させるのか? → たぶんどこかにある。
- 7.3 でイベントを使用する話と何が違うのか?(伊藤)
- 7.3 では listenTo にイベントの発生元を指定しているが、7.10.3.1 の例では指定しておらず、Backbone オブジェクトにイベントを伝えており、Backbone がイベントアグリゲーターになっている。(乙村)
番外編 車予約システムを作ってみる
引き続き各自で進める。
次回の予定
- 11/08(土)
- 8、9章
- 必ず写経してくること!
- 写経できない部分でもサンプルの意味を理解する
- 必要な理論があればそれも理解してくる