オブジェクト脳のつくり方(長瀬 嘉秀 牛尾 剛)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. オブジェクト脳のつくり方

オブジェクト脳のつくり方

監修

形式:
書籍
発売日:
ISBN:
9784798104188
定価:
3,080(本体2,800円+税10%)
仕様:
B5変・328ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発

オブ脳の芽生えはエンジニアとしてのあなたの人生の転機だ!

オブジェクト指向を要領よくマスターするには、まずいろいろな知識を勉強するまえに、あなたの脳に「オブジェクト脳」を目覚めさせてしまいましょう。そうすれば、オブジェクトの神はあなたに微笑みかけてくれるはずです。そして、UMLやEJBなども分かりやすい便利なものに変わってくれるでしょう。
この本はオブジェクト指向を効率よくマスターする「要領本」です。この本で「オブジェクト脳」をもった技術者が増えて、仕事で得をしてもらえれば私は本望です。
さあ、いっしょにオブジェクト指向やUMLやEJBを難しいと思っている人に差をつけましょう!
(本書「はじめに」より)

付録CD-ROMについて
本書の付録CD-ROMには、本書で解説しているサンプルプログラムおよびサンプルプログラムを実行するための環境などのソフトウェアを収録しています。インストール方法や使用方法については、CD-ROMの  docsフォルダに収録されている「CD-ROMの使用方法」をご覧ください。また、サンプルプログラムの動作については、筆者がMicrosoft XP上で確認しておりますが、すべての環境で動作を保障するものではありません。

付録CD-ROM収録内容について



・- Java™2 Software Development Kit Standard Edition version 1.4.0_3
・- JBoss3.0.4+Tomcat 4.1.12
・- Ant 1.5
・- サンプルプログラム
・- CD-ROMの使い方

第1部 オブジェクト脳育成への道

第1章 不完全主義のススメ
1.1 オブジェクト指向は苦手ですか

第2章 たったこれだけでいいオブジェクトの基礎-だけど究極
2.1 最初の質問
2.2 基礎であり究極
2.3 トレーニングのルール
2.4 オブジェクト指向誕生秘話
2.5 草木一本是オブジェクト
2.6 そしてクラスへ
2.7 有名どころ:継承
2.8 適当解説:カプセル化
2.9 究極奥義:ポリモーフィズム

第3章 演習:社長命令・起立!
3.1 社長命令・起立!
3.2 演習その1:社長命令・起立!
3.3 演習その2:給料はいくら?
3.4 演習その3:取締役を追加
3.5 演習その4:ボーナスはいくら?
3.6 演習その5:ファクトリ
3.7 デザインパターン
3.8 総括

第4章 先人は偉い、超手抜きパターン習得法
4.1 パターンとは
4.2 ステイト/ストラテジー(State/strategy)パターン
4.3 ファクトリーメソッド(factory method)パターン
4.4 コンポジット(Composite)パターンの予備知識
4.5 Mr.デザインパターン:コンポ嫉妬(Composite)パターン
4.6 重複コードの天敵!テンプレートメソッド(template method)パターン

第2部 アドバンスド オブジェクト脳養成講座

第5章 もう一歩進んだオブジェクト脳になるために
5.1 実際のシステムはどうやって作るか
5.2 オブ脳プロセス概要
5.3 画面フローイメージ
5.4 ユースケース図
5.5 シナリオ
5.6 クラスの抽出
5.7 オブジェクト図
5.8 分析クラス図
5.9 アーキテクチャの導入
5.10 設計クラス図(簡易版)
5.11 最後にコード
5.12 フィードバック
5.13 次のステップ

第6章 なぜオブジェクト脳の人はそう考えるのか
6.1 オブジェクト指向をやって何が得?
6.2 オブジェクトの悪い噂を知ってるぞ
6.3 普通の開発とどこが違うの?
6.4 画面はいらんのか?
6.5 リスクの解決方法?
6.6 怪しさ満点、変化に対応する設計
6.7 品質がバグの数?
6.8 人は物?
6.9 ドキュメントの扱いは?
6.10 経験は無駄だったのだろうか

第7章 オブジェクト脳に変えるトレーニング
7.1 オブジェクト脳に変える基本テクニック
7.2 わかるまでの一般パターン
7.3 効果的ペアプログラミング手法
7.4 親孝行してもらうためには
7.5 教えられる人のタイプ別傾向と対策

第3部 実践!実業務プロジェクト

第8章 ようこそC3Jプロジェクトへ
8.1 プロジェクトの説明
8.2 プロジェクトの引継ぎ資料と説明
8.3 分析・設計・ペアプロ体験
8.4 プログラミング
8.5 カテゴリ選択および本一覧
8.6 本詳細ページ
8.7 検索結果

第9章 最終イテレーション、そして最強の課題
9.1 メンテナンス仕様の確認
9.2 めんどくささと難しさは発明の母-抽象化のススメ
9.3 究極必殺技炸裂
9.4 理解できるならやってみろ-インターフェイスでお話テク
9.5 戦いを終えて

付録

付録A オブ脳外伝 EJBのススメ-EJBポイント解説
A.1 恐るべしEJB
A.2 EJBはこう攻めろ-攻略のポイント
A.3 EJB最初の砦-理網人韻多亞腑栄棲(リモートインターフェイス)
A.4 EJB次の関門-楼駆屡韻多亞腑栄棲(ローカルインターフェイス)
A.5 EJB奥義の数々(4種類のEJBの使い分け)
A.6 EJB究極奥義-死夷得無緋威(CMP)

付録B 実践C3Jプロジェクトのユースケースシナリオ例
B.1 ユースケースシナリオ例
B.2 各ユースケースから抽出されるクラス例
B.3 抽出されたクラスのマージ

付録C オブジェクト脳度チェックリスト
判定
解説

付録D ステレオタイプの定義
Webアプリケーションのステレオタイプ定義
EJBのためのステレオタイプ定義
アーキテクチャのためのステレオタイプ定義

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2012年08月08日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷
CD-ROMに収録した演習用のサンプルソースコード
2刷
ローマ字のつづりの統一など
ファイルを参照ください
2003.07.31
1刷 021
7行目
2刷
から補足します。
から補足します。
2003.11.20
1刷 028
List3-1の4行目
2刷
this.namae = name;
this.name = name;
2003.07.31
1刷 030
下から2行目
2刷
java Shacho tanto
java Shacho Tanto
2003.07.31
1刷 031
1行目
2刷
java Shacho shunin
java Shacho Shunin
2003.07.31
1刷 034
1行目
2刷
せん。ここでは「社員」の定義だけを書いおきます。
せん。ここでは「社員」の定義だけを書いおきます。
2003.08.01
1刷 036
List3-8とList3-8の1行目
2刷
Public
public
2003.07.31
1刷 038
List3-12の下から5行目、6行目
3刷
int kihonkyu = Integer.parseInt(args[1]) int kyuryo = shain.getKyuryou(kihonkyu)
int kihonkyu = Integer.parseInt(args[1]);
int kyuryo = shain.getKyuryo(kihonkyu);
2003.07.31
1刷 045
1行目、4行目
2刷
int Kyuryo = shain.getKyuryou() Shain.standup(); System.outpintln("私の給料は" + Kyuryou + "円です。"); System.outpintln("ボーナスは" + shain.bonus() + "円です。");
int Kyuryo = shain.getKyuryo() Shain.standup(); System.outpintln("私の給料は" + Kyuryou + "円です。"); System.outpintln("ボーナスは" + shain.getBonus() + "円です。");
2003.07.31
1刷 045
List3-19の下から3行目
2刷
    }   } }
    }     return new Tanto();
  } }
2003.07.31
1刷 045
本文下から5行目
11刷
newしていまいしたが
newしていましたが
2006.06.29
1刷 046
List3-20の下から3行目
11刷
System.out.println("ボーナスは" + shain.getbonus() + "円です");
System.out.println("ボーナスは" + shain.getBonus() + "円です");
2006.06.29
1刷 057
List4-1の1行目、18行目
2刷
public class Juchu {     return juchuubangou;
import java.util.*;
public class Juchu {     return juchuBango;
2003.07.31
1刷 057
下から8行目
2刷
…………………………②
…………………………⑦
2003.08.01
1刷 058
List4-2の1行目
2刷
Public
public
2003.07.31
1刷 060
List4-4の1行目、8~10行目
2刷
public class Manager {     juchuu.setChumoncha(tyumonsya);     juchuu.addMeisai(meisai1);     juchuu.addMeisai(meisai2);
import java.util.*;
public class Manager {     juchu.setChumoncha(chumonsha);     juchu.addMeisai(meisai1);     juchu.addMeisai(meisai2);
2003.07.31
1刷 060
List4-4 18行目と27行目
3刷
System.out.println("受注明細番号  注文商品        価格");    ・    ・    ・ meisai.getPrice());
System.out.println("受注明細番号\t注文商品\t\t価格");    ・    ・    ・ meisai.getPrice() + "円");
2003.08.07
1刷 061
List4-4の下から3行目
System.out.println(" 合計金額\t\t\t\t" + gokei) ;
System.out.println(" 合計金額\t\t\t\t" + gokei + "円") ;
2012.08.08
1刷 062
List4-6の最終行
System.out.println(" 合計金額\t\t\t\t" + juchuu.getMeisaiGokei());
System.out.println(" 合計金額\t\t\t\t" + juchu.getMeisaiGokei() + "円");
2012.08.08
1刷 062
List4-6
2刷
    System.out.println("受注明細番号  注文商品    価格");     Collection meisais = juchu.getMeisais();     Iterator iterator = meisais.iterator();     int gokei = 0;     while(iterator.hasNext()){       Meisai meisai = (Meisai)iterator.next();       System.out.println("" +         meisai.getMeisaiBango() + "\t\t" +         meisai.getProductName() + "\t\t" +         meisai.getPrice());       gokei = gokei + meisai.getPrice();
    System.out.println("受注明細番号\t注文商品\t\t価格");     Collection meisais = juchu.getMeisais();     Iterator iterator = meisais.iterator();     // int gokei = 0;     while(iterator.hasNext()){       Meisai meisai = (Meisai)iterator.next();       System.out.println("" +         meisai.getMeisaiBango() + "\t\t" +         meisai.getProductName() + "\t\t" +         meisai.getPrice() + "円");       // gokei = gokei + meisai.getPrice();
2003.08.07
1刷 066
2行目、3行目、10行目、19行目
2刷
import java.util.*; Public class Bumon {   public Bumon(String name) implements Party{     this.bumon = bumon;   }   public void add(Party party) {     parties.add(party);   }   public void hyouji() {     System.out.println("\n"name);     System.out.println(“-------------------“);     Iterator iterator = parties.iterator();     while(iterator.hasNext()){       Party party = (Party)iterator.next();       party.hyouji();     }    }   private String name;   private Collection parties = new ArrayList; }
import java.util.*; public class Bumon implements Party{   public Bumon(String name) {     this.bumon = bumon;   }   public void add(Party party) {     parties.add(party);   }   public void hyouji() {     System.out.println("\n" + name);     System.out.println(“-------------------“);     Iterator iterator = parties.iterator();     while(iterator.hasNext()){       Party party = (Party)iterator.next();       party.hyouji();     }    }   private String name;   private Collection parties = new ArrayList(); }
2003.07.31
1刷 070
List4-12の5行目、List4-13の18行目、List4-14の31行目
2刷
      + kihonkyu + ”円です。”);     private String name;
      + Kyuryo + ”円です。”);     }
    private String name;
2003.07.31
1刷 071
List4-15の下から2行目
2刷
    shain.standup(); }
    shain.standup();   }
}
2003.07.31
1刷 071
List4-16の9~11行目
2刷
      + getKyuryo() + "です。");   }   protected abstract public int getKyuryo();
      + getKyuryo() + "です。");   }   protected abstract int getKyuryo();   protected int getKihonkyu() {     return kihonkyu;   }
2003.07.31
1刷 071
List4-17の5行目
2刷
  }   protected int getKyuryo() {
  }   protected String getYakushoku() {     return "担当";   }
  protected int getKyuryo() {
2003.07.31
1刷 072
List4-18の1行目と9行目
2刷
public class Shunin implements Shain{   public Shunin(String name, int kihonkyu) {     super(name, kihonkyu); // 親クラスのコンストラクタを使える   }   protected int getKyuryo() {     int Kyuryo = getKihonkyu() * 2 + 1;     return Kyuryo;   } }
public class Shunin extends Shain{   public Shunin(String name, int kihonkyu) {     super(name, kihonkyu); // 親クラスのコンストラクタを使える   }   protected String getYakushoku() {     return "主任";   }
  protected int getKyuryo() {     int Kyuryo = getKihonkyu() * 2 + 1;     return Kyuryo;   } }
2003.07.31
1刷 072
List4-19の1行目と9行目
2刷
public class Bucho implements Shain{   public Bucho(String name, int kihonkyu) {     super(name, kihonkyu); // 親クラスのコンストラクタを使える   }   protected int getKyuryo() {     int Kyuryo = getKihonkyu() * 3;     return Kyuryo;   } }
public class Bucho extends Shain{   public Bucho(String name, int kihonkyu) {     super(name, kihonkyu); // 親クラスのコンストラクタを使える   }   protected String getYakushoku() {     return "部長";   }
  protected int getKyuryo() {     int Kyuryo = getKihonkyu() * 3;     return Kyuryo;   } }
2003.07.31
1刷 073
上から5行目
9刷
protected abstract publid int getKyuryo();
protected abstract int getKyuryo();
2005.04.14
1刷 074
下から6行目
2刷
publicにしていること
publicにしていることで
2003.11.12
1刷 095
5行目
「MJ200MW」
「MJ-400MW」
2003.11.20
1刷 106
下から1行目 107ページの上から6行目、108ページの1行目
5刷
図5-36のように 図5-37のように 図5-38のとおり
図5-35のように 図5-36のように 図5-37のとおり

図番号がずれていました
2003.10.07
1刷 115
下から5行目
2刷
この正直言うと
正直言うと
2003.11.20
1刷 158
下から2行目
2刷
という観点からすと
という観点からす
2003.11.20
1刷 261
上から5行目
11刷
例えば図A-3のように
例えば図A-4のように
2006.06.29
2刷 071
List4-16の下から7行目
3刷
} protected abstract int getKyuryou(); protected int getKihonkyu() { return kihonkyu; }
} protected abstract String getYakushoku();
protected abstract int getKyuryou(); protected int getKihonkyu() { return kihonkyu; }
2003.12.09

感想・レビュー

ショウジ さん

2016-09-07

第1部はわかりやすかったです。オブジェクト指向の概念的なものはわかりやすいです。第2部以降は少し難しかったな。先に読んだ書籍のほうが総合的にはわかりやすかったかも。

Masahiro Maeno さん

2017-01-01

2004年の古い本を今更読み終えた。 オブジェクト指向の概要をザックリと押さえよう、アジャイルプラクティスを取り入れようという内容なのでタイトルとのギャップがあった。 今でこそ当たり前になっている事が書かれているので共感できる部分も少なくないが、人に勧めていいか迷う存在。

issy さん

2015-06-25

前半読んだ。オブ脳が芽生えたかどうかはまだ実感ない。