3週間前になりますが参加したのでメモレベルですがアップしておきます。
(メモレベルなのでキーワードを拾ってもらって気になるものは各自調べていただければ。)
2016年1月23日当日、朝から少し用事があったため、13時を少しまわってオラクル西日本支社に到着。
日本オラクルの伊藤敬さん
・JCPでこれまで営利団体は年間$5,000だったが、無償化する方向に
・Java One 2015は日本人スピーカーは11名に増えた!
・DevOpsの話が多かった(7セッション(2014年)→100セッション以上(2015年))
KPIを定めて、開発を進めてから後で評価する、適切な工数を求める
自動化出来るフェーズはどんどん自働化
Continuous Integuration -> Testing -> Delivery
・Microservices Gilt.comの事例を紹介
12時が処理のピークとなる
技術はScala、JSON等新しい技術を使用
ピークに合わせてインスタンスを増やすようにする
→AWSに乗せる
→まずは現存のシステムをそのまま乗せる
→次に大きなサービスグループに分ける
・JavaEE8 について
EDR(early draft)のレビュー中
HTML5/WebTigerの機能拡張
開発をより容易に / CDIのさらなる活用
クラウドの実行環境
・JSON Binding
→JSONデータとJavaのエンティティをバインドする
→もとにしようしているのはJackson
→バインダのプロバイダを選択できるようにするつもり
・JSON-P 1.1
- Pointer:JSONの中の一部のデータを書き換える
- Patch :パッチ当て(一部データの削除など)
・MVC 1.0
Model(CD,Bean Validation)
View (JSP,Facelets)
Controller (JAX-RS controller)
・HTTP2
Sevlet4.0より導入
1つのTCPを多重化し、リクエストは Stream と呼ばれるデータ単位
バイナリフレームレイヤ
Servlet Push、ヘッダ圧縮
・JMSのメッセージ処理を簡素化
・JavaOne2016は9月開催予定
櫻庭さん
4名の有名な方のお話を順番に紹介。
Mark Reinhold
JavaSEのスペックリード
Project JIGSAW がJavaSE9に!(JavaSE6の頃から言われていた)
これまでの問題点をJIGSAWで解決する
・classpath の問題
例えば、HadoopのJARは110個にも及ぶ。。コンパイルや実行時に1つ1つ指定する煩わしさ。
→これを解決するのが「Module」(JARのサブクラスみたいなもの)
Module extends JAR {
dependency,
exportation,
version
}
コンパイル
javac -mp mods -d ・・・
モジュール作成
jar --create --file ・・ --module-version 1.0 -C ・・・
実行
java -mp mods -m モジュール名/クラス名
・Huge Standard Lib
JavaSE8 Compact Profile
JavaSE9 Moduleで扱われるようにある
Rovert Field
PROJECT CLLA →jshell というJavaのシェルみたいなものが使えるようになる
Michlele
HTTP Client
HTTP/2
じゅくちょーさん (id:jyukutyo)
GC Tuning
GCでメモリリークがなくなるわけではない
スループット、フットプリント、Latency →どれか2つしか無理(全部は無理)
ヒープサイズが大きくなってきたので、FullGCが怖い
スループットの向上には、並列化など・・・
Young領域のGCアルゴリズムはどれも似ているとのこと
コンパクション:断片化したヒープを固めて割当ができるようになる
・Serial Collector =シングルスレッド
・Throughput Collector=マルチスレッドでGC
・CMS Collector=マルチスレッド+old領域はアプリ実行と平行=StopTheWorldが起きない
→時々そうならないときもある
・フルGCはどう起きる?
→プロモーションの失敗。young->oldへの移動ができないとき
・The G1 Collector=2048個のリージョンに別れる
The Garbage First Collector
→Innitialize・・の設定を最初に設定しすぎると失敗する
→始めはデフォルトにしておいたほうがいい
・Azul C4 Collector (商用JVM)
・Shenandoah (しぇなんど)
copy gc のパフォーマンスアップ
その他に、じゅくちょーさんからプレゼンについて面白い話が聞けました。
「ポスチャ」:プレゼン中の振る舞い(姿勢や表情)のことで、ディスプレイを見たまま話したり、
ここで櫻庭さんから補足。
GCはスループットを狙うか、反応速度を狙うかのどちらかになる。
・CMS:スループット型
・G1GC:スループットと反応速度の両方をよくするバランス型
ゴールドマン・サックスの伊藤博志さん
Eclipse Collections 最新アップデートについて、
ゴールドマン・サックスでJava?と初めは思いましたが、お話によると4万人中1万人がエンジニアで、Javaのエンジニアが約4000人ほどを占めているらしい。
JCPのExecutive Committee
GS Collections → Eclipse Collections
Smalltalkに影響を受けたコレクションフレームワーク
2004年から始まり、2012年にGitHubに公開 (Apache2.0 License)
・GS Collections Kata
→同じようなことを繰り返すことで身につけることが目的
Eclipse財団へ移管
→2015年11月:正式プロジェクトとして承認
→2016年1月20日:成果物の承認がおり公式リリース
Eclipse Collections7.0はJDK5から互換性あり
Eclipse Collectionのいいところ
・より簡潔に書ける
・より多くのケースでメソッド参照を活用できる
・より高い可読性で記述できる
・より簡潔にExceptionの対処が記述できる。
ロードマップ
Eclipse Collections 7.1 - 2016 Q1
→JDK5以降で使用可能
Eclipse Collections 8.0 - 2016 Q2/Q3
Java8の関数IFとの互換性を確保
Java8のOptional型を返すAPI(detect,max,min …)
独自のStream実装によるstream()のパフォーマンス改善
Defaultメソッド活用によるコード量削減
上記変更によりJava8以前の互換性は撤廃 →JDK8以降しか使えなくなる
細かいことは下記リンクのスライドを参照。
http://kanjava.connpass.com/event/24474/presentation/
おまけ
じゃんけん大会に勝って、商品ゲットしました(*´ω`*)