SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Dojo道場」~実用アプリ構築のためのベストプラクティス

Dojo道場 ~ 第2回「データAPI(dojo.data)を使いこなす」

「Dojo道場」~実用アプリ構築のためのベストプラクティス

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本シリーズでは、豊富な機能の中から厳選した、ビジネス・アプリケーションのためのベスト・プラクティスを中心に、Dojo Toolkitの活用方法をご紹介します。連載の第2回である今回は、dojo.dataの基本的な使い方と実用例について解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

1. はじめに - dojo.dataとは

 Dojoが備えるデータAPIであるdojo.dataはデータの入出力を抽象化し、統一された操作を提供する一連のAPIです。これはSQLコマンドにたとえることができます。SQLコマンドをひとたび覚えれば、実際に背後で動作しているデータベース(DBMS) が何であるか(DB2やOracle, MySQLやPostgreSQLなど)を気にすることなく、基本的には同じ操作でデータをやり取りできますね。同様にdojo.dataのAPIを使えば、実際のデータをどこに・どのように格納しているかは気にせずに、開発者はデータのやり取りをできるようになります。

 dojo.dataではデータを入出力する機能を持つオブジェクトをデータストアと呼びます(または、省略してストアと呼ぶこともあります。ソース中に現れるコメント、変数名などには短くstoreと記述してあることが多いです)。dojo.dataには一番基本的なデータストアの実装として、ItemFileReadStoreおよびItemFileWriteStoreが付属しています。

 dojo.dataの実装は以下のようにdojo.dataパッケージ、およびdojox.dataパッケージのファイルから構成されています。

  • dojo/data/api/* --- データストアが実装すべきAPIの定義
  • dojo/data/util/* --- データストアを実装するときに使える便利なメソッド(simpleFetch)など
  • dojo/data/* --- 基本的なデータストアの実装 (ItemFileReadStore, ItemFileWriteStore)
  • dojox/data/* --- さまざまなデータソースを利用するデータストアの実装(XmlStore, CSVStore, FlickrStore, WikipediaStoreなど)。実験的なものも多く含みます

 サンプルコードの実行方法は第1回記事導入部の説明をご覧ください。

 連載の第2回である今回は、dojo.dataの基本的な使い方と実用例について解説します。

2. dojo.dataが定義するインターフェース

 dojo.data.apiではデータストアが実装すべきAPIを定義しています。次のインターフェースが定義されています。

  • dojo.data.api.Read --- データストアからデータを読み出すメソッドを定義しています。すべてのデータストアが実装します。
  • dojo.data.api.Write --- データストアに新規データを作成する、または既存のデータを削除・変更するなど、データを変更するメソッドを定義します。データストアがデータ更新機能を持つとき実装します。
  • dojo.data.api.Identity --- データストアに格納されたデータを識別するメソッドを定義します。ユニークIDによってデータを区別する必要があるとき実装します。
  • dojo.data.api.Notification --- データストアに格納されたデータの更新イベントを定義します。データが更新されたとき通知する機能が必要なとき実装します。
豆知識

 ItemFileReadStore.jsのソースを読んでみると、ItemFileReadStoreの実装ではdojo.declare()による継承はされておらず、dojo.data.api.Readへの参照がないことに気がつきます。つまりdojo.data.api下のファイルはインターフェースを定義しているだけで、継承して使う必要はありません。

 オブジェクトが定義と同じ名前・役割のメソッドを実装することでデータストアとしてふるまうことができます(これはダック・タイピングと呼ばれる手法です)。

次のページ
2.1. Readインターフェース

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
「Dojo道場」~実用アプリ構築のためのベストプラクティス連載記事一覧

もっと読む

この記事の著者

仁田 圭祐(ニッタ ケイスケ)

日本アイ・ビー・エム株式会社ソフトウェア開発研究所にて日々Webアプリケーションに関わる製品開発をしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

三浦 圭司(ミウラ ケイジ)

日本アイ・ビー・エム株式会社ソフトウェア開発研究所に勤務。現在は、エンタープライズ向け製品のWebアプリケーションのユーザー・インターフェース開発に従事。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5608 2010/12/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング