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のメモリ管理の話、続いてJavaのAPI、Javaモジュールシステム、Java 11以降の新しい言語仕様、スレッドの話となります。
第1回では、後半、突如としてJMM(Java Memory Model)の話が出て、まずJDKの構成、次にJVMの話でクラスロード、リンク、実行を解説、続いてメモリの構成(スタック、ヒープ、メソッド領域、プログラムカウンター、ネイティブスタック)、そしてメモリモデル(キャッシュと競合、volatile)、 GCの解説となりました。
これらを踏まえてDesign Patternを解説するぞ、という意気込みで、なかなか読み応えのある読書向きの本ではないかと感じています。
Java読書会BOFでは、参加者募集中です。