今月から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)が出てきます。 ただ、ここはさらっと流されていて、その次にJMM(Java Memory Model)の話が出てきます。まずJDKの構成から始まり(JDKのツールがいくつか抜粋で箇条書き紹介されていますが、最初のツールにjlinkが登場)、次にJVMの話でクラスロード、リンク、実行を解説、続いてメモリの構成(スタック、ヒープ、メソッド領域、プログラムカウンター、ネイティブスタック)、そしてメモリモデル(キャッシュと競合、volatile)、GCの解説となります。
SOLIDまではいかにもデザインパターン本かなと思いきや、ここからJDK、JavaVMのメカニズムに焦点が当たり、しばらく続いています。
ということで初日のPractical Design Patterns for Java Developersは、さらっとオブジェクト指向プログラミングJavaの4本柱とSOLID原則をちょこっと齧ったあと、JVMの話にダイブしていきました。
なかなか斬新です。