PoEAA Preface

PoEAAデザインパターン勉強メモ

まえがきofまえがき

  • エンタープライズアプリケーションは本質的に複雑

    • 例: バックエンド賃貸システム

      • 賃貸同意書がさまざま異なる

        • 契約を勝ち取るためにあれこれ変えるから
  • この本は、複雑性を御するための設計思想を、パターンとしてとらえる出発点
  • 2部構成

    • 1部: 説話

      • 最初から最後まで読んで、視点を広げてね
    • 2部: パターンのカタログ

      • 端から端まで読む必要なし
      • リファレンスとして使ってね
  • Enterprise Applicationの例

    • 予約システム
    • 会計システム
    • サプライチェーンシステム
    • その他、ビジネスを支えるやつ
  • そうじゃないやつの例

    • 組み込みシステム
    • 制御システム
    • 電信システム(テレコム)
    • 業務効率化システム
  • Enterprise Applicationは特有の困難と解決法があり、それを本書では扱っている
  • 他のアプリケーションについては守備範囲外。POSAとか読んでね
  • 本書のトピック

    • エンタープライズアプリケーションの層分け
    • ドメイン(ビジネス)ロジックの構築
    • Web UIの構築
    • メモリ上のオブジェクトとRDBとの紐づけ
    • ステートレスな環境における、セッション状態の取り回し
    • 分散システム化の基本原理
  • 本書で扱うパターンはあらゆる開発プラットフォームで有用だった

    • Smalltalk
    • C++
    • CORBA
    • Forte
    • J2EE
    • .NET
  • パターンのサンプルコードはJavaと、似てるからC#

    • 多くの読者が理解できそうだから
    • C++が読めればJavaも読める

      • 逆はNO
    • 筆者はOO信者
    • 別に一番好きな言語ではない

Who This Book Is For

  • EAを作るうえで、システムのアーキテクチャ上の問題の理解や、それについてのコミュニケーションを向上させたい人たち

    • プログラマ
    • 設計者
    • アーキテクト

      • 設計よりも上流工程の人
      • システム開発に必要な要件を定義し、それを実現するためのアーキテクチャを設計する技術者
  • 想定読者層は2分される

    • 自前で、要求が軽めのものを作ろうとしている

      • 本書で紹介するパターンはスタートライン

        • それだけでは足りないかもしれないが、有利なスタートを切れる
    • ツール(在りもののフレームワークとか)を使って、要求が重めのものを作ろうとしている

      • ツールの中で何が起こっているのかを知れる
      • ツールの提供するどのパターンを採用するかの判断基準
      • 例) ORマッパー
        「どうマッピングするか?」

        • 【補】Active Recordにしてレコード自体に振る舞いを持たせるか、振る舞いは一切持たせずにRepositoryに仕事させるか、みたいな話かしら
  • 自前で、要求が重めのものを作ろうとしているなら、在りもののツールの使用を検討したほうがいい

    • 自前フレームワーク開発に多くの工数を費やしてしまうことが少なくない

      • 本質じゃない
  • 本書の内容は別段新しくない

    • そもそも「パターン」とは、頻出する(=昔からある)問題を解決するためのもの
    • 新人が学ぶため
    • 詳しい人が他人に教え、コミュニケーションするため
    • 共通の語彙の提供

英語

  • win a deal

    • 契約を獲得する
  • stand the test of time

    • 長くにわたって称賛される
  • notion

    • A conception of or belief about something.
    • ある立場からの「見解」
  • compendium

    • A collection of concise but detailed information about a particular subject, especially in a book or other publication.
    • 大要
  • fancy

    • [verb] Feel a desire or liking for.
  • cogitation

    • The action of thinking deeply about something; contemplation.
  • cogitate

    • Think deeply about something; meditate or reflect.
  • reflect

    • [usually reflect on/upon] [no object] Think deeply or carefully about.
  • recurrence

    • The fact of occurring again.
  • bigot

    • A person who is intolerant towards those holding different opinions.
  • author

    • The writings produced by a particular author.
  • succinct

    • (especially of something written or spoken) briefly and clearly expressed.
  • heinous

    • (of a person or wrongful act, especially a crime) utterly odious or wicked.
  • colophon

    • A publisher’s emblem or imprint, usually on the title page of a book.