ソースコードリーディングから学ぶJavaの設計と実装
〜オープンデザインのすすめ〜
〜オープンデザインのすすめ〜
2006年11月29日紙版発売
WINGSプロジェクト佐藤匡剛,山田祥寛 監修
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 おわりに
この本に関連する書籍
-
はじめてのOSコードリーディング ――UNIX V6で学ぶカーネルのしくみ
本書は,Sixth Edition UNIX(UNIX V6)を題材に,OSの全体像をひととおり解説します。 UNIX V6は1975年にベル研究所からリリースされたOSですが,近年のOSにも通じる,O...