torutkのブログ

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

Java読書会「Practical Design Patterns for Java Developers」を読む会が始まります

今月からJava読書会「Practical Design Patterns for Java Developers」開始

Java読書会BOF主催のJava読書会は、今月から「Practical Design Patterns for Java Developers」を読み始めました。

洋書で266ページの分量です。 Packt Publishing の紙の本を買った人は、領収書などのエビデンスを提示するとPDF版の電子データを追加費用なしに入手することができます。例えば、Amazon.co.jpで本書の紙の本を購入した場合、本書の最後に書かれている「Download a free PDF copy of this book」に沿ってPacktのサイトにアクセスし、メールアドレスとAmazon.co.jpの領収証(電子、日本語混じり)を添付して申し込むと1日以内にダウンロードURLの記載されたメールが送られてきます。

このPDFは、図などがカラーになっているので、紙の本では白黒で判別しずらい図がわかりやすくなっています。 PDFの電子データは、Googleサイトなどで機械翻訳で日本語にすることができるので、読書会では日本語で読み進めることができます。Googleサイトの場合、無料枠はページ数上限ありますが、本書は範囲内でした。

メモリモデルの話に

最初は導入だなと読み進めていくと、Java言語のオブジェクト指向プログラミング言語の4本柱としてAPIE(抽象化:Abstraction、多態性:Polymorphism、継承:Inheritance、カプセル化:Encapsulation)の導入と、SOLID原則(単一責任原則:SRP、開放・閉鎖原則:OCP、リスコフ置換原則:LSP、インタフェース分離原則:ISP、依存性逆転原則:DIP)が出てきます。 ただ、ここはさらっと流されていて、その次にJMMJava Memory Model)の話が出てきます。まずJDKの構成から始まり(JDKのツールがいくつか抜粋で箇条書き紹介されていますが、最初のツールにjlinkが登場)、次にJVMの話でクラスロード、リンク、実行を解説、続いてメモリの構成(スタック、ヒープ、メソッド領域、プログラムカウンター、ネイティブスタック)、そしてメモリモデル(キャッシュと競合、volatile)、GCの解説となります。

SOLIDまではいかにもデザインパターン本かなと思いきや、ここからJDK、JavaVMのメカニズムに焦点が当たり、しばらく続いています。

ということで初日のPractical Design Patterns for Java Developersは、さらっとオブジェクト指向プログラミングJavaの4本柱とSOLID原則をちょこっと齧ったあと、JVMの話にダイブしていきました。

なかなか斬新です。