シスアーキ in はてな

シスアーキ(自称)の技術ブログ

JJUG CCC 2016 Springに行ってきたよん!(*'▽'*) #jjug_ccc

JJUG CCC 2016 Spring に行ってきましたよ!
JJUG CCC 2016 Spring | 日本Javaユーザーグループ

朝から気合い十分、睡眠もばっちりとれて体調万全で望みました!戦いは始まる前から始まっているのです。

CCCのタイムテーブルはこちら

僕は

  • F-2 Thymeleaf 3 を使ってみよう!
  • F-3 Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA
  • CD-4 ネクストStruts/Seasar2としてのJava EEアクションベースMVC入門 – MVC 1.0、Jersey MVC、RESTEasy HTML –
  • GH-5 Spring Framework/Bootの最新情報とPivotalが進めるクラウドネイティブなアプローチ
  • E-6 大規模映像配信サービスのJava8による全面リニューアルの裏側
  • CD-7 マイクロフレームワーク enkan(とkotowari)ではじめるREPL駆動開発

のセッションを受講しました。

なお、セッション一覧はこちらで纏めてくださっています。

JJUG CCC 2016 Spring ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く

F-2 Thymeleaf 3 を使ってみよう!by 椎葉 光行

関西勢、@bufferings さんのThymeleafの発表です。すてきなTシャツを着て発表されていました。娘さんチョイスだそうです!
Thymeleafはプログラマとデザイナさんの共同作業を円滑に進めるモチベーションで作成されたテンプレートエンジンらしいです。Natural Templatesの機能は便利ですね。デザイナさんのみならず、外部設計時のお客さんとの打合せでもそのまま使えそうです。注意点としては、Natural Templatesの表示が正しく動作するかどうかをこまめにチェックしないと、すぐにプログラマが表示を壊してしまうとのこと(ありそう)。全体的によく纏まっており、これからThymeleafを始める方は目を通したほうがいいと思います。

お昼

お昼休憩です!今半で美味しいお肉食べてきました!
久しぶりにいい肉を食べた気がしますww

F-3 Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 by 倉元 貴一(株式会社エヌ・ティ・ティ・データ)

NTTデータさんが提供する「TERASOLUNA Server Framework for Java 5(以下、TERA5)」の紹介です。こちらのサイトで内容をみれますが、PDFにして2000ページ以上のボリュームです。日本語資料としては最大のSpringドキュメントでしょう。僕はその存在を以前に槙さんから教わって知っていましたが、改めて凄いです。この資料の内容は様々な環境で動作確認されており、そこで発見した不具合はOSSにフィードバックされているとのこと。全てに目を通すのは時間がかかりますが、気になった部分だけでも参考にできる良資料です。今後、多いに活用させて頂きたいと思います。

CD-4 ネクストStruts/Seasar2としてのJava EEアクションベースMVC入門 – MVC 1.0、Jersey MVC、RESTEasy HTML –

JavaEEにはコンポーネントベースMVCJSF、RESTを実現するJAX-RSがありますが、MVC1.0はJAX-RSを拡張したアクションベースのMVC仕様です。Viewからのリクエストをコントローラーが処理して、Viewを返す。従来のStrutsやSeaser2でのWeb開発に慣れた方にはおなじみのパターンですね。全体的によく纏まった資料でした。JAX-RSに慣れた方がアクションベースのMVCをやりたい場合はこちらで実現するのがオススメです。ここでもThymeleafをテンプレートエンジンに用いていました。いいですね、Thymeleaf!

GH-5 Spring Framework/Bootの最新情報とPivotalが進めるクラウドネイティブなアプローチ by 槙 俊明 (Pivotalジャパン株式会社)

今回のCCCでは、業務理由からSpring関連の話を収集しにきました。もちろん、このセッションを受講。流石の槙さんの発表、面白かったです。Spring Bootは様々なSpring素材をもとに仕上げた出来合のケーキとのこと。分かりやすい説明ですね。その後に続く謎のBunner押しwww。でも、Bunnerいいですね。僕も仕事でBoot使う時は真っ先に作ろう、仕事はテンションが大事です。
印象に残ったのは、コンストラクタインジェクションでAutowiredの指定が省略できるようになったとのこと。これにより、フィールドインジェクション vs コンストラクタインジェクションの戦いは槙さんの中ではコンストラクタの勝利となった模様です。Kotlin Bootする際も、フィールドインジェクションだとvarで宣言したりopenやlateinitつけたりと面倒だったので、僕もコンストラクタインジェクション派になりそうです。他にも、RequestMappingアノーテーションにGetやPostなどの専用のアノーテーションが出来たり、スコープのアノーテーションが分かりやすい記述になったりと、なにげに便利な機能が追加されたみたいです。

E-6 大規模映像配信サービスのJava8による全面リニューアルの裏側 by 秋穂 賢(株式会社U-NEXT)

大規模とJava8というキーワードにつられてこのセッションへ。内容としては、DBFluteの話がほとんどでした。DBFluteを選択した理由は、メインコミッタのjfluteさんのサポートが厚かったとのこと。使用技術に詳しい人が近くにいるのは確かに心強いですね。jfluteさん、24時間戦えるそうです。すごい!!
気になった点としは、ERMasterを使ってER図を管理していたこと。ERMaster、使いやすくて僕も好きなのですが、テーブル数が多くなると性能劣化が激しくて使い物にならなかった記憶があります*1。そこらへんどうしているのかな?と思っていたら、jfluteさんにメンション頂けました。

いいな、これ。僕も使おうかな?
GitHub - naoki-iwami/ermaster-b: ERMaster にダイアグラムの概念を追加して、大量のテーブルをグルーピングして扱えるようにしたものです。

ERD駆動で自動生成を駆使するところは、僕の仕事のやり方とも似ていて共感できました。

CD-7 マイクロフレームワーク enkan(とkotowari)ではじめるREPL駆動開発 by 川島 義隆

尊敬するアーキテクトの川島さんの発表です!REPL駆動開発がどんなものなのか聞きにきました。川島さん、当日は熱があったみたいでかなり辛そうでした。。
enkanのコンセプトとしては、

  • Expilicitness 明示的であること
  • Ease of development 開発がしやすいこと
  • Ease of operation 保守運用が簡単であること

であるとのこと。確かに最近のシステムは色んな技術が混じり合っていたり、宣言より規約により規約が分からないとソースコードとのつながりが分からなかったりと大変さを感じることがあります。

セッション中にこちらからデモを動かして、実際のenkanを少し体験できました。楽しかったです!
https://enkan.github.io/

懇親会

懇親会ではたくさんの人とコミュニケーション出来て楽しかったです。
なぜか利き酒 をすることになったり。普段はビールばっかり飲んでいるのにww

懇親会では槙さんとSpringSecurityのお話が出来たのがラッキーでした。JWTの疑問点やSpringSecurityの苦労話を聞いてもらえて嬉しかったです!
サンプルコードも紹介して貰えたので、参考にさせて頂きます!
GitHub - making/oauth2-sso-demo: Simple OAuth2 SSO Demo with Spring Boot + Spring Security OAuth2

その後に二次会にもいきました。もう最高


最後に

*1:なので、今はA5ERを使っています