ソースコードリーディングから学ぶJavaの設計と実装
〜オープンデザインのすすめ〜

[表紙]ソースコードリーディングから学ぶJavaの設計と実装 〜オープンデザインのすすめ〜

紙版発売

B5変形判/288ページ

定価2,728円(本体2,480円+税10%)

ISBN 4-7741-2950-X

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

本書のテーマはオープンソースのすぐれたソースコードから設計パターンや手法を学びとることです。JUnit,Strutsなどのよく使われるオープンソースを題材に,そこに見出すことができる設計パターンやテクニックをわかりやすく示します。

こんな方におすすめ

  • オープンソースプロダクツを利用している開発者
  • 設計手法を習得したいSE

著者の一言

JUnit,Struts,Eclipse,Tomcat,Spring Frameworkなど,Javaの有名オープンソースプロダクツのソースコードをオブジェクト指向の観点で読解。活きたソースコードの中から,設計や実装のノウハウを学びとります。さまざまなソフトウェアの設計図がつまった,デザインブックとして読むこともできます。また読者が自分でソースコードを読んでいけるように,ソースコードリーディングの手法も解説します。

この書籍に関連する記事があります!

ソースコードリーディングから学ぶJavaの設計と実装
オープンソース(オープンソースプロダクト)には,システム開発を行うためのツールであることはもちろんですが,それだけに終始してはもったいない点があります。それが,本書のコンセプトである“設計パターンや手法を学びとる”ことです。

目次

  • はじめに

第1章 ソースコードを読む

  • 1.1 オープンソースの特徴
    • 1.1.1 生きた教材としての価値
    • 1.1.2 アイディアを盗む
  • 1.2 ソースコードを読む目的と方法
    • 1.2.1 ソースコードを読む目的
    • 1.2.2 ソースコードを読む方法
  • 1.3 ソースコードを読むためのUML
    • 1.3.1 クラス図
    • 1.3.2 パッケージ図
    • 1.3.3 シーケンス図
  • 1.4 ソースコードを読むためのパターン
    • 1.4.1 GoFパターン
    • 1.4.2 POSAパターン
    • 1.4.3 J2EEパターン
    • 1.4.4 エンタプライズアーキテクチャパターン
    • 1.4.5 SmallTalkベストプラクティスパターン
    • 1.4.6 その他のパターン
  • 1.5 本書の読解スタイル
    • 1.5.1 概要を読む
    • 1.5.2 詳細を読む
    • 1.5.3 テーマ中心の読み方
  • 1.6 読解するオープンソースプロダクツとテーマ
    • 1.6.1 オープンソースプロダクツ
    • 1.6.2 読解テーマ

第2章 汎用ライブラリ Jakarta Commons Logging/Pool

  • 2.1 読み解くテーマ
  • 2.2 Commons Logginの概要
    • 2.2.1 ソースコードの構成
    • 2.2.2 パッケージ構成
    • 2.2.3 主要クラス間の関係
  • 2.3 Adapterパターンの使い方
    • 2.3.1 Adapterパターンとは
    • 2.3.2 ソースコードのポイント
    • 2.3.3 ソースコード読解(Adapterパターンの使い方)
  • 2.4 プロパティファイルによる実装クラスの指定
    • 2.4.1 インタフェースのインスタンスをどこで生成するか
    • 2.4.2 ソースコードのポイント
    • 2.4.3 ソースコード読解(プロパティファイルによる実装クラスの指定)
  • 2.5 Commons Poolの概要
    • 2.5.1 ソースコードの構成
    • 2.5.2 パッケージ構成
    • 2.5.3 主要クラス間の関係
  • 2.6 ファクトリクラスの使い方
    • 2.6.1 ソースコードのポイント
    • 2.6.2 ソースコード読解(ファクトリクラスの使い方)
  • 2.7 オブジェクトプーリングの実現方法
    • 2.7.1 ソースコードのポイント
    • 2.7.2 ソースコード読解(オブジェクトプーリングの実現方法)

第3章 テスティングフレームワーク JUnit

  • 3.1 読み解くテーマ
  • 3.2 JUnitの概要
    • 3.2.1 ソースコードの構成
    • 3.2.2 パッケージ構成
    • 3.2.3 主要クラス間の関係
  • 3.3 リフレクションを使ったフレームワークの作り方
    • 3.3.1 ソースコードのポイント
    • 3.3.2 ソースコード読解(リフレクションを使ったフレームワークの作り方)
  • 3.4 Template Methodパターンの使い方
    • 3.4.1 Template Methodパターンとは
    • 3.4.2 ソースコードのポイント
    • 3.4.3 ソースコード読解(Template Methodパターンの使い方)

第4章 Webアプリケーションフレームワーク Struts

  • 4.1 読み解くテーマ
  • 4.2 Strutsの概要
    • 4.2.1 ソースコードの構成
    • 4.2.2 パッケージ構成
    • 4.2.3 主要クラス間の関係
  • 4.3 アプリケーションの初期化方法
    • 4.3.1 ソースコードのポイント
    • 4.3.2 ソースコード読解(アプリケーションの初期化方法)
  • 4.4 Front Controllerパターンに基づくWebアプリケーションフレームワークの実装方法
    • 4.4.1 Page Controllerパターンと Front Controllerパターン
    • 4.4.2  ソースコードのポイント
    • 4.4.3 ソースコード読解(Front Controllerパターンに基づくWebアプリケーションフレームワークの実装方法)
  • 4.5 リクエストパラメータからBeansへの変換
    • 4.5.1 ソースコードのポイント
    • 4.5.2 ソースコード読解(リクエストパラメータからBeansへの変換)
  • 4.6 拡張可能なフレームワークの設計方法
    • 4.6.1 Tilesとは
    • 4.6.2 ソースコードのポイント
    • 4.6.3 ソースコード読解(拡張可能なフレームワークの設計方法)

第5章 統合開発環境 Eclipse

  • 5.1 読み解くテーマ
  • 5.2 Eclipseの概要
    • 5.2.1 ソースコードの構成
    • 5.2.2 パッケージ構成
    • 5.2.3 主要クラス間の関係
  • 5.3 OSGiチュートリアル
    • 5.3.1 OSGiとは
    • 5.3.2 OSGiフレームワークの基本
    • 5.3.3 OSGiフレームワークを起動する
    • 5.3.4 バンドルの書き方
  • 5.4 OSGiによるプラグインシステムの構築方法
    • 5.4.1 ソースコードのポイント
    • 5.4.2 ソースコード読解(OSGiによるプラグインシステムの構築方法)

第6章 Webアプリケーションサーバ Apache Tomcat

  • 6.1 読み解くテーマ
  • 6.2 Tomcatの概要
    • 6.2.1 ソースコードの構成
    • 6.2.2 パッケージ構成
    • 6.2.3 主要クラス間の関係
  • 6.3 JMXチュートリアル
    • 6.3.1 JMXとは
    • 6.3.2 JMXの基本
    • 6.3.3 サンプルコード
  • 6.4 JMXによる管理可能なサーバ構築方法
    • 6.4.1 ソースコードのポイント
    • 6.4.2 ソースコード読解(JMXによる管理可能なサーバ構築方法)
  • 6.5 どうやってサーバのリクエスト処理を実装するか
    • 6.5.1 Master-SlaveパターンとLeader/Followersパターン
    • 6.5.2 Tomcatコネクタの概要
    • 6.5.3 ソースコードのポイント
    • 6.5.4 ソースコード読解(どうやってサーバのリクエスト処理を実装するか)

第7章 テンプレートエンジン Jakarta Velocity

  • 7.1 読み解くテーマ
  • 7.2 Velocityの概要
    • 7.2.1 ソースコードの構成
    • 7.2.2 パッケージ構成
    • 7.2.3 主要クラス間の関係
    • 7.2.4 runtimeパッケージ内部の構造
  • 7.3 JavaCCチュートリアル
    • 7.3.1 言語処理系構築の基本
    • 7.3.2 JavaCCによるパーサの作り方
    • 7.3.3 足し算パーサの例
    • 7.3.4 プログラムを実行する
  • 7.4 独自の言語を定義する方法
    • 7.4.1 ソースコードのポイント
    • 7.4.2 ソースコードの読解(独自の言語を定義する方法)
  • 7.5 独自言語に仕事をさせる方法
    • 7.5.1 InterpreterパターンとVisitorパターン
    • 7.5.2 ソースコードのポイント
    • 7.5.3 ソースコード読解(独自言語に仕事をさせる方法)

第8章 DIコンテナ Spring Framework

  • 8.1 読み解くテーマ
  • 8.2 Spring Frameworkの概要
    • 8.2.1 ソースコードの構成
    • 8.2.2 パッケージ構成
    • 8.2.3 主要クラス間の関係
  • 8.3 DIチュートリアル
    • 8.3.1 DIの概要
    • 8.3.2 Spring FrameworkによるDIの例
  • 8.4 DI(依存性注入)の実装方法
    • 8.4.1 ソースコードのポイント
    • 8.4.2 ソースコード読解(DI(依存性注入)の実装方法)
  • 8.5 実行時にクラスの振る舞いを変更する方法
    • 8.5.1 動的プロキシとCGLIB
    • 8.5.2 ソースコードのポイント
    • 8.5.3 ソースコード読解(実行時にクラスの振る舞いを変更する方法)

第9章 データベースエンジン HSQLDB

  • 9.1 読み解くテーマ
  • 9.2 HSQLDBの概要
    • 9.2.1 ソースコードの構成
    • 9.2.2 パッケージ構成
    • 9.2.3 主要クラス間の関係
  • 9.3 JDBCドライバの仕組み
    • 9.3.1 ソースコードのポイント
    • 9.3.2 ソースコード読解(JDBCドライバの仕組み)
  • 9.4 組み込みとしてもクライアント/サーバ型としても使えるアプリケーションの設計
    • 9.4.1 Proxyパターンとは
    • 9.4.2 ソースコードのポイント
    • 9.4.3 ソースコード読解(組み込みとしてもクライアント/サーバ型としても使えるアプリケーションの設計)

第10章 ソースコード読解の手法

  • 10.1 オブジェクト指向ソースコードの特徴
  • 10.2 読解の手法
  • 10.3 ソースプログラムを探す
    • 10.3.1 プロジェクトにはどんな構成要素があるか
    • 10.3.2 典型的なプロジェクト構成
    • 10.3.3 読解例
  • 10.4 パッケージ図を描く
    • 10.4.1 パッケージを列挙する
    • 10.4.2 依存関係を洗い出す
    • 10.4.3 依存関係を抽象化する
    • 10.4.4 抽象化の例
  • 10.5 クラス図を描く
    • 10.5.1 概念モデル再構築のガイドライン
    • 10.5.2 アーキテクチャガイドを探す
    • 10.5.3 使用例から類推する
    • 10.5.4 JavaDocを参照する
    • 10.5.5 クラス間のどの関係に注目すべきか
    • 10.5.6 クラス図を完成させる
  • 10.6 テーマを定めて読解する
    • 10.6.1 読解の開始ポイントを決める
    • 10.6.2 プログラムスライシング
    • 10.6.3 シーケンス図を描く
  • 10.7 統合開発環境の利用
    • 10.7.1 型階層を検索する
    • 10.7.2 クラスやオブジェクトへの参照を検索する
    • 10.7.3 メソッドの呼び出し階層を検索する
    • 10.7.4 汎用の文字列検索を利用する
  • 10.8 開発プロセスとの比較
  • 10.9 おわりに

著者プロフィール

山田祥寛(やまだよしひろ)

千葉県鎌ヶ谷市在住のフリーライター。Microsoft MVPfor ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。書籍執筆を中心に,雑誌/ サイト記事,取材,講演までを手がける多忙な毎日。最近の活動内容は公式サイトを参照。