エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

JJUG CCC 2015 Fallに言った感想

JJUG CCC 2015 Fall に行ってきました。
ブログ書くようになったので、まとめと感想。
やりたいことが見つけられたので有意義でした。

受講セッション一覧

  • 基調講演1 : Javaは守りに入らない、これが今のJava
  • 苦手克服!例外スタックトレースから読み解くバグ
  • Java8移行から始めた技術的負債との戦い
  • Reactive Webアプリケーション そしてSpring 5へ
  • クラウドネイティブアプリケーションとSpring Framework
  • これからのコンピューティングの変化とJava
  • Garbage First Garbage Collector (G1 GC)
  • てらだよしおの赤裸々タイム

受講内容詳細

基調講演1 : Javaは守りに入らない、これが今のJava

谷本さんによる、今回のセッションの内容紹介とこれからのJava動向、谷本さんが取り組んでいることの紹介でした。
折角見るセッション決めてきたのに、ここで迷う羽目になるとは。。。
最近、谷本さんのtwitter見てると妙にGo言語のつぶやき多いなぁ~と思ったら、Java以外の言語取得に取り組んでいた理由を聞けた。
どうやらJavaの進化が鈍化するのではないかと危機感を覚えたみたいですね。
Javaエンジニアではありますが、自分もJavaしかできないことに危機感を覚えました。
そして、今はPythonの習得に向けて動き出したのですが、それとオーバーラップして非常に共感しました。
Java好きの人には申し訳ないですが、谷本さんの言っていることにも理はあるので、浮気とか言わずに認めて欲しいところではある。
できれば多言語との共存も視野に入れて言語拡張していただけると、嬉しいなぁ~と思いました。
ちなみに、タイトルはSeaserのあの人に影響を受けたのかなぁ~と思いました。
その後の基調講演2はJavaEEの話で、どうも興味がわかなかったので、抜けました。
JavaEEの話を聞くと、Springに比べて魅力が少ないんですよね。。。

苦手克服!例外スタックトレースから読み解くバグ

山本さんのセッションで、例外と開発したログ解析ツール:侍の宣伝でした。
例外とエラーの違い、スタックトレースの読み方の解説でした。
どれも知っていることだったので、若干眠くなりました。。。
ただ、侍を使ったログ解析は面白かった。
あまりログはみたことなかったので、非常に参考になった。
侍の開発に貢献してくれる開発者を求めているようでした。
山本さん自身がやり手のエンジニアなので、リクエストプルしてみてレビューしてもらうのはすごく面白いなぁ~と思いました。

Java8移行から始めた技術的負債との戦い

Java6⇒Java8の移行話でした。
自分の現場もJava6で早くJava8に移行したくて聞きました。
笑っちゃうだろ、まだ、Struts1使ってるんだぜ。。。。
O/Rマッパーもなく、SQLはString文字列を生成して作っている。Javaのコードの中でSQLが出てくるから可読性最悪。 O/Rマッパー入れるべきと提言したんだけど、全然話が進まない。。。
権力の偉大さを感じた。
話しそれました。
セッションの内容ですが、移行するきっかけは、権力者の一言だったそうです。権力者、偉大!
権力者は技術面で無能であることが多く、嫌いですが、こういう時は権力者をありがたく思う。
やはり移行はいろいろ問題があったそうです。
移行するにあたって、Java7を飛ばしたことにより、顕在化していた問題が一気に押し寄せ、対処が面倒になったと言っていました。
コマ目なバージョンアップをして、問題を少しづつ解決するのが一番効率がいいみたいです。遠回りは近道とは、よくいったものです。
こういう話を聞くと、説得させるための理由が増えるからいいですよね。
あとはLombok*1を紹介していました。
知っていたので、興味が湧きませんでしたが、使ってみてのメリデメを聞けたのが収穫でした。
可読性は上がるけど、検索性・追跡が困難になるので、どちらが得か考える必要があるとのことでした。
デメリットを差し押さえても、可読性の向上の方が重要だったので、入れて良かったとのこと。
自分も実際使ってみて、Lombokのメリットは重々承知していました。
IDEで自動生成すりゃいいんじゃない?とか言うやついるけど、単純Getter/Setterが及ぼす害悪を理解してないと思う。
単純Getter/Setterは悪だと思うんだよね。IEJSPの次ぐらいにあっちゃいけない存在だと思う。
技術的な収穫はなかったけど、権力者を説得する戦術の幅が広がったセッションでした。

Reactive Webアプリケーション そしてSpring 5へ

槙さんのReactive開発のセッションでした。
スライドが170Pあるから急ぐみたいな話だったが、結構話し脱線したりしてました。
Spring好きなんだなぁ~ってのは伝わってきました。
Reactiveの誕生背景から現状の取り組みとSpringでどう対処しているか聞けました。
ノンブロッキングコードと疎結合で作る重要性を学べた気がします。
あとは、それを実践して身に付けたいと思いました。そういった意味でも早くSpringいじりてぇ!!と感じました。 いまの現場には不満しかないので、希望を持てたいいセッションでした。
早めにノンブロッキングコーディングの方法はキャッチアップしたいです。

クラウドネイティブアプリケーションとSpring Framework

う~ん。。。。なんか求めていたものと違った。
Spring使ってこんなことしてますがメインだった。
タイトルに釣られた感が否めない。。。
部屋出たかったけど、扉閉められると出にくい。
スライド見難くなるので、いつも最前列付近にいるのだが、それも相まって出にくい。
「人様に迷惑かけるんじゃありません」って教育を受けてきた自分が恨めしい。やはり日本人だなと思った。

これからのコンピューティングの変化とJava

きしださんのCPU関連とJavaの動向についてのセッションでした。
なんというか、きしださんらしくないセッションだなぁ~と思いました。
だって、スライドまともに作ってきているんだもの。
なにをいっているか分からないとは思うが、スライドがまともなのは、きしださんらしくないと思いました。
いつもスライドの半分は手書きなのに、きっちり作ってくるんだもの。。。
期待を裏切られた気分です。。。
ただ、例年通り話は至ってまともで、「CPUの性能向上に限界が見えてきて、ムーアの法則が適用できなくなり始めた。だから金で解決も難しくなるので、きちんと並列処理できるように開発しましょう」って話だった。
ハード周りは疎いが、並列処理の重要性は理解しているので、すんなり内容は入ってきました。
Reactive開発に通じるところがあったので、慎さんの話と一緒に聞けたのはラッキーでした。
ただ、聞いただけだと「ふ~ん」で終わりそうなので、ちゃんと実践していこうとは思います。

Garbage First Garbage Collector (G1 GC)

久保田さんのたこ焼き器*2(GC)周りのセッションでした。 JDK9からG1GCがデフォルトになるので、リリースされる前には絶対内容をキャッチアップしときたい内容です。 GCは、恥ずかしながら全然理解しておらず、去年のJavaDayTokyo終わった当たりから興味を持ち始めた次第です。
内容はオライリーJavaパフォーマンスの内容を読んでいたので、結構すんなり入りました。
ヒープ領域の図解が素晴らしかった。言葉で知ってはいますが、図入りでどう動くか説明されると理解度が増します。
GC周りは解説できる人がかなり限られるので、非常に参考になりました。 各リージョンのスキャンは、リージョンではなく、それにひもづいたフラグ(ダーティカード)で管理されていることなど、知らなかった知識を得ることが出来なかったので、非常に有意義でした。
久保田さんもいっていましたが、これもReactive開発と同じく、実際にログを見るなど実践することが重要だと思いました。
早速、月曜の朝は、稼働しているアプリのGCログを解析しようと思います。 最終的なパフォーマンスチューニングは、何も指定せずに使うのがベストに行き着きました。 但し、ログは解析して現状は常に把握し、値を変えるか判断する機会を持つ必要があるということでした。
あと、G1GCはヒープを上手く使うための方法なので、リージョンの領域を増やす場合はヒープ領域も増やす必要が有ることも注意喚起していました。

Javaパフォーマンスのリンク貼っときます。自分には1円も入ってこないので、気になった人は気にせずここから買っちゃってください。

Javaパフォーマンス

Javaパフォーマンス

てらだよしおの赤裸々タイム

Javaエバンジェリストで、元オラクルの寺田さんがマイクロソフトに移った裏事情についての話。 う~ん。。。思っていたより面白くなかった。。。 ただ、必要とされているのはフルスタックエンジニアより一芸特化のエンジニアで、それをいろんな分野から集めて組織を作りたいみたいな話は好き。
一芸特化の非才が万能の天才を倒す話は、魅力を感じる。
アイシールド21が結構そういう系の話で好きでした。
神龍寺ナーガ戦以降はつまらなくなったけど、十分楽しめた。世界編は酷かったけど。
ジャンプ編集部の無能さを感じる作品でもある。

話戻します。
世間はフルスタックフルスタックっていうけど、フルスタックエンジニアってそうそういるもんじゃないと思うんだよね。
フルスタックエンジニアは希少で、マンション変えるくらいのお値段かかりますよ?
絵に書いた餅を欲しがるのは分かるけど、現実をちゃんと見て欲しいなぁとは心の中で思っている。
とはいえ、目指したい気持ちもあるけどね。
「Forbidden API CheckerでJavaコードチェック」の方に行きたかったけど、悲しいことに日本人感情でぬけ出すことが出来なかった。

総括

尊敬する山本さん、久保田さんの話が聞けたのは大きい。また、福岡に戻られ、めっきり見なくなってしまった、きしださんの話を聞けたので、満足でした。
もうちょいセッション選びを慎重にするのと、図々しい神経が欲しいと思いました。
G1GCのログ解析とReactive開発は実践します。聞くだけだと身にならないので。
セッション選びは企業名出さない人を選ぶと良いのではないか?と感じました。 大抵、企業名出してくる人は、最初の自己紹介で企業の説明が長いんですよ。。。
加えて、個人の感情が前に出にくいので、話が陳腐な感じになりやすいと感じました。

やることリスト

  • GCログの解析
  • Reactiveプログラミング
  • 見たかったけど、見れなかったセッションの資料あさり

*1:自明だが省略できないお決まりのコード断片を、見やすく簡潔なものにすることができる。.NETのプロパティみたいな感じでJavaのフィールドにアクセスできるので、冗長な記述をする開発者のストレスを開放してくれます。

*2:基調講演で谷本さんがG1GCのことをたこ焼き器と例えた