軽快なJava

―Better, Faster, Lighter Java

[cover photo]
TOPICS
Java
発行年月日
PRINT LENGTH
324
ISBN
4-87311-201-X
原書
Better, Faster, Lighter Java
FORMAT
Print
3,080円
この商品は品切れ再入荷未定です

いつの間にか肥大化、複雑化し、重くなってしまったJavaを見直し、シンプルな考え方とテクニックで、より強く、速く、軽いJavaプログラミングを指南します。「Simple is Best」のコンセプトのもと、脱EJB、WebLogic、JBoss、WebSphereを図ります。より優れたプログラミングのためのエッセンスがぎっしり詰まった一冊です。従来の重いアーキテクチャと比べ、シンプルで使いやすく、習得も容易なHibernateやSpringといった新しいテクニックも紹介しています。

目次

訳者まえがき
まえがき

1章 甘やかされた肥満児
	1.1 荷物を積みすぎた船
                1.1.1 エンタプライズの巨大フレームワーク
                1.1.2 進歩の正体
                1.1.3 市場の圧力
                1.1.4 豆腐で釘を打つ
        1.2 肥満への対策
        1.3 肥満と戦うための5大原則
                1.3.1 その1:あらゆるものをシンプルに
                1.3.2 その2:一つのことを上手にやる
                1.3.3 その3:透明性を死守せよ
                1.3.4 その4:拡張が楽にできる設計
                1.3.5 その5:システムの顔は道具に似る
        1.4 まとめ

2章 あらゆるものをシンプルに
	2.1 単純性の価値
		2.1.1 基盤を選ぶ
	2.2 単純を生む開発工程
		2.2.1 究極のアジャイル
		2.2.2 自分と戦う
	2.3 安全ネット
		2.3.1 JUnitを使ってみよう
		2.3.2 Antを使ってテストケースを自動化する
		2.3.3 テストのためのリファクタリング
	2.4 まとめ

3章 一つのことを上手にやる
	3.1 問題を理解する
		3.1.1 要求を集める
		3.1.2 スコープを明確にする
	3.2 問題を蒸留する
		3.2.1 要求を列挙する
		3.2.2 不純物を取り除く
		3.2.3 設計の磨き上げ
	3.3 アーキテクチャを層状にする
		3.3.1 層化入門
		3.3.2 層間インタフェイス
		3.3.3 よく使われる層
	3.4 結合を減らすためのリファクタリング
		3.4.1 ミクロの結合
		3.4.2 マクロな結合
	3.5 まとめ

4章 透明性を死守する
	4.1 透明性がもたらす利点
	4.2 コントロールの主体をどこに置くか?
		4.2.1 アクティブドメインモデル
		4.2.2 パッシブなモデルの威力
	4.3 透明性に代わるもの
		4.3.1 前進せよ
	4.4 リフレクション
		4.4.1 リフレクションAPI
		4.4.2 クラスにアクセスする
		4.4.3 フィールドにアクセスする
		4.4.4 メソッドとコンストラクタにアクセスする
	4.5 コードインジェクション(code injection, コードの注入)
	4.6 コードジェネレーション
		4.6.1 コードジェネレーションの動作
		4.6.2 コードジェネレーションと透明性
	4.7 高度な話題いろいろ
		4.7.1 サービスの粒度の大小
		4.7.2 新しいプログラミングパラダイム
	4.8 まとめ

5章 システムの顔は道具に似る
	5.1 黄金のハンマー
		5.1.1 誘惑
		5.1.2 いくつかの実例
	5.2 木を見る前に森を見る
		5.2.1 現代の伽藍
	5.3 技術要求の検討
		5.3.1 外側の疑問
		5.3.2 内側の疑問
	5.4 まとめ

6章 拡張可能な設計
	6.1 拡張に関する基本
		6.1.1 継承とインタフェイス
		6.1.2 事前に計画されている拡張
		6.1.3 計画されていない拡張性
	6.2 拡張のためのツール
		6.2.1 スタンダード
		6.2.2 コンフィギュレーション
		6.2.3 クラスのロード
		6.2.4 何をコンフィギュレーションすべきか?
	6.3 プラグインモデル
		6.3.1 低レベルのプラグイン
		6.3.2 インタフェイスの役割
	6.4 誰が拡張サービスを使うのか?
	6.5 まとめ

7章 Hibernate
	7.1 まゆつばのサクセスストーリー
	7.2 Hibernateって何?
		7.2.1 簡単な例
		7.2.2 オブジェクトモデルを書く
		7.2.3 スキーマを作る
		7.2.4 マッピングを指定する
	7.3 パーシステントモデルを使う
		7.3.1 Hibernateのコンフィギュレーション
		7.3.2 モデルを使う
	7.4 Hibernateを評価する
		7.4.1 あらゆるものを単純に
		7.4.2 一つのことを上手にやる
		7.4.3 透明性を死守せよ
		7.4.4 拡張が楽にできる設計
		7.4.5 システムの顔は道具に似る
		7.4.6 短所
	7.5 まとめ

8章 Spring
	8.1 Springはと何?
		8.1.1 制御の反転
	8.2 ペットショップ:反面教師
		8.2.1 コンフィギュレーション
	8.3 ドメインモデル
	8.4 パーシステンスを加える
		8.4.1 モデル
		8.4.2 マッピング
		8.4.3 DAOのインタフェイス
		8.4.4 DAOの実装
		8.4.5 ファサードを介してモデルを使う
		8.4.6 DAO層をコンフィギュレーションする
		8.4.7 利点
	8.5 プレゼンテーション
		8.5.1 コンフィギュレーション
		8.5.2 コントローラ
		8.5.3 フォーム
		8.5.4 ヴァリデーション(ユーザ入力値の検査)
	8.6 まとめ

9章 Simple Spider
	9.1 スパイダーって何?
	9.2 要件を吟味する
		9.2.1 要求を分析する
		9.2.2 要求を磨く
	9.3 開発計画
	9.4 設計
	9.5 コンフィギュレーションサービス
		9.5.1 5大原則は守られているか?
	9.6 クロウラ/インデクササービス
		9.6.1 5大原則は守られているか?
	9.7 探索サービス
		9.7.1 5大原則は守られているか?
	9.8 コンソールインタフェイス
		9.8.1 5大原則は守られているか?
	9.9 Webサービスインタフェイス
		9.9.1 5大原則は守られているか?
	9.10 Spiderを拡張する

10章 JPetStoreを拡張する
        10.1 JPetStoreの既存の探索機能は?
                10.1.1 Spiderの採用を決める
                10.1.2 JPetStoreの拡張
        10.2 コントローラをリプレースする
                10.2.1 リライトかリプレースか?
                10.2.2 インタフェイスを実装する
                10.2.3 新しいコントローラクラスをJPetStoreに登録する
                10.2.4 5大原則は守られているか?
        10.3 ユーザインタフェイス(JSP)
                10.3.1 SpiderをJSP向けに変更する
                10.3.2 Spiderのソースがなかったらどうするか?
                10.3.3 5大原則は守られているか?
        10.4 インデクサをセットアップする
                10.4.1 JPetStoreに組み込むか外部で起動するか?
                10.4.2 システムのスケジューラを使う
                10.4.3 成功の甘い香り
                10.4.4 5大原則は守られているか?
        10.5 コンフィギュレーションサービスを利用する
                10.5.1 5大原則は守られているか?
        10.6 Hibernateを加える
                10.6.1 既存のアーキテクチャ
                10.6.2 既存のドメインオブジェクトのためのHibernateのマッピング
                10.6.3 Hibernateの DAO
                10.6.4 アプリケーションのコンフィギュレーションを変える
                10.6.5 Springが内蔵しているHibernateサポート
                10.6.6 5大原則は守られているか?
        10.7 まとめ

11章 ここが人生の分かれ道
        11.1 技術
                11.1.1 小さいことはいいことだ
                11.1.2 オープンソース
                11.1.3 アスペクト指向プログラミング(AOP)
                11.1.4 パーシステンス
                11.1.5 コンテナ
        11.2 開発理論
        11.3 重要な課題
        11.4 結語

参考資料
索引