torutkのブログ

ソフトウェア・エンジニアのブログ

Java読書会「Practical Design Patterns for Java Developers」(第2回)を読む会

今週末の9月23日(土)は、Java読書会BOF主催の「Practical Design Patterns for Java Developers」を読む会(第2回)を開催します。

洋書ですが、電子版(PDF)を機械翻訳したものをベースに日本語で朗読していくので、英語の敷居はほぼ低いです。 (double sin = Mathsin(...)が、二重の罪 = と訳されるなど楽しい翻訳を目にすることもできます)

今回の範囲は、日本語であれば、Java読書会のこれまでの平均60ページの進度で読み進めるとの想定で、次の項目となります。

第2回の予定範囲:p.37 l6から p.97まで

  • 第2章 

    • pp.37-39 GC マイナーGCとメジャーGC、マーク、コンパクト、ソフト参照、ファントムリファレンス
    • pp.40-49 デザインパターンに使用する最も重要基本API、プリミティブ型とラッパー、文字列APIの操作、配列、コレクションフレームワークとOノーテーション、Math API、ラムダと関数型インタフェース
    • pp.50-52 Javaモジュールシステム(JPMS)
    • pp.52-57 Java 11から17以降の機能簡単レビュー ラムダパラメータのローカル変数構文、スイッチ式、テキストブロック、instanceofパターンマッチング、レコード、シールクラス、デフォルトUTF8、スイッチのパターンマッチング
    • pp.57-60 Javaの同時実行性、Executorサービス、タスクの実行、Future
  • 第3章生成に関するデザインパターン

    • pp.65-71 ファクトリメソッドパターン、ファクトリクラス、switch式で簡素化、レコードクラス
    • pp.71-75 抽象ファクトリパターン、FactoryProvider
    • pp.75-78 ビルダーパターンで複雑なオブジェクトのインスタンス化 2つのアプローチ
    • pp.78-82 プロトタイプパターンでオブジェクトのクローン作成
    • pp.82-85 シングルトンパターン、オンデマンドで遅延作成
    • pp.85-93 オブジェクトプールパターン

Design Patternの本ですが、ご覧の通り、今回の範囲では、前半はJavaのメモリ管理の話、続いてJavaAPIJavaモジュールシステム、Java 11以降の新しい言語仕様、スレッドの話となります。

第1回では、後半、突如としてJMMJava Memory Model)の話が出て、まずJDKの構成、次にJVMの話でクラスロード、リンク、実行を解説、続いてメモリの構成(スタック、ヒープ、メソッド領域、プログラムカウンター、ネイティブスタック)、そしてメモリモデル(キャッシュと競合、volatile)、 GCの解説となりました。

これらを踏まえてDesign Patternを解説するぞ、という意気込みで、なかなか読み応えのある読書向きの本ではないかと感じています。

Java読書会BOFでは、参加者募集中です。