タグ

GAEに関するhagayuのブックマーク (6)

  • DIコンテナの必要性 - ひがやすを技術ブログ

    DI コンテナの起動が遅いなら、起動が速いのを作ればいいじゃない 何度か書いているとおり、DIはテストをしやすくすることが一番のメリットであり、オンプレミスの世界では、今でもある程度有効です。ただ、appengineの世界では、テストする環境が整えられているので、DIを使う必要はないということです。 http://d.hatena.ne.jp/higayasuo/20091115/1258245284 DIを使ったことがある人はわかると思うけど、DIには、ある程度のめんどくささがあります。appengineの世界では、DIがなくてもテストが簡単にかけるので、わざわざめんどくさいことをする必要はないでしょう。 appengineの世界でテストがどれくらい書きやすいのかは、次のustをみればわかります。 http://www.ustream.tv/recorded/6377235 技術的には、

    DIコンテナの必要性 - ひがやすを技術ブログ
  • Song of Cloud: Slim3 Datastoreに乗り換える(1)

    Slim3 DatastoreはGoogle App Engine for Javaのデータストアを操作するライブラリです。 最近JDOからSlim3 Datastoreに乗り換えつつあるので、背景や使い方などをつらつらと書いていきます。 Slim3 Datastoreの特徴 Slim3 Datastoreはデータストア低レベルAPIの薄いラッパーとして作成されています。他のラッパープロダクト(JDO/JPA)と違いApp Engineのデータストア専用に作られているため、提供される機能が非常に直感的で、さらにかなり高速に動きます。 ざっくり説明すると、以下のような機能を提供しています。 データストア上のデータと自作のモデルオブジェクトを相互に変換する 他にも色々とあった気がしますが、Slim3 Datastoreを利用する最大のメリットは上記の点でしょう。 しかもこの変換層をコンパイル時

  • App EngineのEntityGroupを理解しよう - ひがやすを技術ブログ

    App EngineのEntitiGroupは、Keyの親子関係を利用して組み立てられたEntityの集まりです。 Entityとは、Bigtable上の1つの行で、ユニークに識別するためのKeyを持っています。 Keyは、種類をあらわすkindとAppEngineから自動的に採番されるidもしくはアプリケーション側で自由に決めることのできるnameで構成されます。 通常は、AppEngineの自動採番に任せますが、Emailのアドレスをキーに使いたい場合などは、nameを使います。kindはテーブル名のようなものだと思ってください。 Keyの親子関係は次のようにして作ります。 Key grandparentKey = KeyFactory.createKey("Grandparent", "しげお"); Key parentKey = KeyFactory.createKey(grand

    App EngineのEntityGroupを理解しよう - ひがやすを技術ブログ
    hagayu
    hagayu 2010/04/09
  • Song of Cloud: 送金のトランザクション処理パターン

    App Engineで現実的な送金処理について考え中です。 ドラフト版なので、怪しい点があればご指摘いただければ幸いです。 コメントで情報いただきました。 Distributed Transactions on App Engineで紹介されてる方法と基的に同じなので、おそらく問題なく動きそうです。ありがとうございました。 今回はこんな図を使います。 この図の読み方は、矢印の方向にユースケースの一連の処理(またはリクエストの処理)が流れていて、右に行くほど時間が経過しています。そして、矢印がくし刺しにしている四角形は、そのユースケース中で操作するエンティティを表しています。 また、左右の位置が同じ矢印は、基的には同じ時刻に発生したイベントを表しています。上記の図では、A, B, Cがそれぞれの口座エンティティを同時に操作している感じです。 並行性制御(おさらい) 最初の図のように、それ

    hagayu
    hagayu 2010/04/09
  • Google App EngineでGlobal Transaction - ひがやすを技術ブログ

    Google App EngineにはTransactionは1つのEntity Group内でしかできないという制限があります。詳しくは、App EngineのEntityGroupを理解しよう - yvsu pron. yasを参照してください。 そうするとある口座から別の口座にお金を振込むような送金のパターンで、Transactionを利用することができません(すべての口座を1Entity Groupに押し込むと更新がぶつかって現実的ではないから)。送金パターンで整合性を保つためには、理論的には次のようになります。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 実装するとこんな感じ。 http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engi

    Google App EngineでGlobal Transaction - ひがやすを技術ブログ
  • Will it play in App Engine - Google App Engine for Java | Google Groups

    For information on a particular framework, language, or library please search for it's name on this page. If the item you are interested is not listed, has incorrect information, or you have a fix for a reported issue, please add a comment to the page. LanguagesAll JVM-based languages are subject to the same App Engine sandbox restrictions as Java: http://code.google.com/appengine/docs/java/runtim

  • 1