Entries

スポンサーサイト

カテゴリ:スポンサー広告
更新日:--------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Bulbware Ver.2.0.0] marionette.jsの導入、データモデルの統一

カテゴリ:Bulbware
タグ: GAE  backbone.js 
更新日:2014-05-07
Webアプリケーションを作るときの土台として自分用のフレームワークをバージョンアップしました。
サンプルのToDoアプリが不完全とか、APIが十分に練れてないとか、まだ課題はありますが、個人的な問題はクリアしたので、とりあえず公開します。

> Bulbware: Application Library & Framework

主な修正点は、marionette.jsの導入とデータモデルの統一です。

marionette.jsは、backbone.jsのラッパーライブラリで、主にViewまわりの構造化をしてくれます。
このあたりは、独自に対応してたのですが、ゾンビView対策とか、render時に共通で追加処理したいとか、課題が明確になってきたところ、探したらありました。まぁ、やっぱ、同じようなことで引っかかるよねぇ。

> marionettejs/backbone.marionette
> JavaScript - Marionette.jsまとめ その1 Application, Controller, AppRouter - Qiita

本当は正月休みで試そうと思ってたのですが、他のことで時間がなかったので、ゴールデンウィークで、ようやっと試すことができました。まだ、ちょっと不明瞭なところがあるけど、なんとか使えるでしょう。


データモデルは、元々の構想では、主要なモデルをいくつか作っておくことを考えていたのですが、いろいろ考えているうちに、以下のトポロジーに集約することにしました。

bulbware_er.png

Elementがメインのデータで、Page、Item、Attributeはマスタのようなものでしょうか。同じ構造をしていて、検索用にtags、ソート用にsorttext、追加項目はoptionsにJSONで突っ込みます。app_nameで区別をすることで同じトポロジーが複数作れます。実際のモデルの用途は、JavaScript(backbone.jsのModel)側で管理することになります。

今構想しているアプリケーションは、だいたいこの構造で収められるんじゃないかと考えています。ログインユーザー別に情報を管理するようなアプリですね。ゲームは考えていません。

Webアプリを作るときには、まずUI(ひいてはUX)に時間をかけたいんですよね。そのために、とりあえず動くものを作って、使ってみて、改良していく。基本的なデータモデルとAPIが揃っていれば、とりあえず動くアプリケーションを作るのは難しくないんですよね。

将来的には、トランザクションやDBの効率が問題になるようになれば、その時になってサーバー側のリファクタリングをすればいいかと思っています。

スポンサーサイト

Appendix

プロフィール

いむら@fintopo いむら@fintopo

ガーデニングが趣味のフリーのシステムエンジニア兼プログラマ(フルスタックエンジニア)です。

仕事募集中です。個人なので、融通がききます。 大規模な開発はできないかもしれませんが、研究や製品開発レベルでの小規模開発、特に相談しながら新しいものを作っていくのが得意です。詳しくはWebサイトをご覧ください。
詳しくは「fintopoとは」をご覧ください。

> fintopoとは

このページのQRコード

季節暦

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。