SlideShare a Scribd company logo
1 of 56
Download to read offline
SpringMVCとmixer2で作る
       Webアプリのキホン

        Basic Web Application
    with SpringMVC & mixer2
Spring勉強会 by #JSUG at VMWare-Japan
                        2013-01-24
プロローグ
PROLOGUE


           2
クリスマスイブのとあるツイート




                  3
MacBookじゃなくてスイマセン...




                       4
なんかこのタイトルもダサく
思えてきた...


  SpringMVCとmixer2で作る
         Webアプリのキホン
とりあえずタイトル変えてみる!
Webデザイナーさんと
仲良く仕事するための
SpringMVCとmixer2
     2013-01-24
    Spring勉強会
自己紹介


       •   わたなべ
       •   SI屋の技術屋さん
       •   @nabedge
       •   nabedge@gmail.com
       •   http://nabedge.blogspot.jp/



                                         8
目次

1.   SpringMVC
2.   テンプレートエンジン
3.   Mixer2をHelloWorldで解説
4.   Why mixer2 ?
5.   SpringMVCとmixer2の組み合わせの勘所
6.   コントローラとビューに対するテスト
7.   Webアプリの分割開発
8.   まとめ
9.   FAQ
                                 9
1. Spring MVC



                10
SpringMVC

• JavaでWebアプリをつくりためのMVCフレー
  ムワーク。
• 生のサーブレット&JSPで作るより100倍作り
  やすい。
• 大昔のStrutsより10倍は学習しやすい
• ライバルとしてはSeasarのSAStrutsとか。
• Spring3.Xになって以降はSAStrutsよりもさら
  に使いやすくなった!
• 詳しくは「Spring3入門」を読みましょう。
                              11
2. テンプレートエンジン



                12
テンプレートエンジン
JSP:一番身近なテンプレートエンジン

   こんにちは
   <% if (name == null) { %>
     ゲストさん
   <% } else { %>
     <%= name %>さん
   <% } %>
    通常のJava言語、EL式、カスタムタグで書く
                               13
テンプレートエンジン
Velocity:Javaでは老舗のテンプレートエンジン

    こんにちは
    #if (name == null) {
       ゲストさん
    #else
       ${name}さん
    #end
     VTL = Velocity Template Languageで書く
                                           14
テンプレートエンジン
FreeMarker:最近人気のテンプレートエンジン

   こんにちは
   <#if name?has_content>
     ${name}さん
   <#else>
     ゲストさん
   </#if>
   FTL = Freemarker Template Languageで書く
                                       15
テンプレートエンジン
Mixer2:Webデザイナーと仲良く仕事するため
のテンプレートエンジン
テンプレートファイル(*.html)は純粋なXHTMLとCSS
  こんにちは
  <span id=“name”>ななし</span>さん
値の埋め込みやロジックは普通のJavaで書く(*.java)
  String name = “ヤマダ”;
  Span span = html.getById(“name”, Span.class);
  span.getContent.clear();
  span.getContent.add(name);
  // これで <span id=“name”>ヤマダ</span>さん
  // になる
                                                  16
3. mixer2を
 HelloWorld(SpringMVC編)
           で解説
http://mixer2.org/site/springmvcsample.html


                                              17
補足:タグとJava型
HTMLタグとJavaオブジェクトを相互マッピング

 <html>…</html> ⇔ org.mixer2.jaxb.xhtml.Html
 <div>…</div>   ⇔ org.mixer2.jaxb.xhtml.Div
 (ほか全120種類くらいのタグすべてを実装済み)

タグの属性はJavaオブジェクトのプロパティにマッピング。
setter/getterメソッドでアクセス
  <div id=“foo”>…</div>
  をテンプレートとしてロードすると
  String id = div.getId(); // これでidに”foo”が入る
  (html4/5のすべての属性を実装済み)
                                               18
補足:複数要素はListになる
template.html                    listの中身
<html>                           index      型
<body>
                                 0          P
 <p>Hello World</p>
 foo                             1          String
 <span>bar</span>
</body>                          2          Span
</html>


Html html = mixer2Engine         java.util.List<Object> list
      .loadHtmlTemplate(            = html.getBody()
             “template.html”);          .getContent();
                                                               19
ちょっと一息




         •水分補給
         •時間を確認
         10分か15分くらい?
                   20
4. Why mixer2 ?



                  21
最大のメリット



 htmlモックアップを
 JSPに書き変えずに
 そのまま使える

               22
デモ
(フルーツショップサンプルアプリ編)
     https://github.com/nabedge/mixer2-
sample/tree/master/mixer2-fruitshop-springmvc


   「github mixer2-fruitshop-springmvc」
   でググるとすぐ見つかります。

                                                23
5. Mixer2とSpringMVCを
組み合わせる場合の勘所



                       24
勘所

1. コントローラクラスの肥大化を防ぐ
2. aタグやimgタグの相対パスの書き換え
3. <mvc:resources />で静的リソースを出
   力
4. 上の2,3を生かすためのおススメディレ
   クトリ構造



                            25
コントローラクラスの肥大化を防ぐ




                   26
ふつうのコントローラとJSP
商品情報を表示するコントローラクラス
  @Controller
  public class ItemController {
   @RequestMapping(value = "/item/{itemId}")
   public ModelAndView showItem(@PathVariable long itemId) {
     // DBから商品情報を取得
     Item item = itemService.getItem(itemId);
     // modelAndViewにitemを詰めて返す
     retern new ModelAndView(“item.jsp”, “item”, item);
   }

JSP
  <%@page pageEncoding="UTF-8"%>
  <html>
   <body>
    <span>商品名:${item.name}</span>
   </body>
  </html>                                                      27
コントローラの肥大化を防ぐ
@RequestMapping(value = "/item/{itemId}")
public ModelAndView showItem(@PathVariable long itemId) {

  // DBから商品情報を取得
  Item item = itemService.getItem(itemId);

  // テンプレートのロード
  String mainTemplate = "classpath:m2mockup/m2template/item.html"
  File file = ResourceUtils.getFile(mainTemplate);
  Html html = mixer2Engine.loadHtmlTemplate(file); このへんが肥大化
                                                       してしまう
  // 商品情報のdivタグ
  Div itemBox = html.getBody().getById("itemBox", Div.class);

  // 商品名を書き込む
  itemBox.getById("itemName", H1.class).getContent().clear();
  itemBox.getById("itemName", H1.class).getContent().add(item.getName());
  // 価格、説明、その他もろもろも...
                                                                      28
コントローラの肥大化を防ぐ
@RequestMapping(value = "/item/{itemId}")
public ModelAndView showItem(@PathVariable long itemId) {

  // DBから商品情報を取得
  Item item = itemService.getItem(itemId);

  // テンプレートのロード
  String mainTemplate = "classpath:m2mockup/m2template/item.html"
  File file = ResourceUtils.getFile(mainTemplate);
  Html html = mixer2Engine.loadHtmlTemplate(file);

  // 商品情報を埋め込む
  ItemHelper.replaceItemBox(html, item);
  ……
                                             ヘルパークラスに切り
                                             出せば1行で済む

                                                                    29
コントローラの肥大化を防ぐ
ヘルパーはごく単純なstaticメソッドでよい
public class ItemHelper {
                            テンプレのhtml              DBから取得した商品情報
 public static void replaceItemBox(Html html, Item item) {

  // 商品情報を入れるdivタグを取得
  Div itemBox = html.getBody().getById("itemBox", Div.class);

  // divの中のH1やSpanの中にDBから取得した値を入れる
  itemBox.getById("itemName", H1.class).getContent().clear();
  itemBox.getById("itemName", H1.class).getContent().add(item.getName());
  itemBox.getById("itemPrice", Span.class).getContent().clear();
  itemBox.getById("itemPrice", Span.class).getContent().add(
     item.getPrice().toString());
  itemBox.getById("itemDescription", Div.class).getContent().clear();
  itemBox.getById("itemDescription", Div.class).getContent().add(
     item.getDescription());
                                                                      30
相対パスの書き換え
左上のロゴはトップページへ
のリンク
テンプレートファイルではこうなってるけど
<a class=“topPageAnchor”
  href="../m2template/index.html">
 <img src="../m2static/img/fruitshop-logo.png" />
</a>
実際の出力ではこうしなきゃならない
<a class=“topPageAnchor”
  href=“/[contextPath]/">
 <img src="/[contextPath]/m2static/img/fruitshop-logo.png" />
</a>
                                                           31
相対パスの書き換え
“topPageAnchor”というclass属性を持つすべてのaタグのhref属
性を書き変える
String ctx = "xxx"; // コンテキストパスを取得しておく

for (A a : html.getDescendants("topPageAnchor", A.class)) {
   a.setHref(ctx + "/");
}

Mixer2ではすべてのタグ型が下記のメソッドを持っている
• getDescendants()メソッド:該当するすべての子孫タグをList
   で取得
• getById()メソッド:id属性でタグを1個だけ取得
• 他にもreplace系とかremove系のメソッドもあります。
                                                              32
相対パスの書き換え
Imgタグのsrc属性、styleタグのhref属性なども同様
// <img src="" />
for (Img img : tagObj.getDescendants(Img.class)) {
   if (img.isSetSrc()) {
       String src = img.getSrc();
       img.setSrc(convertPath(src));
   }
}

                   convertPathメソッドは、
                     ../m2static/
                   のような文字列を
                     /[contextPath]/m2static/
                   に置換している
                                                     33
<mvc:resources />で
 静的リソースを出力




                     34
Java/Webアプリでの静的ファイルの配置

http://localhost:8080/[contextPath]/foo/bar.png

  src
  └─main           普通ならdocroot配下に置く。
      ├─java       さもないとブラウザからアク
      ├─resources  セス不可能
      └─webapp
        └─foo
            └─bar.png

    ※maven標準ディレクトリ構造です
                                              35
Java/Webアプリでの静的ファイルの配置

src
└─main
    ├─java
    ├─resources
    │ │ applicationContext.xml
    │ │
    │ └─m2mockup                 テンプレートhtmlと画像
    │     ├─m2static
    │     │ └─img                やCSSをまとめて
    │     │          logo.png    resources配下に置く。
    │     │                      クラスパス上に置くほう
    │     └─m2template           が、Javaコードから扱い
    │            index.html      やすいから!
    │            item.html
    │
    └─webapp

                                                   36
DispatcherServletのstatic resource機能




 • Spring3.X以降、DispatcherServletは、http
   リクエストをコントローラクラスに中継する機
   能だけでなく、静的リソースを直接レスポンス
   する機能がある




                                         37
Java/Webアプリでの静的ファイルの配置
src/main/resources/mvc-dispatcher-servlet.xml の抜粋

  <mvc:resources
      mapping="/m2static/**"
      location="classpath:/m2mockup/m2static/"
      cache-period="60" />
  1. http://.../contextPath/m2static/** というURLへの
     アクセスに対して
  2. クラスパスから /m2mockup/m2static/** というリ
     ソースを探してそれを返す
  3. そのとき Cache-Control: max-age=60 のような
     httpレスポンスヘッダつきで返す
                                                    38
ただし、注意しないと、、、!
1. こういうディレクトリ構造で            2. こういう設定をしてしまうと
src                         <mvc:resources
└─main                        mapping=
    ├─java
    ├─resources
                                "/m2mockup/**"
    │ └─m2mockup              location=
    │     ├─img                 "classpath:/m2mockup/"/>
    │     │     logo.png
    │     └─item.html
    └─webapp


3. 画像やCSSだけでなく、テンプレートhtmlにもそのままアクセス
できてしまう!(もちろんまずい)
      http://…/[ContextPath]/m2mockup/img/logo.png
      http://…/[ContextPath]/m2mockup/item.html
                                                      39
だから、これがオススメ構造

src
└─main
    ├─java                      m2mockup配下にモック
    ├─resources                 アップhtmlを作る
    │ │ applicationContext.xml
    │ │
    │ └─m2mockup                画像やCSSはm2static配下に
    │     ├─m2static            置いて、 <mvc:resources />
    │     │ └─img
    │     │          logo.png
                                の設定での出力対象にする
    │     │
    │     └─m2template
    │            index.html
    │            item.html
    │
    └─webapp                  htmlテンプレートは
                          m2template配下に
                                                     40
これでデザイナとプログラマが仲良く仕事できる!




   プログラマとデザイナの取り決め事項
   1. htmlモックアップは
      src/main/resources/m2mockup の下に作
      ろうぜ。
   2. ただし*.htmlはm2template,それ以外は
      m2staticの配下でたのむ。
   3. 商品情報のdivタグはid=“itemBox”にしよう。
   4. 商品名はspanタグでid=“itemName”
   5. …..その他の情報も同様にclass属性やid属性を決
    めておけばよい。
                                         41
もちろん
「htmlをjspに書き変える」
という退屈な作業は不要



                   42
6. コントローラとビューに対するテスト




                  43
ざっくりした流れ
1. JunitコードのランナーとしてSpringJUnit4ClassRunner を
   使えば、DIコンテナが勝手にいい感じで起動してくれる。
2. HttpServletRequest, HttpServletResponseのモックをイン
   スタンス化する
3. モックのrequestにテスト対象のURIやパラメータをセット
4. そのrequestオブジェクトをリクエストハンドラに渡すと疑似
   リクエストが発生し、コントローラクラスに渡される。
5. コントローラの該当メソッドが戻り値として返す
   ModelAndViewオブジェクトにhtmlStringが入っている。
6. このhtmlStringの中をMixer2Engineで再度Htmlオブジェク
   ト化する
7. Htmlオブジェクトの中をAssertすればよい。

                                                44
実際のテストコードで説明します

 https://github.com/nabedge/mixer2-
 sample/blob/master/mixer2-fruitshop-
 springmvc/src/test/java/org/mixer2/samp
 le/web/controller/ItemControllerTest.java

                                             45
最後の給水




        •水分補給
        •時間を確認
        40分くらい?
                  46
Webアプリの分割開発




              47
普通のWebアプリプロジェクト(maven形式)
                     Javaクラス以外は
                     src/main/webapp



                           静的ファイル
                           このへん

 Javaクラスとか
 このへん


             JSPとか
             このへん

                                   48
普通のWebアプリを分割開発するときのカベ

1. Javaクラスや、その設定ファイル
   (*.properties,*.xml,*.sql)は別プロジェクト化
   してjar化してWebアプリ側から依存関係を
   つくればいい。
 – つまり、Javaライブラリは分割開発可能


2. しかし、src/main/webapp 配下に置くような
   JSP,静的リソース、設定ファイル類(MVCで
   言うとViewの周辺)は、プロジェクト分割&
   別パッケージ化が難しい。
                                     49
Mixer2を使うと

 1. Mixer2は、Viewを普通のjavaコードで取
    扱う。

 2. そのテンプレートもJavaコードから見ると
    ただのリソースファイルとして扱える。

 3. よって、普通のJavaライブラリ同様に分割
    が可能。


                                50
デモ

• デモでお見せします。
 プロジェクト間依存関係はこんな感
 じ
 m2flowershop-web(.war)
     m2flowershop-front(.jar)
     m2flowershop-cart(.jar)
       m2flowershop-resource(.jar)
                                     51
後日談

• ※結局、当日までにサンプルのコーディング
  が間に合わなかったのでこのデモはやってま
  せん。(^^;




                         52
7. まとめ




         53
まとめ

• SpringMVCはシンプルで使いやすいフレームワーク
• mixer2とSpringMVCは良いコンビ
• ディレクトリ構造を考えたうえでSpringMVCの静的リ
  ソース出力機能と組み合わせれば、htmlモックアップ
  をjspに書き変える作業は不要
• jspでは難しい、ビューに対するテストの自動化も可
  能
• htmlテンプレートファイルと静的ファイル(ex.画像)と
  Javaクラスをjarパッケージ化できるので、Webアプリ
  の分割開発すら可能。
                              54
FAQ
• Q. モックアップHTMLはクラスパス上に置かなきゃダメですか?
  – A. Mixer2EngineのloadHtmlTemplateメソッドはjava.io.File, String,
    StringBufferのいずれかでテンプレートhtmlを読めます。したがってOSのファイ
    ルシステム上でもDB上でもどこでもOKです。
  – ※後日談:ver1.1.14 以降、InputStreamからも読めるようになりました。


• Q. WEB-INF/view/mixer2view.jsp を通じて結局jspを使っているのはダ
  サくないですか?
  – A. 実はその通りです。本来は、コントローラのメソッドの戻り値としてHtmlオブ
    ジェクトを返すだけで済むようなViewResolverを実装するべきです。誰か作っ
    て!(Pull Request熱烈歓迎!)


• Q. mixer2を使う場合はJSPは完全に排除しなきゃだめですか?既存の
  taglibも使いたいのですが?
  – A. 可能です。たとえば、 *.htmlで用意したテンプレートを読み込んで、その一部
    のタグだけを部分マーシャルし、jsp上に埋め込むことも可能です。

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




                 56

More Related Content

What's hot

【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
 
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法Mitsuru Katoh
 
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfileJava EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfileNorito Agetsuma
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1kenjis
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」Hiroaki NAKADA
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にTaku Miyakawa
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発Yoshitaka Kawashima
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12kenjis
 
Deep dive into instanceof
Deep dive into instanceofDeep dive into instanceof
Deep dive into instanceofHiroshi Saito
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようAkira Shimosako
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤Yuichi Sakuraba
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術Y Watanabe
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01Yusuke Ando
 

What's hot (20)

【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
 
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
 
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfileJava EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfile
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
 
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
 
Deep dive into instanceof
Deep dive into instanceofDeep dive into instanceof
Deep dive into instanceof
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Heap statsfx analyzer
Heap statsfx analyzerHeap statsfx analyzer
Heap statsfx analyzer
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
PHP勉強会 #51
PHP勉強会 #51PHP勉強会 #51
PHP勉強会 #51
 

Viewers also liked

Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Y Watanabe
 
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCSpring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCYuichi Hasegawa
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2Y Watanabe
 
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2Y Watanabe
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園Y Watanabe
 
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷javaMixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷javaY Watanabe
 
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LTY Watanabe
 
日本語によるJUnitの拡張について
日本語によるJUnitの拡張について日本語によるJUnitの拡張について
日本語によるJUnitの拡張についてKazuro Fukuhara
 
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略Y Watanabe
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界Y Watanabe
 
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Yoshio Terada
 
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なことY Watanabe
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話Y Watanabe
 
properties, yaml, and me
properties, yaml, and meproperties, yaml, and me
properties, yaml, and meY Watanabe
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークY Watanabe
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)sogdice
 
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷javaY Watanabe
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 

Viewers also liked (20)

Springの今
Springの今Springの今
Springの今
 
Spring3.1概要x di
Spring3.1概要x diSpring3.1概要x di
Spring3.1概要x di
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
 
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCSpring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
 
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
 
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷javaMixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
 
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
 
日本語によるJUnitの拡張について
日本語によるJUnitの拡張について日本語によるJUnitの拡張について
日本語によるJUnitの拡張について
 
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
 
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
 
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
 
properties, yaml, and me
properties, yaml, and meproperties, yaml, and me
properties, yaml, and me
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
 
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
 
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 

Similar to SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug

Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目龍一 田中
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideYusuke Tochigi
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Yuji Kubota
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~hokori matu
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについてtako pons
 
Ruby on Rails Tutorial
Ruby on Rails TutorialRuby on Rails Tutorial
Ruby on Rails TutorialKen Iiboshi
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamuraHiroshi Okunushi
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~Yoshitaka Seo
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -Akio Katayama
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -Akio Katayama
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 

Similar to SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug (20)

Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
Vue入門
Vue入門Vue入門
Vue入門
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
Ajax basic
Ajax basicAjax basic
Ajax basic
 
Ruby on Rails Tutorial
Ruby on Rails TutorialRuby on Rails Tutorial
Ruby on Rails Tutorial
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 

More from Y Watanabe

クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-RetryフレームワークY Watanabe
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1Y Watanabe
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩Y Watanabe
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Y Watanabe
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Y Watanabe
 

More from Y Watanabe (6)

クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug