みけです。
2013/05/11行われたJJUG CCC 2013 Springに午後から行って来ました。
なんか午前の基本講演のJim Weaverさんと
JavaFX Advent Calendar2012をやった人達で
ランチに行ってきたそうです。
午前に行けなくて残念…
以下、僕が参加したセッションのまとめ
H-1 Java EE 6 から Java EE 7 に向かって
王子こと寺田さんのセッション。
まあ、大体聞いたことのある話でした(失礼!)。
- JavaEE7に向けてJavaEE6も勉強して下さい。
- JavaEE6はJavaEE5以前に比べてかなり軽量化されています。
- JavaEE6からはテストも非常に容易になっています。
といった感じです。
その他、JavaEE7に追加される機能の一部の概要の説明がありました。
結論
- JavaEE7はおもろいので、ぜひやろうぜ
- JavaEE6やってない人はJavaEE6からどうぞ
- 資料公開してくれるはず、はず、はず
H-2 H-2 Project Lambda Essential
桜庭さんのProject Lambdaに関するセッション。
まあ、ラムダは大体わかっているし、あれでしたが、
Streamに関する話は面白かったです。
Streamとは?
終端の定義されていないCollectionのことだそうです。
次のようなクラスが定義されています。
- Object用
java.util.stream.Stream<T>
- int用
java.util.stream.IntStream
- long用
java.util.stream.LongStream
- double用
java.util.stream.DoubleStream
メソッドとか
メソッドとかの例を上げてみます。
ちなみに、昔(今)どうやっているかも一緒に書きます。
filter
1 2 3 |
|
昔のやり方
1 2 3 4 5 6 7 8 9 10 |
|
map
1 2 3 |
|
ちなみに昔のやり方
1 2 3 4 5 6 7 8 |
|
reduce
1 2 3 |
|
ちなみに昔のやり方
1 2 3 4 5 6 7 8 |
|
対応
- filter –> if文
- map –> getter
- reduce –> 副作用プログラミング
Project Lambdaに関して
lambdaを使用しているのにHoge$A.classみたいなものができない
lambda式が表しているクラスは動的に評価されてinvoke dynamicで実行される
mapとreduceを実行しているのに、ループが一回しかまわらない
map/reduce式は遅延して実行される
まとめ
- Project LambdaとかStreamは記法がかなり変わるので、使用禁止と言われないように勉強しろ(とくにプロジェクトの
エロイエライ人)
R5-3 Type Annotation って何? それを使うとプログラムはどう変わる?
Type Annotationに関するセッション
比較
- これまでのアノテーション(AnnotationType)は宣言をするアノテーション
- TypeAnnotationは型、参照の利用に関する説明のアノテーション
例
1 2 3 4 5 |
|
ここでなんとかServiceとか書いていますが、テキトーなので突っ込まないで下さい。
記述位置で意味が異なる
1 2 3 4 5 6 7 8 |
|
使えない場所
- クラスリテラル
- import文
- staticメンバー
簡単な例
@NonNull
@NotEmpty
@Interned
@ReadOnly
@Critical
残念なこと
- 書けるけど、意味は無い…
- JavaSE8で事前定義された型アノテーションは(今のところ)ない
- Java SE8でも入らないし、Java SE9でも入らないかもしれない
- 単純に実装者が気をつけろよレベル
まとめ
うむ、なんかちょっと残念。
H-4 失敗から学ぶAPI設計
イケメンことゆーすけさんのセッション
Twitter4Jのプロモーションとか、たくさん使ってもらうためにしたことなどを発表
たくさん使ってもらうためのプロモーション的な
- 汚いことでもなんでもする
- 手厚いサポートをする。ggrksとかしない
たくさん使ってもらうための技術的な
- インターフェースを使わないでクラスを使う
- あまりパッケージを増やさない
- 名前はよく考える
- デザパタとかも使わせない
- 継承させない
- 本当に使ってほしくないクラスは異様な名前にする
あとは、資料が公表されているので、そちらを参照。
R5-5 [BOF] Java読書会ライブ
実は昔デブサミのLT大会でLTを聞いてから興味を持っていたので、聞いてみたかったセッション
実際に音読をしているし、途中で議論をやっていて面白そうでした。
今はJUnit実践入門を読んでいるそうです。
概要
- 月一回土曜日に開催
- まず自己紹介と近況の報告をする
- 書記を選出する
- 書記は議論のポイントなどをまとめてサイトに掲載する
- 午前10:00くらいから昼間でと午後5時まで続ける
- その後は有志で飲みに行く
まあ、普通の勉強会ですね。
質疑応答
読む本はどうやって決定しているか?
- 投票によって決定しているそうです。
- なお、投票は普通の参加者は1票、書記は2票を入れることができるそうです。
どれくらいのスピードで読んでいるのか
- 毎回約60ページ程度読んでいます。
予習とか必要か?
- してないけど、してくる人もいる
コードの実行をしたりするのか?
- パソコン持ってきていてやってくれる人もいる
どんな本が読書会に向いているか
- 入門本よりはすこし難しめな本で、どうしても積ん読になってしまうようなもののほうが適している
- いろんなコンテキストを持っている人が参加するので、それが勉強になる
まとめ
面白そうなので、一回参加してみたいと思いました。
参考リンク : Java読書会BOFのページ
R2-6 [BOF] 地方における勉強会事情
沖縄、大都会岡山、札幌+急遽大阪のコミュニティ・勉強会の主催者によるパネルディスカッション
東京の勉強会との違いがわかる一方で、
Javaの勉強会が抱えている問題と共通するものがあるなーという感じがしました。
詳しくはtogetterにまとめられていますので、
そちらを参照して下さい。
JJUG CCC 2013 Spring R2-6 [BOF] 地方における勉強会事情
2013/05/12 19:54 追記
地方の勉強会で初参加する人は
勉強会に参加してきたというブログを読んで
いけそうだなと思って参加するらしいです。
したがって、勉強会の活性化をしたいなら
- とにかくブログを書け
- 勉強会はブログを書くまでが勉強会です
JJUG CCC 2013 Spring 懇親会
一応参加して来ました。
そしてなぜかLTさせられることになったので、
グダグダなやつをやってきました。
参考 : ゆとりさんが鮨を奢ってくれるそうなので、感謝の気持を込めて、たくさんのプロセスに「sushi」と言わせてみた
まとめ
Java楽しいですね。
僕はもう人間的にかなり不活性ですが、
Java自体は活性化して貰いたいので、
なんか継続できる勉強会でもやりたいなと思います。