SlideShare uma empresa Scribd logo
1 de 122
Baixar para ler offline
T2でつなごう!
   ~つなぐつながるWebフレームワーク
PHPからJavaへ移行する人向け機能も~




          富山勉強会 2009/04/04
自己紹介

名前
 米林 正明
ID
 id:yone098
所属
 株式会社Abby     代表取締役社長
自己紹介


出身
自己紹介


出身
富山
自己紹介


好きです
富山
自己紹介

カターレ富山
 初勝利おめでと
う!!!!!
一句


富山県
雷鳥 立山
ますのすし❤
Agenda

T2の概要
T2の仕組み
T2のスタイル
T2の目指す所
機能紹介
DIコンテナ非依存
今後の展開
デモ
T2 - The WEB Connector -




T2の概要
Webを取り巻く環境の進化
クライアント
             HTML                     Flex3
                        Ajax

         Param           XML           AMF3

フレームワーク
            Struts   Struts2     BlazeDS

サーバ
         Action         Action
                                       POJO
                       Support
Webを取り巻く環境

 無理なが
 無理なが
T2とは

T2とは
 シンプルなWebフレームワーク
  フィルタ指向
  アノテーションベース
 テーマ「つなぐ・つながる」
  ユーザと開発者を
  実案件と楽しさを
  あらゆるクライアントとサーバアプリを
 クライアントとユーザーコードの仲介役
T2とは

T2とは
 クライアント側は自由に選択可能
  フォームのサブミット
  Ajaxリクエスト/REST
  Flex/AIR/Silverlightなどのリッチクライアント
  Webサービス
 統一したプログラミングモデルの提供
  クライアントがどうであっても常に同じように作れ
  る。作り方が変わらない
  一貫したスキルセットで開発可能
T2とは



つなぐ
つながる
T2でつなごう!
クライアント




          T2!
サーバ
T2の仕組み




T2の仕組み
T2の基本的な仕組み
フィルタベースのWebフレームワーク
 URLとJavaオブジェクト(POJO)をマッチング
  アノテーションでマッチング
 マッチしたPOJOから適切なメソッドを選択
 メソッドを実行
  行き先と遷移方法を指定するNavigationインタ
  フェースの実装を返す
 T2がそれに従って遷移する
  テンプレートエンジンやレンダリングは任意で指定
  JSP、ZPT、Mayaaなんでも可能
T2の基本的な仕組み

                   リクエストURLと
                           と
                   リクエスト
       リクエスト           がマッチ?
                   POJOがマッチ?

                マッチした
                マッチしたPOJOのメソッド
                   した    の
                     マッチ?
                    とマッチ?


                   対象メソッドの
                   対象メソッドの実行
                     メソッド


                 Navigationによる次の遷
                           による次
                           による
       レスポンス
                   移先と方法の
                   移先と方法の決定
ブラウザ
T2 - The WEB Connector -




T2のスタイル
T2のスタイル

アノテーションドリブン
  エントリーポイントのPOJOにアノテーション付与
  エントリーポイントの分かりやすさ重視
  規約とアノテーションを適切に利用

              @GET
サーバ           @ActionPath(“/hoge”)
      @POST
T2のスタイル

基本はステートレス
T2のスタイル

基本はステートレス
特定のコンテナへ依存しない


                コンテナなくて
                コンテナなくて
                  もOK
T2のスタイル

ユーザーに介入してほしい
 コアはシンプルに。
 エクステンションで便利機能を提供
 プロジェクトごとに必要な機能を作るのも簡単
ユーザが制御可能だと自信をもって言え
    制御可能だと自信をもって言
    制御可能だと自信をもって
る事がとても重要。
 そのための徹底的なシンプルさ。
T2とは



つなぐ
つながる
T2 - The WEB Connector -




T2の目指す所
T2の目指す所
マルチビューをさばける
過渡期でも使える
依存が少ない
ユーザーが支配出来る・やりすぎない
Webクライアントの自由度を妨げない
 Formサブミット
 リッチクライアント
 Ajax
 Webサービス
T2 - The WEB Connector -




機能紹介
T2 - The WEB Connector -



リクエストとPOJOの
  マッピング
T2の基本的な仕組み

                   リクエストURLと
                           と
                   リクエスト
       リクエスト           がマッチ?
                   POJOがマッチ?

                マッチした
                マッチしたPOJOのメソッド
                   した    の
                     マッチ?
                    とマッチ?


                   対象メソッドの
                   対象メソッドの実行
                     メソッド


                 Navigationによる次の遷
                           による次
                           による
       レスポンス
                   移先と方法の
                   移先と方法の決定
ブラウザ
URLとPageのマッピング

STEP1:@Pageでクラス特定
           でクラス特定

  http://yoursite.com/t2app/hello/world


    @Page(“/hello”)
    public class MyHello {
    …
T2 - The WEB Connector -



 リクエスト内容と
アクションメソッドの
  マッピング
T2の基本的な仕組み

                   リクエストURLと
                           と
                   リクエスト
       リクエスト           がマッチ?
                   POJOがマッチ?

                マッチした
                マッチしたPOJOのメソッド
                   した    の
                     マッチ?
                    とマッチ?


                   対象メソッドの
                   対象メソッドの実行
                     メソッド


                 Navigationによる次の遷
                           による次
                           による
       レスポンス
                   移先と方法の
                   移先と方法の決定
ブラウザ
基本機能
STEP2:メソッドアノテーションでメソッド特定
    2 メソッドアノテーションでメソッド特定
      メソッドアノテーション
      http://yoursite.com/t2app/hello/world

 @Page(“/hello”)
 public class MyHello {

  @GET
  @ActionPath(“/world”)
  public Navigation helloworld(){
 …
メソッド特定方法


            のリクエストで
@GET GETのリクエストで かつ
                                 のパスの
@ActionPath(“/world”) /worldのパスの場合
 public Navigation helloworld(){
…


       全マッチの場合、呼び出される。
        マッチの場合、   される。
メソッドアノテーション

@GET,@POST
@ActionPath
@ActionParam
 リクエストパラメータのkey
 key-value指定も可能
@Ajax
@Amf (0.6から)
@Default
アノテーションマッチ
複数のメソッドがマッチした場合
 たくさんアノテーションがマッチした方を優先
同じ数のアノテーションがマッチした場合
 先に見つかったほうを使用
マッチするのがなかった場合
 @Defaultがついたメソッドを呼ぶ
 @Defaultつきがない場合、エラー
メソッド引数特定方法

引数のアノテーションを見て、適切なコン
ポーネントをインジェクト
 @RequestParam
 @RequestHeader
 @SessionAttr
 @Upload
 @Form
 @Index
 @Var
メソッド引数特定方法

引数の型を見て、インジェクト
 HttpServletRequest, HttpServletResponse
 HttpSession
 ServletContext
 Cookie/Cookie[]
 WebContext
 Request, Response
 UploadFile
 ErrorInfo
メソッド引数特定方法

@ActionPath(“/world/{id}”)
public Navigation helloworld(
 HttpSession session,
  @Var(“id”) String id,
  @RequestParam(“name”) String name){

…
T2とは



つなぐ
つながる
phpとつながる


PHPでの開発
5年やってます
phpとつながる


PHPといえば
phpとつながる

$_GET
$_POST
$_SESSION
$_FILES
phpとつながる

$_GET[“arg1”]
$_POST[“arg2”]
$_SESSION[“name”]
$_FILES[“sample”]
phpとつながる


わかりやすい
phpとつながる

PHPを知ってる人にJavaを教えると
 「Javaはクラス名長い><」
 「Javaはメソッド名長くない?><」
 「HttpServletRequestとか何?><」
 「$_POST[‘arg’]で取れないの><」
phpとつながる

PHPを知ってる人にJavaを教えたら
 「Javaはクラス名長い><」
 「Javaはメソッド名長くない?><」
 「HttpServletRequestとか何?><」
 「$_POST[‘arg’]で取れないの><」



        ごもっとも
一句


無いのなら
作ってしまおう
$_POST
PHPとつながる
public class $_POST {
  public static <T> T get(String key) {
    T ret = null;
    String[] params =
               WebContextUtil.getRequest().getParameters(key);
    if (params != null && params.length == 1) {
       ret = (T) params[0];
    } else {
       ret = (T) params;
    }
    return ret;
  }
}
PHPとつながる
  使い方
    PHP : $_POST[‘arg1’] Java : $_POST.get(‘arg1’)

@POST
public Navigation execute() {
  String value = $_POST.get(“arg1quot;);
  ….
}
PHPとつながる
対応クラス
$_POST
$_GET
$_SESSION
$_FILES
PHPとつながる
  使い方 $_FILES
     ファイルアップロードも熱い

@POST
@ActionParam
public Navigation upload() {
  UploadFile file = $_FILES.get(‘sample’);
  logger.debug(quot;file name: {}, size:{}quot;,
    file.getName(), file.getSize());
  ….
}
PHPとつながる
使い方
 sampleのlikephpを参照
手軽に試す方法
t2-samplesをチェックアウト
htmlを作成
対応するPageクラスで$_POST, $_FILES,
$_SESSION, $_GETを実際に使ってみる
PHPとつながる
今後
$_ENVやvar_dump関数を提供もしくは作って
ください
狙い
PHPに記述が似ててすぐ動いて嬉しい
$_POSTってどうなってるの?
そのままソースを追う事によりJavaに興味を持
ちつつHttpServletRequestの理解
 最後は自分で勉強することが大事
 $_ENVを作ることにより理解も深まる
T2とは



つなぐ
つながる
T2 - The WEB Connector -



レスポンス
T2の基本的な仕組み

                   リクエストURLと
                           と
                   リクエスト
       リクエスト           がマッチ?
                   POJOがマッチ?

                マッチした
                マッチしたPOJOのメソッド
                   した    の
                     マッチ?
                    とマッチ?


                   対象メソッドの
                   対象メソッドの実行
                     メソッド


                 Navigationによる次の遷
                           による次
                           による
       レスポンス
                   移先と方法の
                   移先と方法の決定
ブラウザ
レスポンス
戻り値として、Navigationインターフェースを
実装したクラスのインスタンスを返す
 Forward(フォワードする)
 Redirect(リダイレクトする)
 SimpleText(テキストデータを返す)
 Direct(ファイルなどを直接書き込む)
 Json(JSONにして返す)
 NoOperation(何もしない)
 PassThrough(次のServlet/Filterに委譲)
レスポンス
      に
//JSPにForward
@ActionPath(“/world/{id}”)
public Navigation helloworld(){
  return Forward.to(“/jsp/hoge.jsp”);
}

//画像ファイルを返す
   画像ファイルを
   画像ファイル
@ActionPath(“/worldImage”)
public Navigation helloworldImage(){
  File image = new File(“world.png”);
  return Direct.from(image);
}
レスポンス


マルチビューデモ
 Applet->T2
 JavaFX->T2
T2 - The WEB Connector -



DIコンテナ非依存
DIコンテナ非依存

T2は特定のDIコンテナなどのフレーム
ワークに依存しない
単体でも動作可能
主要DIコンテナとも連携可能
 アダプタ機能を配布
DIコンテナ非依存

T2が動作するDIコンテナ
 Guice
 Spring
 Lucy
DIコンテナ非依存


 今日は
 今日は
ひがさん
きとるにか
DIコンテナ非依存




         君
   Seasar君
どこ行ってしもたんや…
どこ行ってしもたんや
DIコンテナ非依存

T2が動作するDIコンテナ
 Seasar2
           あるよ!
           あるよ!
 Guice
 Spring
 Lucy
DIコンテナ非依存


  今日は
  今日は
  ひがさん
   Slim3
メインやないか
メインやないか
DIコンテナ非依存




    Slim3
どこ行ってしもたんや…
どこ行ってしもたんや
DIコンテナ非依存

T2が動作するDIコンテナ
 Seasar2
            未検証><
            未検証><
        ?
 Slim3?
 Guice
 Spring
 Lucy
DIコンテナ非依存

環境構築~Seasar2編~
 参照
  t2-employee
 構成
  S2.4 + S2Dao
DIコンテナ非依存

作成設定ファイル~Seasar2編~
 aop.dicon
 app.dicon
 dao.dicon
 jdbc.dicon
DIコンテナ非依存
           web.xml~Seasar2編~
<filter>
  <filter-name>t2</filter-name>
  <filter-class>org.t2framework.filter.T2Filter
  </filter-class>
  <init-param>
   <param-name>t2.rootpackage</param-name>
   <param-value>examples.employee.page</param-value>
  </init-param>
  <init-param>
   <param-name>t2.container.adapter</param-name>
   <param-value>org.t2framework.plugins.container.Seasar2Adapter</param-value>
  </init-param>
  <init-param>
   <param-name>t2.eagerload</param-name>
   <param-value>true</param-value>
  </init-param>
</filter>
DIコンテナ非依存
 Pageクラス~Seasar2編~

@RequestScope
@Page(quot;loginquot;)
public class LoginPage
DIコンテナ非依存
       PageクラスDI~Seasar2編~
protected FooService fooService;

@Binding(bindingType = BindingType.MUST)
public void setFooService(FooService fooService) {
  this.fooService = fooService;
}
DIコンテナ非依存

環境構築~Guice編~
 参照
 t2-guice
 構成
 Guice + JPA
DIコンテナ非依存

作成設定ファイル~Guice編~
persistence.xml
※Guice用のモジュール(Java
で)
DIコンテナ非依存
            web.xml~Guice編~
<filter>
  <filter-name>t2</filter-name>
  <filter-class>org.t2framework.t2.filter.T2Filter</filter-class>
  <init-param>
    <param-name>t2.rootpackage</param-name>
    <param-value>org.t2framework.samples.guice.page</param-value>
  </init-param>
  <init-param>
    <param-name>t2.container.adapter</param-name>
    <param-value>org.t2framework.t2.adapter.GuiceAdapter</param-value>
  </init-param>
  <init-param>
    <param-name>t2.exclude-resources</param-name>
    <param-value>css, js</param-value>
  </init-param>
 </filter>
DIコンテナ非依存
 Pageクラス~Guice編~

@RequestScoped
@Page(quot;addquot;)
public class AddPage
DIコンテナ非依存
    PageクラスDI~Guice編~
@Inject
private CalcService calcService;

@Inject
@RequestParameters
Map<String, String[]> params;
DIコンテナ非依存

環境構築~Spring編~
 参照
  t2-spring
 構成
  Spring2.5 + iBatis
DIコンテナ非依存

作成設定ファイル~Spring編~
 applicationContext.xml
 dao-ibatis.xml
 sql-map-config.xml
 XxxSqlMap.xml
DIコンテナ非依存
               web.xml~Spring編~
<filter>
  <filter-name>t2</filter-name>
  <filter-class>org.t2framework.t2.filter.T2Filter</filter-class>
  <init-param>
   <param-name>t2.rootpackage</param-name>
   <param-value>org.t2framework.samples.spring.page</param-value>
  </init-param>
  <init-param>
   <param-name>t2.config</param-name>
   <param-value>applicationContext.xml</param-value>
  </init-param>
  <init-param>
   <param-name>t2.container.adapter</param-name>
   <param-value>org.t2framework.t2.adapter.SpringAdapter</param-value>
  </init-param>
  <init-param>
   <param-name>t2.eagerload</param-name>
   <param-value>true</param-value>
  </init-param>
  <init-param>
   <param-name>t2.exclude-resources</param-name>
   <param-value>css, js</param-value>
  </init-param>
</filter>
DIコンテナ非依存
 Pageクラス~Spring編~

@Component
@Page(quot;addquot;)
public class AddPage
DIコンテナ非依存
     PageクラスDI~Spring編~
private CalcService calcService;

@Autowired(required=true)
public void setCalcService(
  CalcService calcService) {
   this.calcService = calcService;
}
DIコンテナ非依存
動作確認アプリケーションサーバ
 Tomcat5x/6x
 JBoss4x/5x
 Jetty6x
 WebLogic10x
  その他いろいろ… Yonexで確認
T2 - The WEB Connector -



T2の拡張性
拡張性の高さ
ユーザが制御可能=拡張性が高い
 メインフローの順序・実装
 ActionFilter
 例外ハンドリング部分
 ExceptionHandler
 プラグイン機能による機能追加
 Pluginによって処理を差し込める
T2 - The WEB Connector -




今後の展望
今後の展望

バージョン0.6
 Flex3対応
  どのフレームワークよりも簡単に
  Flex/AIRと通信できる
 AMF3の実装
バージョン0.7
 Atom、RSS、Webサービス対応
T2プロジェクトについて

T2プロジェクトとは
 Apacheライセンスのプロジェクト
  Javaだけに限っていない
 本当に現場で使えるものを作る
 自分達が実際に使い、コミュニティに還元し、
 洗練させていく
 ユーザを大事にし、継続してお互い成長する
 楽しく開発・コミュニケーション!
色々なプロダクト
Commons
  共通ユーティリティフレームワーク
Commons-ext
  JTAトランザクション実装、DataSet API
Lucy
  ライトウェイトDIコンテナ
  AOP機能
Daisy(開発中)
  2waySQLフレームワーク
  薄いJDBCラッパー
その他プロダクト

Yonex(仮)
 Hyper Integration Test Suite



 レポーティング
    とかも
  提供したい!
プロジェクトリソース

サイト
 http://code.google.com/p/t-2/
リリースアーカイブ、ドキュメント、ソース
コード
メーリングリスト
 T2-users
   http://groups.google.com/group/t2-users
 開発の話、仕様の話、なんでもOK。
T2 - The WEB Connector -




まとめ
まとめ

T2はマルチビュー対応なシンプルWebフ
レームワーク
あらゆるクライアントをつなぎます!
が
まだまだ発展途上。ご意見ください!
T2 - The WEB Connector -




エンドロール
T2 - The WEB Connector -




出演
T2 - The WEB Connector -




テツ
T2 - The WEB Connector -




テツ
T2 - The WEB Connector -




テツ
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -
T2 - The WEB Connector -




イーダ
T2 - The WEB Connector -




 designed by
カネウチカズコ
T2 - The WEB Connector -




コミッタ
T2 - The WEB Connector -




片山 暁雄
T2 - The WEB Connector -
T2 - The WEB Connector -




米林 正明
T2 - The WEB Connector -
T2 - The WEB Connector -




横田 健彦
T2 - The WEB Connector -
T2 - The WEB Connector -




大谷 晋平
T2 - The WEB Connector -
一句


おらっちゃ
富山人
富山、北陸
盛り上げよう
(※字余り)
T2 - The WEB Connector -


御静聴ありがとうございました

Mais conteúdo relacionado

Mais procurados

WebHookの調査と実装
WebHookの調査と実装WebHookの調査と実装
WebHookの調査と実装moai kids
 
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツールはなずきん Hana
 
ウェブ開発の次なる主戦場、Open Social
ウェブ開発の次なる主戦場、Open Socialウェブ開発の次なる主戦場、Open Social
ウェブ開発の次なる主戦場、Open SocialFITEA
 
25000社以上採用計測ソリューション
25000社以上採用計測ソリューション25000社以上採用計測ソリューション
25000社以上採用計測ソリューションnishimizu
 
【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるにはdevsumi2009
 
Sentokyo(20061012)
Sentokyo(20061012)Sentokyo(20061012)
Sentokyo(20061012)真 岡本
 
Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.cydn.cybozu.co.jp
 
Locotab imarket 20201214_ver3
Locotab imarket 20201214_ver3Locotab imarket 20201214_ver3
Locotab imarket 20201214_ver3聖一 浅井
 
PXI, LabVIEW事例集2
PXI, LabVIEW事例集2PXI, LabVIEW事例集2
PXI, LabVIEW事例集2nishimizu
 
はてなブックマークのシステムについて
はてなブックマークのシステムについてはてなブックマークのシステムについて
はてなブックマークのシステムについてNaoya Ito
 
Perlで圧縮
Perlで圧縮Perlで圧縮
Perlで圧縮Naoya Ito
 
Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)kurikiyo
 
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 WhiteSd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 WhiteAkio Katayama
 
Hyper Estraierの設計と実装
Hyper Estraierの設計と実装Hyper Estraierの設計と実装
Hyper Estraierの設計と実装Hiroshi Ono
 
Internet Ued Process
Internet Ued ProcessInternet Ued Process
Internet Ued Processrex song
 

Mais procurados (20)

WebHookの調査と実装
WebHookの調査と実装WebHookの調査と実装
WebHookの調査と実装
 
S8
S8S8
S8
 
S2
S2S2
S2
 
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール
勉強会カンファレンス2009 IT勉強会カレンダーと募集ツール
 
ウェブ開発の次なる主戦場、Open Social
ウェブ開発の次なる主戦場、Open Socialウェブ開発の次なる主戦場、Open Social
ウェブ開発の次なる主戦場、Open Social
 
5 13 Internet
5 13 Internet5 13 Internet
5 13 Internet
 
25000社以上採用計測ソリューション
25000社以上採用計測ソリューション25000社以上採用計測ソリューション
25000社以上採用計測ソリューション
 
【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには【13-B-3】 企業システムをマッシュアップ型に変えるには
【13-B-3】 企業システムをマッシュアップ型に変えるには
 
Ext Ncs 20081029
Ext Ncs 20081029Ext Ncs 20081029
Ext Ncs 20081029
 
Sentokyo(20061012)
Sentokyo(20061012)Sentokyo(20061012)
Sentokyo(20061012)
 
Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.Cybozu Inc 10th anniversary event - developing section.
Cybozu Inc 10th anniversary event - developing section.
 
Locotab imarket 20201214_ver3
Locotab imarket 20201214_ver3Locotab imarket 20201214_ver3
Locotab imarket 20201214_ver3
 
PXI, LabVIEW事例集2
PXI, LabVIEW事例集2PXI, LabVIEW事例集2
PXI, LabVIEW事例集2
 
はてなブックマークのシステムについて
はてなブックマークのシステムについてはてなブックマークのシステムについて
はてなブックマークのシステムについて
 
Perlで圧縮
Perlで圧縮Perlで圧縮
Perlで圧縮
 
Cellphone
CellphoneCellphone
Cellphone
 
Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)Cloud for Enterprise IT (Japanese)
Cloud for Enterprise IT (Japanese)
 
Sd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 WhiteSd Loader Seasar Con2009 White
Sd Loader Seasar Con2009 White
 
Hyper Estraierの設計と実装
Hyper Estraierの設計と実装Hyper Estraierの設計と実装
Hyper Estraierの設計と実装
 
Internet Ued Process
Internet Ued ProcessInternet Ued Process
Internet Ued Process
 

Destaque

JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発Masuji Katoda
 
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...Yusuke Suzuki
 
そろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでそろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでなおき きしだ
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
Javaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツJavaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツKiyotaka NAKAYAMA
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallYusuke Suzuki
 

Destaque (7)

JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発
 
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
 
そろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやでそろそろJavaみなおしてもええんやで
そろそろJavaみなおしてもええんやで
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
Javaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツJavaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツ
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
 

Mais de Masaaki Yonebayashi (14)

Go guide for Java programmer
Go guide for Java programmerGo guide for Java programmer
Go guide for Java programmer
 
HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
Android T2 on cloud
Android T2 on cloudAndroid T2 on cloud
Android T2 on cloud
 
JavaFX-with-Adobe
JavaFX-with-AdobeJavaFX-with-Adobe
JavaFX-with-Adobe
 
Guice2.0
Guice2.0Guice2.0
Guice2.0
 
Flex's DI Container
Flex's DI ContainerFlex's DI Container
Flex's DI Container
 
T2 in Action
T2 in ActionT2 in Action
T2 in Action
 
guice-servlet
guice-servletguice-servlet
guice-servlet
 
Merapi -Adobe Air<=>Java-
Merapi -Adobe Air<=>Java-Merapi -Adobe Air<=>Java-
Merapi -Adobe Air<=>Java-
 
sc2009white_Teeda
sc2009white_Teedasc2009white_Teeda
sc2009white_Teeda
 
yonex
yonexyonex
yonex
 
S2Flex2
S2Flex2S2Flex2
S2Flex2
 
Teeda
TeedaTeeda
Teeda
 
Wankumatoyama#01
Wankumatoyama#01Wankumatoyama#01
Wankumatoyama#01
 

T2@java-ja#toyama