JavaOne 2015 San Franciscoフィードバック、そしてJava EE 8についてのアップデート
- JavaOne 2015は1万人超
- Sunの頃よりはまだ少ないけど、近づいてきている。
- IoTの活用が強めに話された。
- 2016のJavaOneでは、さらに事例がふえると予想。
- Java8が出た後で増えてきている。
- JCPへの参画拡大。営利団体でも無償化。
- キーワードはIoT, DevOps, microservice
- IoT
- DevOps
- Microservices
- JavaEE8アップデート
- 最初のドラフトのレビュー中やレビュー完了の状態。
- クラウド絡みのものは遅れ気味。
- 7,8団体がレビューしている。
- early draftの策定中であれば、まだ意見が通りやすい。後ろになれば通りづらい。
- HTML5 / Web Tier
- JSON-BはJacksonがメインで考えられている。
- プロバイダの変更も可能。XML
- JSON-PにJSON-Pointerが追加される。
- "/0/phones/mobile"とかで特定のデータを取得・更新できる。
- JSON-Patchでは、JSON形式で変更出来る。
- MVC1.0が策定中。
- 既存のJavaEEテクノロジーを組み合わせて実現。
- JAX-RSとCDIとJSPとか。
- HTTP/2
- Server pushがServlet4.0の中に入ってくる。
- CDIの範囲がMVC / JAX-RS / JavaSEに広がる。
- 2つのパーツに分けられる。Full CDIとCDI Light。
- Junit内でインジェクションが、標準で出来るようになる。
- Adopt a JSR https://glassfish.java.net/adoptajsr/
- まずは見るだけでも。
- JavaOne 2016に行こう。
Project Jigsawではじめるモジュール
http://www.slideshare.net/skrb/module-programming-with-project-jigsaw
- 使い方を中心に。
- Client Side Javaを中心にやってる。Java SE, JavaFX。
- Huge Standard Lib
- Hadoopは130のjarを読みこんだり。
- JARが抜けてたり、依存関係のバージョンがズレてたり。
- No Dependency, No Version, Public is TOO Public
- 始まりは2005年。friendsを入れよう、という話が出た。
- JSR 277は炎上中断、JSR 294はmoduleとして続く。
- 2009年にProject Jigsawが始まったけど、2017のJava SE9に入る。
- スコープの問題(OSGiをどうする?とか)で混沌とし、スコープをかなり狭めてSE9に入れる。
- SE9で入る、ということが重要。
- module extends JAR { dependency; exportation; version; }
- module-info.javaに書く。src直下に置く。
- module (モジュール名=パッケージ名にすることが多い) {}
- requires javafx.controls;とかで依存関係を明示する。
- exports (パッケージ名);で外部に公開する。
- mainメソッド持ってるクラスはexportsに入るようにする必要がある。
- requires public javafx.graphics;とやると、第三者にもpublicになる。
- gradleはJigsaw対応を進めている。
- コンパイル時には"-mp"を付ける。
- モジュール作るときは"--create"が必要。"--module-version"でバージョンを指定できる。以上・以下は比較出来ない。
- 実行時にも"java -mp"とかする。
- rt.jarを全部読み込む必要が無いので、メモリに優しい。ちょっとだけ。
- classpathに指定すると、unnamed moduleとして扱われる。
- JavaSE8から、rt.jarを分けれる。循環参照とかをきれいにした。
- module-info.javaに書かなくても、jdepsというツールで確認できる。
- JLINKというカスタムJREを作れる。IoTとかでメモリの使用量を減らせる。
- https://jdk9.java.net/jigsaw/ に既にあるので、すぐ使える。
Microsoft Java
- AzureはLinuxでもdockerでも立てれる。
- MicrosoftはJavaVMのパフォーマンス改善とかにも参加してる。
- Azure上でのホスティングの選択肢
- IaaS
- Cloud Services(PaaS)
- App Services(PaaS)
- Container
- マイクロソフトはFeedBackを、本気で求めている。
Ruby 2.3 のてざわり
- Java to rubyでIDEを使わなくなった。REPLで試しながら書くようになった。
- self navigation operator=ぼっち演算子。
- SQUIGGLY HEREDOCはインデントを取り除ける。
- digはJSONとかで便利
- Enumerable#grep_vはgrepの否定。正規表現マッチしないものを取得できる。
- the did_you_mean gemはirbとかrails consoleで便利。
- NameError#receiverはdid_you_meanで使われている。デバッグのときにも使えそう。
- Hash#to_procは使いどころが思いつかない。。。
わたしの Ruby の楽しみ方
- rackアプリケーションでTwitterのOmniAuth使ったアプリが100行レベルで書ける。