makopi23のブログ

makopi23が日々の生活で感じたことを気ままに綴るブログです。

「JJUG Night Seminar ~ Java エンジニアのためのJava(再)入門 ~」に参加しました

2013/6/20(木) 「JJUG Night Seminar ~ Java エンジニアのためのJava(再)入門 ~」に参加してきました。

こくちーず
http://kokucheese.com/event/index/96069/

Togetter
http://togetter.com/li/521481

場所は日本オラクルです。
参加者は100名以上だったようで超満席でした。Javaの人気も捨てたモンじゃない!

ちなみに5月にJJUGの大きなイベントがありまして、そちらにも参加してきました。
そんとき書いたブログはこちら。


今回のテーマも「Java再入門」とあり大変興味深く、参加することにしたのです。

日本オラクルに到着すると、この日の1F受付はOracleのJavaエバンジェリスト・寺田さんでした。
・・・受付からして豪勢であった。

以下、個人メモ。


■ 「JUnitを使ったJavaのテスト入門」(19:00~19:50)
by 久保智氏
Junitを使ったjavaのテスト入門 from Satoshi Kubo


■JJUGの幹事をやっているとのこと。

■System.out.printlnでデバッグプリントする問題点
 → 記録・録画ができない。もう一度テストしたいとき、もう一回操作しないといけない。

■テストした内容を記録・再生するためにJUnitを使う。

■assertEqualsかassertThatか?
 → JUnit4使うなら、やっぱassertThatじゃね?

■7月に楽天でTDDBCがあるらしい。

■privateメソッドをテストするか?
・privateメソッドのテストについては何度も議論になってきた。
・この辺のサイトがツイートされていた。

 ①プライベートメソッドのユニットテストは書かないもの?
  http://qa.atmarkit.co.jp/q/2784

 ②privateメソッドのテストについて(Togetter)
  http://togetter.com/li/361483

・リフレクションを使えばテストできるが、メソッド名が変わればテストがコケる。
・privateメソッドをテストしたいようなら、privateメソッドが責務が持ちすぎ。


■ 「from old Java to modern Java ~職業プログラマに聞いて欲しいJava再入門」(20:00~21:00)
by 谷本心氏
from old Java to modern Java from Shin Tanimoto


■日経ソフトウェアの記事執筆
・7月号の特集記事が、今日の発表ネタ
・ちなみにmakopi23は、日経ソフトウェア、日経コンピュータ、日経Systemsの3誌を定期購読してます。

■定数クラス
・J2SE 5.0から導入されたstatic importを使えば、定数クラス名を省略して記載できる。
・(会社のコードは古い方法で定数クラスを使ってるなぁ。static importを検討しよう。。。) by makopi23
・(JUnitを使う人は、static importはけっこー使いますねー) by makopi23

■OutOfMemoryError のハンドリング
・Java SE 6からOutOfMemoryErrorの発生箇所がスタックトレースで明示されるようになった(らしい)
・この辺のサイトが参考になりそう。

 Java SE 6 じゃじゃ馬ならし Heap
 http://www.javainthebox.net/laboratory/JavaSE6/heap/heap.html

■Java SE 7のNIO2
・Fileクラスのインスタンスをnewするんじゃなく、ファイルのpathを引数に渡して処理できるようになった。
 → コード量の大幅減

■Java SE 8
・Functional Interface(実装すべきメソッドが1つだけのインターフェース)はlambdaに置き換えられる。
・イベントハンドラとか、メソッドが1つしかないやつはlambdaでどんどん書いていけるようになる。

■J2SE1.4からJava SE 7への作り変え
・移行するより、全部作り変えたほうが良い。
・PreparedStatmentとかメジャーなAPIでも、仕様が変わっててコンパイルが通らなかったりする。
・そもそもAPIの戻り値が異なることがある。
・1.4から7への移行は止めたほうがいい。
・1.4から5へのジャンプはとても多い。まず、ジェネリクスの警告が大量に出るところにまず戸惑う。
・仕様が変わっているかどうかを一個ずつ変更を調べるのは現実的ではない。
・Swingの挙動が1.4と7で全く変わっていた、という事例がある。
・JUnitのテストで担保しきれないレベル。バグレベルのテストとかでは無理。
・ただ、Javaのバージョンあげると性能あがるし開発生産性も上がる。


★感想:
JUnitの発表の方は、#junitbook の勉強会に参加してるので内容はほぼ理解できました。
Javaのバージョンアップに伴う変更について纏めていた後半のセッションは、目から鱗でしたねー
上手く纏まっていて大変参考になりました。
んで、このセッション聞きながら「あ、会社のあのコードのあそこ、直さなきゃ・・・」みたいのがチラホラと。。。

日経ソフトウェアの7月号も手元にあるので、さっき該当記事を読んでみた。良い復習になりました。
最近、ちょと積読になっているので、バックナンバー引っ張り出して、谷本さんの連載記事も読んでみようと思います。

最後に講師のお二方、スタッフさん、会場提供者様、ありがとうございましたー
スポンサーサイト

FC2Ad