Monthly Archives: 8月 2009

「オブジェクト指向入門 第2版 方法論・実践」 第13回(8月28日)

Posted on by 1 comment

参加者 今井(読み手)、青木、沼田(記)
範囲 pp. 152 – 165(最後の段落の手前まで)

パートD オブジェクト指向応用編:より良い方法の適用

第23章 クラス設計の原則

  • 23.4 アクティブデータ構造
    • 23.4.3 カプセル化と表明
    • 23.4.4 クラスインタフェース批評
    • 23.4.5 素朴な解決策
    • 23.4.6 状態の概念を導入する
    • 23.4.7 一貫性を維持するには:実現不変表明
      • 歩哨要素
        番兵のことだろう(原文ではwatchかsentryだったのだろうか?)
    • 23.4.8 顧客の視点
      • コード例のif文に出てくるafterはl.afterではないか
    • 23.4.9 内的な視点

「オブジェクト指向入門 第2版 方法論・実践」 第12回(8月25日)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)
範囲 pp. 145 – 152

パートD オブジェクト指向応用編:より良い方法の適用

第23章 クラス設計の原則

  • 23.3 クラスのサイズ:買い物メモアプローチ
    • 23.3.3 緩やかさと限定
  • 23.4 アクティブデータ構造
    • 23.4.1 連結リスト表現
      図23.5の2番目の要素から出力する参照を表す矢印の始点は属性rightを表すボックスとなるべきだと思う
    • 23.4.2 受動的なクラス
      p.149 class LINKABLE1[G]の属性rightの型は LINKABLE[G]ではなく LINKABLE1[G]となるべき、またはクラス名をLINKABLEとすべき。
      featureの右の{}は特性にアクセスできる顧客を制限する構文。feature{LINKED_LIST}は、その特性はLINKED_LISTとそのクラスの子孫だけが使用できることを表す(「7.8.2 顧客のアクセスを制限する」参照)。 
      p.150 クラスLINKED_LIST[G]の属性countの型はGではなく、おそらくINTEGER。
      P.150 下から7行目 改行されていないので少し分りにくかった
      誤植 P.151 17行目 new.put → new.put_right 
      誤植 P.151 22行目 j<=1 → 1<=j
      ループの構文については「11.12.4 ループの構文」参照 

「オブジェクト指向入門 第2版 方法論・実践」 第11回(8月21日)

Posted on by 0 comment

参加者 青木(読み手)、沼田、今井(記)
範囲 pp. 133 – 145

パートD オブジェクト指向応用編:より良い方法の適用

第23章 クラス設計の原則

  • 23.2 1つの特性に引数はいくつまで?
    • 23.2.1 引数の個数の重要性
      • p.133 下から2行目には「積分ルーチン」、p.135 7行目には「…微分方程式ルーチン」とあるが、このメソッドは積分と微分どちらだろう?
        → p.133が間違い。ODE:ordinary differential equation, 常微分方程式
    • 23.2.2 オペランドとオプション
    • 23.2.3 原則
    • 23.2.4 オペランドの原則から得られるもの
    • 23.2.5 オペランドの原則の例外?
    • 23.2.6 チェックリスト
  • 23.3 クラスのサイズ:買い物メモアプローチ
    • 23.3.1 クラスサイズの定義
    • 23.3.2 一貫性の維持

「オブジェクト指向入門 第2版 方法論・実践」 第10回(8月18日)

Posted on by 0 comment

参加者 今井(読み手)、青木、沼田(記)
範囲 pp. 121 – 133
パートD オブジェクト指向応用編:より良い方法の適用

第23章 クラス設計の原則

  • 23.1 ファンクションの副作用
    • 23.1.7 疑似乱数発生器:設計の練習
    • 23.1.8 抽象状態(abstract state)、具象状態(concrete state)
      • 抽象と具象は次のようにとらえればよい?

        抽象:顧客に見えている状態

        具象:クラスの中の状態

    • 23.1.9 方針
    • 23.1.10 反対意見
    • 23.1.11 許される副作用:例

「オブジェクト指向入門 第2版 方法論・実践」 第9回(8月14日)

Posted on by 0 comment

参加者 沼田(読み手), 今井(記)
範囲 pp. 104 – 120

パートD オブジェクト指向応用編:より良い方法の適用

第22章 クラスの見つけ方

  • 22.5 再利用
    • 22.5.2 クラスの知恵
      • 「Oodの土地」の”Ood”とは何?
        単に「オブジェクト指向設計の土地」のこと?
      • 「告解」(こっかい)とは何?
        告白2」に同じ。
        ゆるしの秘跡(ひせき)」の旧称。
        Yahoo!辞書 大辞泉より)
  • 22.6 クラスを手に入れるための手法
  • 22.7 本章のまとめ
  • 22.8 参考文献
  • 22.9 演習問題

第23章 クラス設計の原則

  • 23.1 ファンクションの副作用
    • 23.1.1 コマンドとクエリ
    • 23.1.2 副作用の形式
    • 23.1.3 参照透過性
      • p.115 中ほど 誤植
        『ガリバー旅行記』にでてくるのラピュタの

        『ガリバー旅行記』にでてくるラピュタの
    • 23.1.4 マシンとしてのオブジェクト
    • 23.1.5 オブジェクトを作成するファンクション
      • l.4 誤植
        これまで見た来たように、

        これまで見て来たように、
    • 23.1.6 クラスインタフェースのためのきれいなスタイル

「オブジェクト指向入門 第2版 方法論・実践」 第8回(8月11日)

Posted on by 0 comment

参加者 今井(読み手)、沼田(記)
範囲 pp.90-104

パートD オブジェクト指向応用編:より良い方法の適用

第22章 クラスの見つけ方

  • 22.2 危険信号
    • 22.2.7 混合された抽象
    • 22.2.8 理想的なクラス
  • 22.3 クラスを見つけるための一般的な発見的方法
    • 22.3.1 クラスのカテゴリ
    • 22.3.2 外部のオブジェクト:分析クラスを探す
    • 22.3.3 実装クラスを探す
      • p.94 22.3.3の7行目「CS 2」
      • ACMのカリキュラムのこと?

    • 22.3.4 暫定実装クラス
    • 22.3.5 設計クラスを見つける
  • 22.4 クラスの元となるそのほかのもの
    • 22.4.1 それまでに行った開発
    • 22.4.2 継承を使った調整
    • 22.4.3 分解できそうなものを評価する
    • 22.4.4 その他のアプローチからのヒント
    • 22.4.5 ファイル
    • 22.4.6 ユースケース
    • 22.4.7 CRCカード
  • 22.5 再利用
    • 22.5.1 ボトムアップの要素

「オブジェクト指向入門 第2版 方法論・実践」 第7回(8月7日)

Posted on by 0 comment

参加者 沼田(読み手), 今井, 青木(記)
範囲 pp.75-90

パートD オブジェクト指向応用編:より良い方法の適用

第22章 クラスの見つけ方

  • 22.1 要求仕様書を検討する
    • 22.1.1 名詞と動詞
        p76 下から5行目 誤植:復讐→復習
    • 22.1.2 無駄なクラスを避ける
    • 22.1.3 新しいクラスが必要か?
    • 22.1.4 重要なクラスを見逃すということ
    • 22.1.5 発見と拒絶
        p83 23行目 誤植:大規模な操作→大規模な捜査
  • 22.2 危険信号
    • 22.2.1 偉大なる過ち
    • 22.2.2 私のクラスは・・・を実行する
    • 22.2.3 命令的な名前
        p86 下から3行目 誤植:メインポート→インポート
    • 22.2.4 一つのルーチンだけから構成されるクラス
    • 22.2.5 未熟なクラス分け
    • 22.2.6 非命令クラス

「オブジェクト指向入門 第2版 方法論・実践」 第6回(8月4日)

Posted on by 0 comment

参加者 青木(読み手), 沼田, 今井(記)
範囲 pp.61-74

パートD オブジェクト指向応用編:より良い方法の適用

第21章 継承のケーススタディ:対話型システムにおける「Undo」

  • 21.4 実装の側面
    • 21.4.2 コマンドオブジェクトの前処理
      • p.62 中ほど 誤植
        commmands: ARRAY[COMMAND]

        commands: ARRAY[COMMAND]
      • commands@code などの@はどういう意味?
        commands.item(code)と同義語。(ref. 上巻10.4.4)
    • 21.4.3 履歴リストの表現
  • 21.5 実行取り消しと再実行のためのユーザインタフェース
    • p.66 下から2行目 誤植
      図21.8の

      図21.7の
  • 21.6 検討
    • 21.6.1 実装の役割
    • 21.6.2 小さなクラス
  • 21.7 参考文献
  • 21.8 演習問題
    • p.72 E21.8 1行目 誤植?
      任意の対話型システムでの仕様を目的とした

      任意の対話型システムでの使用を目的とした