次回はmodel周りを読んでいく予定になっています。
ただ、model周りはデータストアへの読み込み、書き込みがあるため、
奥が深いので、事前に少し読んでおこうと思って読んでみました。
ひとまずメモを残しておきます。
- Slim3はAsyncDatastoreServiceを使ってデータストアに書き込みを行っている。
- ModelクラスからModelMetaクラスを生成してデータストアに書き込みを行う。
- ModelMetaクラスはVersionを持っている(データストアに書き込まれる)
- Versionはputのたびにカウントアップされる。これはなぜ?
- 同じく、SchemaVersionも持っている(データストアに書き込まれる)
- 生成された直後は固定で"1"を書きこむ
- SchemaVersionはプログラムの更新により、エンティティの内容が混在する時に新旧のバージョンのエンティティを判定するのに使う?
- Modelのプロパティが追加される時にSchemaVersionも変更すべき?
- Model→Modelの生成手順
1. クラス名(フルパス)から".model."を探す。
2. 見つかった場合(lastIndexOf()の戻り値が0以上)
".model."より前、(今回の場合、"slim3") + ".meta." + "Tweet" + "Meta"にする
3. 見つからない場合は、そのまま+"Meta"にする
4. 2、3で生成したクラス名でインスタンスを生成する。
5. 1度生成されたMetaクラスは変換前のクラス名をキーにしてConcurrentHashMapに保存される。(2度目以降はHashMapにあるインスタンスを読みだして再利用する)
0 件のコメント:
コメントを投稿