makopi23のブログ

makopi23が日々の生活で感じたことを気ままに綴るブログです。

"【東京】JJUGナイトセミナー 「Java EE 7徹底入門」の著者が解説! - Java EE 7特集"に参加しました

2016/2/15(月) "【東京】JJUGナイトセミナー 「Java EE 7徹底入門」の著者が解説! - Java EE 7特集"に参加してきました。

DoorKeeper
https://jjug.doorkeeper.jp/events/38857

Togetter
http://togetter.com/li/938867

場所は日本オラクルさんです。
参加者は200人くらいでしょうか。

以下の書籍をターゲットとした勉強会なのです。

Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築
寺田 佳央 猪瀬 淳 加藤田 益嗣 羽生田 恒永 梶浦 美咲
翔泳社
売り上げランキング: 72,949


毎月参加してるJava読書会で1月からちょうどこの本を読み始めたのですが、良い機会ということで参加しました。


Java EE 7徹底入門 概要説明 (猪瀬さん)
20160215 01 java ee7徹底入門 概要説明 from Jun Inose


表紙が白猫の理由や、てらだよしお退職事件などの裏話があり、本への親近感が湧きますね。
誤記が多い、とありますが、確かにJava読書会でも誤記たくさん見つけてます・・・
後日、フィードバックされるかも。
あと、弊社でもStruts1ベースの自社フレームワークを刷新するプロジェクトが絶賛進行中ですが、こーゆう日本語書籍で最新フレームワークを解説いただけるのはすごく有り難い。


プレゼンテーション層の開発 JSF (加藤田さん)
JavaEE7徹底入門 プレゼンテーション層の開発 JSF from Masuji Katoda

  • Java EEは、2年前は洋書の本しか無かったが、今回、翻訳でなく日本語で書いたとのこと。
  • JSFはコンポーネントを主軸にコードを作成するので、コンポーネント指向と言われる。
  • カスタムコンポーネントは、タグライブラリを独自に作る機能。フレームワーク作る人とかにしか関係ないので本では省いた。
  • イベントハンドリングでValue Change Eventsというのがあるが、実際はAjaxでチェックすることが多い。
  • ビーンバリデーションのグループ化機能は、複数の画面でバリデーションを微妙に変えたい場合に使う機能。
  • Java EEの思想として、「なるべくJavascriptを使わずに開発できるようにする」というのがある。
    • JSF2.3でWebsocket対応する。
  • MVC1.0はアクション指向フレームワーク(Strutsみたいな)。それに対し、JSFはサーブレットを基本としたコンポーネント指向。
    • MVC1.0はJAX-RSがベース。
  • 今後のプレゼンテーションの選択肢は、3パターン。
    • JSF
    • JAX-RS + クライアントサイドフレームワーク (AngularJS、React、Backbone.jsなど)
    • MVC1.0 + Web Component?
  • どのアーキを選択しても今後はコンポーネント指向に収束する。人間のイメージしやすい開発なのかな、と思う。
  • タグライブラリは最小限の機能しか提供していない。なのでJSF関連のコンポーネント系ライブラリを併用して使う。

ビジネスロジック層の開発 CDI,EJB (羽生田さん)
3.Java EE7 徹底入門 CDI&EJB from Tsunenaga Hanyuda

  • CDIとEJFは排他的ではない。組合せで解決するのが良いのかな、と思う。
  • EJBは昔、ディスられることが多かったが、この先も使ってもいい技術。本に、上手く使う設計ポイントを書いてる。
  • CDI
    • スコープ定義を使って、そのスコープで生きているものをどう使うかがポイント。
    • スコープ定義はコンテナで作られて消えていくまでのライフサイクルであり、5種類ある。
    • それぞれのライフサイクル、これだけ覚えておけばCDIは使える。
    • @ConversationScopedは、作る側が生き死にを決められる。
    • EJBと比較するとリソースメリットがありそう、という表現の、「ありそう」に行間がある。
    • CDIは層を繋ぐ。業務ロジック層だけでなく、プレゼンテーション層や永続化層など、かなり広く渡る。
    • CDIはよくも悪くもWeld(CDIのリファレンス実装)。
    • GlassFishと商用サーバでWeldのバージョンが異なるので、バージョンを抑えておかないと死ねる。
    • CDI.select()は良く使う。BeanManagerの取得元としてはあまり使わない。なぜなら、@injectで取れるので。
    • CDIの小ネタで、CDI.current().toString()とやると、"Weld"という文字列だけ返してくる・・バージョンくらい返してほしい。
    • CDIProviderは覚えなくても大丈夫。
  • まとめにある「密結合させる」というのは、「injectじゃなくてnewする」という意味。
  • @Conversationスコープ使おうとするなら、本当に必要なのか問うべき。


バッチアプリケーションの開発 jBatch (猪瀬さん)
20160215 04 java ee7徹底入門 jbatch from Jun Inose

  • jBatchはSpring Batchから多くのアーキテクチャを継承している。Spring Batchの方が高機能。
  • Javaでバッチを実行する4つの方法
    • 1と2の独自Javaバッチだと、Java EEの機能を使うときにライブラリが必要となるので、APサーバで動く他の部品との共有が難しい。
    • 3はバッチがHTTP経由になるので、HTTPリクエストタイムアウトの可能性がある。
  • ジョブ定義はXMLで書く。本ではあまり丁寧に書いてないが、XSDを指定するとエディタがXMLを補完してくれる。
  • 補助機能のコンテキストは2種類あり、プロパティを引数に渡せる。プロパティに設定を与えることができる。


★感想:
Java読書会でこの本を読み始めてまだ2回で、JSFしか触れてなかったので、このイベントでJava EE 7の全体間が分かって有意義でした。
著者さん直々に説明してくださるのは良いですね。

Struts1やSpring Bootは触ったことありますが、Java EEはほぼ初めてなので新鮮です。
Java標準ということもあり、Java EEの知識は他のフレームワークとの併用でも活かせるのではと期待してます。
(ビーンバリデーションとか)

関係者の皆様、ありがとーございました。
スポンサーサイト

FC2Ad