[戻る]
Java読書会BOF「Practical Design Patterns for Java Developers」を読む会 第1回¶
場所 |
川崎市教育文化会館 第3会議室 |
出席者(敬称略) |
高橋(智)、高橋(徹) |
本日は、「表紙」から
PDFには、紙書の裏表紙がない
著者は、Robo4Jのco-authorで、Javaチャンピオン、JCP exective committee member
序文¶
- 本書のコードの動作前提
前提は JDK 17以降
推奨IDEはVSCode 1.73.1以降
パート1 デザインパターンとJavaプラットフォームの機能¶
第1章 ソフトウェア設計パターンの概要¶
1 ソフトウェアへの取り組み デザインパターン¶
Examining OOP and APIE¶
SOLIDは、過去の読書会では「アジャイルソフトウェア開発の奥義」で登場した
core carrierの意味は?
- APIE(Abstraction, Polymorphism, Inheritance, Encapsulation)
オブジェクト指向言語の4つの基本的な柱
Understanding the SOLID design principles¶
誤植)p.15 例1.5の下1行目「NOT POSISBLE!」は「NOT POSSIBLE!」の誤記
まとめ¶
Q1. Java Virtual MachineとJIT
Q2. Abstraction, Polymorphism, Inheritance, Encapsulation
Q3. OverloadとOverride
Q4. SOLID設計原則
Q5. OCPは拡張にオープンで変更にクローズな設計
- Q6. 回答難しい。
透明性の維持、可読性、重複の削減、テスト容易性、目的を明確認する、などを考慮する
2 デザインパターン用のJavaプラットフォームの発見¶
メモリ使用率の観点からデザインパターンの価値を理解するための基礎 おっ、
(宿題)Appletコードを、ブラウザやappletviewerではなく、mainメソッドから呼び出しjavaで実行できるか?
- p.28 Example 2.1の末尾(Reference 26)とあるが、2節の参考文献は26個もない。
2節の参考文献の下から2つ目が該当するが、26番目には該当しない
p.28 Example 2.2の前の説明文が、bytecode記述をコンパイルするとあるので一瞬 ソースファイルに bytecodeのテキスト表現を書くとコンパイルできるのか?と思ったがそれはなかった。
p.30 図2.2 Class Loader Subsystem の中にある B. Extension Class Loaderは何か?
p.32 拡張クラスローダー 「lib/extディレクトリからの追加ライブラリをロード」とあるので、JDK9で削除された機能
p.33 Stack領域で、「スタックフレームは...例外が発生することなく削除されます。」とあるが、例外が起きてメソッドが終わった時はスタックフレームが残ることを意味している?
printStackTraceでスタックトレース情報が出せるので残るということか?
p.33 Method areaは、メタスペースのことか?
p.36 volatileキーワードを付けた変数の読み込みは、キャッシュではなくメインメモリから読み込むことが保証される
宿題)volatileキーワードを付けたとき、ネイティブコードの命令に違いがあるかどうか? * CPUのキャッシュコヒーレントの仕組みを知る必要がありそう?
本日は、p.37 の上5行目まで読み終わりました。 次回は、p.37 の上6行目からです。
[戻る]