JJUG CCC 2016 Springに参加してきました。

JJUG CCC 2016 Spring】

人生二度目のJJUG CCC 2016 Springに参加してきました。

ブログに書くまでがJJUG CCC ということで
自分が見たセッションで考えたこと、思ったことを中心に
書きなぐってみました。

【Type Annotation for Static Program Analysis】

[登壇者様]:櫻庭 祐一さん(@skrb
[資料]:Type Annotation for Static Program Analysis

Java8から型使用/型宣言している箇所にアノテーションがつけられるようになったとのお話でした。

アノテーションを使っているかとの質問で使っている人が半数くらいと
Java EE系メインの私としては意外な結果だったなぁと。

Spring FrameworkなりJAX-RSを使う場合は必須とも言えるので、
個人的にはもっと多いかと思ったのですが、
JavaSE/MEだとそうでもないんだなという事を実感しましした。

型使用/型宣言部分でアノテーションが使えるようになったものの
標準APIとしてはType Annotationを使ったものはないとのこと。

セッションを聞きながら自分でも使い方を考えてみましたが、短い時間では思いつかず・・・
でも、考えれば良い使い方とか思いつきそうな気がします。

CHEKCER FRAMEWORKはコードの振る舞いまでチェックしてくれる。
Nullness CheckerはNullに対してチェックを行いコード上警告を出してくれる。
これは割と個人的にも試してみたいフレームワークだなぁと思いました。

櫻庭さんのIT Proの連載にはお世話になっているので、皆さんもぜひ見ましょう。はい。

【Thymeleaf3を使ってみよう】

[登壇者様]:椎葉 光行さん(@bufferings
[資料]:Welcome Thymeleaf 3.0! #jjug_ccc #ccc_f2 - Speaker Deck

220lのコーヒーがつぎ込まれたという期待のThymeleaf3についてのセッション。

ちょいちょい個人的にThymeleaf2を使っていますが、Thymeleaf2で知らないことがちらほらと。

  • Link Expressionでqueryパラメータも処理してくれる
  • class属性を追加したい場合はth:classappendを使う
  • th:removeのall-but-first
  • 数値はBigDecimalとして扱われる

Thymeleaf3の基本的な使い方としてはあまり変わったところはないとのこと。
内部のアーキテクチャが変わっているのでパフォーマンスが改善された。
ただ、独自でExpressionなどを作っている場合は注意が必要とのこと。

椎葉さんのTIPSの中で、

  • 静的なHTMLを崩さないようにたもつこと
  • HTML/JavaScriptは混ぜない

というのは個人的にもかなり参考になる内容だったなぁと。

デザイナと協業をしてth:replaceを使っている場合は
どうするんだろうなというのは個人的に気になっているところですね。
iframe/キャプチャ画像/何もしない あたりが選択肢かなぁと。
=> Twitterで椎葉さんに質問したところ、プレースホルダー(ダミー画像)を使うとのことでした。

Thymeleafを使う上では2でも3でも多くは違わない印象を受けたので、
今から使うのであれば、迷わずにThyemleaf3を使う方が良さそうですね。

【Jenkins2.0】

[登壇者様]:川口 耕介さん(@kohsukekawa

Jenkinsに様々な課題があり、
それをJenkins2.0ではどのようにして解決したのかというお話でした。

JenkinsがCIプラットフォームからCDプラットフォームになる
というのが個人的に感銘というか、なるほどと思うところでした。
また、ユーザに対して簡単かつ安全に使ってもらうというところが大きいのかなとも思いました。

パイプライン化によりプログラマティックにビルドが実行できるようになったので、
単純にCIだけではなく、CDを目指しているところという表れなのかなぁと。

インストール時にお勧めのプラグインを入れたものが用意される、
セキュリティーチームの発足、ドキュメントの整備など
バラバラに運用されていたJenkinsを標準化というほどフォーマルではないですが
統一する動きっぽいなぁという印象です。

バージョン2.0となっているがコアをゼロから作り直したわけではないので、
アップデートは今までと同じとのことでした。

個人的には2.0というのはJenkins自体がというよりは
Jenkinsの取り巻く体制が変わったので2.0担っているのかなという印象です。

【Introduction to JShell: The Java REPL Tool】

[登壇者様]:吉田 真也さん(@bitter_fox
[資料]:Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4

きつねさんは「18卒」覚えました。

プログラムを実行しながら確認できるREPLのJava版「JShell」についてのセッションでした。

標準のAPIを動かして試したいなと思うことは多々あり、
私は仕事で使っているIDE上でもサンプルプロジェクトのSampleクラスが作られていたりします。

そのため、「Sampleクラスなどでmainメソッドがありませんか?」という質問については
すいません。それ私ですという感じです。

JShellデモの動きを見ているとサクサクっとコードをかけそうなので、
簡単なプログラムを試すには快適そうだなぁという印象でした。

教育用という意味合いでも割と良さそうです。
Javaで最初にプログラムを動かそうとするとclassって何、パッケージって何?
という「おまじない」で説明するところから始まることが多いですね。

JShellを使えば、最初の一歩としてしてはそこを省くことができるので
教育という部分でも割と期待できるのではないかなぁと。

Spring Framework/Bootの最新情報とpivotalが進めるクラウドネイティブなアプローチ】

[登壇者様]:槙 俊明さん(@making
[資料]:#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pi…

Spring周りの最新情報とクラウドネイティブ環境や考え方についてのセッションでした。

Spring Bootはテストで各コードが少なくなるようなアップデートの紹介が多かったなぁという印象です。
趣味で書いているコードではSpring Bootで作っているので、リリースされたらアップデートしたいです。
Spring Securityとかでつまづいたので、その辺もスムーズにいくといいなぁと。

Spring Framework4.3もコードがすくなるアップデートの紹介がメインだったかなと。
Injection Pointはちょっと詳しく調べてみたいですね。

Spring Frmework5についてはReactiveとマイルストーンの説明。
ノンブロッキングという概念はわかるものの、
実際にWebサービスとして使うにはという部分は個人的にはまだイメージがわかないです。
マイルストーン上は「2017 Early」らしいということなので、こちらもリリースされたら試してみたいですね。

クラウドネイティブについては
「Speed and Safety」、「ビジネスを加速させていく、イノベーションを加速させていく」
というのが印象に残った言葉でした。

アプリケーション、プラットフォームでは
ボイラープレートをなくすための基盤(Spring Boot、Eurekaなど)が用意され、
Speed and Safetyを実現しているのかなぁと。

この辺はかなり勉強不足だなぁと感じたので今後勉強していきたいですね。

Seasar2で作った俺たちのサービスの今】

[登壇者様]:阪田 浩一さん(@jyukutyo
[資料]:Seasar2で作った俺たちのサービスの今

S2から卒業するための勇気をもらえるセッションでした。

理想論ではなく現実解として非常に良い移行方法と感じました。
登壇者の方はかっこいい方法でないという感じのことをおっしゃっていましたが、
サービスを停止させず、限られた工数の中で移行をしたというのは簡単にはできないことだと思います。

私の置かれている状況と非常に類似していたので、
メモをすることを忘れて頭の中で色々と考えながら拝聴させていただきました。

【古のJavaを使うということ】

[登壇者様]:ぜろゆ さん(@zer0_u
[資料]:古のJavaを使うということ / JJUC CCC 2016 Spring - Speaker Deck

古のJavaを使って製品を改善するための奮闘記(?)といった内容かなぁと。

制限された環境の中で製品をより良くする。
というのは5年くらいやってても難しい、
人によっては10年以上なのにそういうことができない人もいるので、
3年でこの考えに到達しているのは尊敬できるなぁと。

私は経験12年(今年30)なので、どちらかというと先輩となるような立場です。
その立場で「改善する気持ちを折る行為」、「トレンドを追いかけていない状況」というのはNGだなと感じました。
自分がそういう行動をしていないかちょっと心配です・・・

【Spring Boot + Kotlin 劇的ビフォーアフター

[登壇者様]:俺九番さん(@orekyuu
[資料]:SpringBoot+Kotlin 劇的ビフォーアフター - Speaker Deck

KotlinでSpring Boot使うときのコードの書き方というセッション。

サンプルではKotlin + Spring Bootでコントーラを動かすコードを
どのように書くかというのが説明されていて、DI/アノテーション周りがメインでした。

説明されたコードを見るとKotlin + Spring Bootの相性は悪くなさそうでした。
資料の中ではハマリどころも説明されていますが、
ちょっとした修正で対策できるようなので選択肢としてありかなと思います。

【まとめ】

個人的に刺激を受けるセッションばかりで非常に勉強になる1日となりまいた。
運営スタッフの方々、登壇者の方々、お疲れ様でした。

また次回も参加したいと思います。