レポート

プログラミング生放送勉強会 第15回@大阪 レポート

この記事を読むのに必要な時間:およそ 4 分

プログラミング生放送勉強会 第15回@大阪

2012年4月21日(土)に日本マイクロソフト関西支店のセミナールームで,コミュニティ「プログラミング生放送」によるIT・開発系イベント,プログラミング生放送勉強会を開催しました。その模様をお届けします。

プログラミング生放送勉強会は,IT・開発系であればノンジャンルのIT勉強会です。今回は,JavaScript APIのIndexed DatabaseWindows 8 Metro style appC++Windows AzureKinectGerritなど,いろいろな内容のセッションとなりました。

図1 会場の様子

図1 会場の様子1 図1 会場の様子2

当日は,約40名の参加がありました。ライブストリーミングも行い,録画したセッションは,プログラミング生放送勉強会 2012年で一覧を参照・視聴できます(niconicoのユーザーである必要があります)。こちらもご利用ください。

明日から使えない IndexedDB

それでは,各セッション内容を簡単に紹介します。株式会社ジェーンのmzsm@mzsm_jさんからは,Indexed Database APIの話です。

Indexed Databaseは,Webブラウザー上で動くNoSQLデータベースです。JavaScriptのAPIで操作し,データをサーバーではなくクライアント(Webブラウザー)に保存します。

現在,対応しているWebブラウザーは次の通りです。

  • Google Chrome 11以上
  • Mozilla Firefox 4以上
  • Internet Explorer 10以上

使い方の例として次の3点をあげています。

  • オンライン辞書アプリで,初回のみネットワークにアクセスし,2回目以降はDBを参照してレスポンスを向上させる

  • ニュースリーダーで,先にすべての記事をDBに溜め込むことで地下鉄の駅間でも記事が読めるようにする

  • Windows 8のMetro styleアプリやGoogle Chromeアプリで,各種データ保存先として,SQLiteの代わりに使う

しかし,なぜ明日から「使えない」かというと,現在W3Cが仕様を策定中であり,その最近のワーキングドラフトの3つの版において仕様が大きく変更されており,現在のエディターズドラフトでも仕様が変更されているとのことです。また,WebブラウザーやWebブラウザーのバージョンによって,実装されている版が異なっています。今の所まだ,あまり使いものになりませんが,今のうちに使い方を知るというのが今回の趣旨となっています。

Indexed Databaseでは,Object型をオブジェクトストア(RDBMSのテーブルにあたる)に格納できます。保存できる値は,文字列(DOMString),数値(float),日時(Date),配列(Array)です。

Indexed Databaseの特徴として次の点をあげ,それぞれについて説明していただきました。

  • スキーマレスである
  • 基本的に非同期に処理するため,コールバック関数を多用する
  • すべて操作は,トランザクション内で行う
  • 排他・共有ロックに対応している
  • インデックスを使って検索できる(インデックスを作成していない場合,検索できない)

スキーマレスのため,レコード(RDBMSの行にあたる)は同じプロパティ(RDBMSの列にあたる)である必要はありません。

// 同じオブジェクトストアに格納できる
{
  foo: "string",
  bar: 12345.6
}

{
  foo: new Date('2012-04-21 13:00:00'),
  baz: ['hoge', 'fuga', 1, 2]
}

トランザクションの種類は,読み取り専用・読み書き・バージョン更新の3種類があります。オブジェクトストアやインデックスの作成や破棄は,バージョン更新トランザクションで行います。

上記の内容や,その他の項目は,サンプルコードともに説明されています。詳しくは下記の動画と公開されている資料をご確認ください。

明日から使えない IndexedDB プロ生勉強会 第15回@大阪 #pronama

ニコニコ動画:http://www.nicovideo.jp/watch/sm17782348

コメント

コメントの記入