2011年Javaの旅 Java 読書会 BOF  合宿(第 3 回) 2011 年 2 月 11 日 ~13 日@河口湖 Java読書会BOF 高橋 徹
アジェンダ Java  SE 7 が来る Java SE 7 の新機能を探検 Javadoc 簡単拡張 独自タグ、クラス図、シーケンス図 ユニットテスト 2011 JUnit 4 にモックツール、カバレッジ、 GUI 自動テストを加味してみたら、いけてるか 最後に
Java SE 7 が来る – 計画 2010/12/23  機能実装完了 ->  2011/01/17 b123 で完了   但し一部残あり 2011/02/17  開発者プレビュー 2011/06/02  最終ビルド 最終テスト開始 2011/07/28  一般公開
Java SE 7 が来る – 漏れた機能 残念ながら ラムダ式、モジュール機能( jigsaw) 、 Swing Application Framework などは対象外
Java SE 7 が来る – 新機能一覧 JSR 203 “NIO.2” JSR 292 Invoke Dynamic JSR 334 Project Coin クラスローダー改善 JSR 166 y 並行・コレクション改善 Unicode 6.0 ロケール拡張 SCTP/SDP TLS 1.2 楕円鍵暗号 *1 JDBC 4.1 透過、変形ウィンドウ *1 重量 / 軽量コンポーネントの混合 *1 Nimbus Look and Feel *1 JLayer コンポーネント XML  スタック改善 JMX と MBean 改善 *1 JDK 6 の Update で実装済み
Java SE 7 が来る –  Project Coin 数値リテラル 2 進数、アンダースコア区切り 文字列を switch 文で使用 可変引数に対する警告の変更 ジェネリクスのインスタンス生成簡略化 複数例外のキャッチ、再スローの厳密化 ストリーム等のリソースクローズ処理自動化
Java SE 7 が来る –  JSR166 y Phaser クラス CyclicBarrier のサブクラス 参加者数を変えることができる タスクのサポートを追加 終了のサポート Phaser の階層構造 TransferQueue インタフェースと LinkedTransferQueue クラス コンシューマが到着しアイテムを消費するまでプロデューサをブロック Fork-Join ライブラリ  ForkJoinPool インタフェース
Java SE 7 が来る –  NIO.2 ファイルの操作が大きく改善 シンボリックリンク、コピー、移動への対応 ディレクトリ操作 ファイル属性( POSIX ) ファイル変更のイベント検知(ポーリング不要 ) ソケット・チャネル改善 NetworkChannel – bind/getLocalAddress/setOption/getOption マルチキャスト  - MulticastChannel 非同期 I/O
Javadoc 簡単拡張 doclet を作らなくてもできる範囲の拡張 独自タグの定義( javadoc -tag オプション ) クラス図が生成できるといいな UMLGraph, APIviz などのツール( doclet) シーケンス図が生成できるといいな Quick Sequence Diagram Editor(taglet)
ユニットテスト 2011 JUnit を使ってユニットテストをして困ったこと private なフィールド・メソッドをテストケースから呼び出せず困った 依存するクラスがいくつかあって、単独でテストができない いくつかテストケースを書いてみたけど、十分かどうか分からない GUI のテストは JUnit で書けないので、手作業&目視確認にならざるをえない
ユニットテスト 2011 - JMockit モックツールの1つ。後発だが強力 EasyMock 、 Mockito 、 PowerMock と比べて 依存するクラスのモックを生成 final クラスでも、 static メソッドでも、 private なフィールド・メソッドを呼ぶテストを書くことができる カバレッジも計測できる
ユニットテスト 2011 – FEST-Swing GUI のテストを自動化する
最後に 2011 年は、 Java で、より便利に、よりドキュメント化され、よりテストされた、良質のプログラミングを行いましょう。

2011年javaの旅

  • 1.
    2011年Javaの旅 Java 読書会BOF 合宿(第 3 回) 2011 年 2 月 11 日 ~13 日@河口湖 Java読書会BOF 高橋 徹
  • 2.
    アジェンダ Java SE 7 が来る Java SE 7 の新機能を探検 Javadoc 簡単拡張 独自タグ、クラス図、シーケンス図 ユニットテスト 2011 JUnit 4 にモックツール、カバレッジ、 GUI 自動テストを加味してみたら、いけてるか 最後に
  • 3.
    Java SE 7が来る – 計画 2010/12/23 機能実装完了 ->  2011/01/17 b123 で完了   但し一部残あり 2011/02/17 開発者プレビュー 2011/06/02 最終ビルド 最終テスト開始 2011/07/28 一般公開
  • 4.
    Java SE 7が来る – 漏れた機能 残念ながら ラムダ式、モジュール機能( jigsaw) 、 Swing Application Framework などは対象外
  • 5.
    Java SE 7が来る – 新機能一覧 JSR 203 “NIO.2” JSR 292 Invoke Dynamic JSR 334 Project Coin クラスローダー改善 JSR 166 y 並行・コレクション改善 Unicode 6.0 ロケール拡張 SCTP/SDP TLS 1.2 楕円鍵暗号 *1 JDBC 4.1 透過、変形ウィンドウ *1 重量 / 軽量コンポーネントの混合 *1 Nimbus Look and Feel *1 JLayer コンポーネント XML スタック改善 JMX と MBean 改善 *1 JDK 6 の Update で実装済み
  • 6.
    Java SE 7が来る – Project Coin 数値リテラル 2 進数、アンダースコア区切り 文字列を switch 文で使用 可変引数に対する警告の変更 ジェネリクスのインスタンス生成簡略化 複数例外のキャッチ、再スローの厳密化 ストリーム等のリソースクローズ処理自動化
  • 7.
    Java SE 7が来る – JSR166 y Phaser クラス CyclicBarrier のサブクラス 参加者数を変えることができる タスクのサポートを追加 終了のサポート Phaser の階層構造 TransferQueue インタフェースと LinkedTransferQueue クラス コンシューマが到着しアイテムを消費するまでプロデューサをブロック Fork-Join ライブラリ  ForkJoinPool インタフェース
  • 8.
    Java SE 7が来る – NIO.2 ファイルの操作が大きく改善 シンボリックリンク、コピー、移動への対応 ディレクトリ操作 ファイル属性( POSIX ) ファイル変更のイベント検知(ポーリング不要 ) ソケット・チャネル改善 NetworkChannel – bind/getLocalAddress/setOption/getOption マルチキャスト - MulticastChannel 非同期 I/O
  • 9.
    Javadoc 簡単拡張 docletを作らなくてもできる範囲の拡張 独自タグの定義( javadoc -tag オプション ) クラス図が生成できるといいな UMLGraph, APIviz などのツール( doclet) シーケンス図が生成できるといいな Quick Sequence Diagram Editor(taglet)
  • 10.
    ユニットテスト 2011 JUnitを使ってユニットテストをして困ったこと private なフィールド・メソッドをテストケースから呼び出せず困った 依存するクラスがいくつかあって、単独でテストができない いくつかテストケースを書いてみたけど、十分かどうか分からない GUI のテストは JUnit で書けないので、手作業&目視確認にならざるをえない
  • 11.
    ユニットテスト 2011 -JMockit モックツールの1つ。後発だが強力 EasyMock 、 Mockito 、 PowerMock と比べて 依存するクラスのモックを生成 final クラスでも、 static メソッドでも、 private なフィールド・メソッドを呼ぶテストを書くことができる カバレッジも計測できる
  • 12.
    ユニットテスト 2011 –FEST-Swing GUI のテストを自動化する
  • 13.
    最後に 2011 年は、Java で、より便利に、よりドキュメント化され、よりテストされた、良質のプログラミングを行いましょう。