PoEAA 3rd

PoEAA読書会 第3回に参加した。まとまりなく書いてみる。

* 発表資料はこちら

### 駆け込みで前夜に資料作成 前夜1:00am-6:00amぐらいで3章のサマリをPPTで作成し、持参&発表。 直前に駆け込みで作ったこともあり、内容はイマイチだったけど、議論のベースとして機能したので結果オーライ。ということにする。んで、質は量に転化する。ということにする。(これまでも、これからも)

あ、資料作成の際には昔WOMeetingで使った資料を流用したりした。継承の実装方式の図や、RDBMSのイメージとかEnterpriseObject(笑)とか。ちょっと手を抜けた。

### 進め方など 当初、15?25分程度でさくっと進めるつもりだったのだけど、実際始めてみると、 発表しつつ、議論しつつな感じで進めたほうがよさそうな印象を受けたので、そうすることにした。 自分が2部以降をキチンと読み込んでいなかったため、議論についていけなかったり、議論の整理がうまくなかったりした部分があったのは反省点。でも、読み込む時間がないのよねー。あと、情報を体系化して、脳みそへ定着するための時間が。

議論に参加してくれた方、感謝。いろいろ話して、楽しくやりましょう。 特に、ひがさんには感謝!感謝!有益なネタ振りをたくさんしてくれた。しかも、カナリ読み込んでるし! つーか、発表者のくせしてあまり読み込んでなくてごめんなさい。たたき台として存在する意味があると自分に言い聞かせる。

### UnitOfWork EOEditingContext! EOF最強! 楽○○○○○○御が実質的に機能しない点を除いては!(苦笑)

### 外部キー制約、参照整合性 外部キー制約付けない派が大多数。なるほど。確かに実務上は付けないほうがよさそうではあるのだけど。 ちょっと意外ではあった。

### 依存 依存概念をCASCADE ON XXX制約でカバーできるかどうか?については良くわからない。 EOFの場合、(確か) 親Objectと子Objectのリレーションシップを切断すると、子Objectが削除されたはず。 というわけで、Objectの世界で依存概念の意味をどこまで規定するかに依存すると思われる。 ただ、たいていの場合、CASCADE ON XXX制約で十分な気がしている。

一瞬、ER図にも依存概念を導入したほうが良いかなと妄想した。うーん、IDEF1xとかだと入ってそうだな。でも、あれを理解する気にはなれない・・・。ま、いいや。

### EOF/WebObjects 発表が終わって、ogijunさんとボソボソ。 やっぱ、EOFはいけてるねーとか。

O/Rマッパーに必要な概念のほとんどを実装しているからねぇ。 Apple買収後も、XML対応とかいろいろ適切な方向に進化してくれたら面白かったのに!とか思う。

あと、Webフレームワークがステートフルな方向に行くのなら、WebObjectsフレームワークも・・・って、完全に脱線だなコリャ。

ちょっとWebobjectsに興味をもたれたかたは、ここらへんとか、suzukiさんの有益な資料(spice-of-life.net – WebObjects)などをごらんくださいまし。

### 概念をビジュアル化することの効能 余談だけど、概念を脳みそへ定着させるために発表スライドをつくるというのは結構有益。 ソフトウェアをビジュアル化する作業は、モデリング技術の延長上にある。複雑なもの・見えないものをある側面に着目して、表現することに相当する。短期的・長期的に有益。 というわけで、誰か、次回のサマリ担当に立候補してくれないかなーと。

* ポジションペーパ

[…]

Russian Doll と Salami Slice

スキーマ設計とクラス図 | ノート

なるほど。興味深い。

同じことを書くのに、ちょっと自由度があるのがイヤンなかんじもするな。

エラーの分類とエラーハンドリング戦略

エラーの種類を簡単に。

* ビジネスロジックエラー(代替フロー) * システムエラー * 入力エラー * プログラミングエラー * 内部状態不整合エラー * (他にある?)

### ビジネスロジックエラー * ユースケースにおける、いわゆる代替フロー。

* 残高1000円なのに、2000円引き出そうとしたときの処理フローに相当 * 機能定義・論理設計・基本設計段階で洗い出される必要がある。 * 機能の一部として、エラー発生時の処理が明確に洗い出されている必要がある。 * アプリケーションは、エラー内容に応じた処理を実行するように実装されている必要がある。

### システムエラー * 動作環境などが正常に動いていない場合のエラー

* ATMシステムで、ATMとバックエンドシステムのネットワークが疎通していない場合や、バックエンドシステムにおいて、RDBMSが動作していない場合などに相当 * 基本設計・詳細設計段階で洗い出されている必要がある。 * 要件にも依存するが、致命的エラーであることをユーザーに通知できれば良い。エラーの種別毎に処理を行うなどは求められないケースが多い。 * 適切に不具合情報を入れ込んだロギングが重要。 * 2重化など、システムエラーが起こる原因自体を排除するor発生頻度を低める取り組みについては、ここでは触れない。

### 入力エラー * いわゆるvalidationエラー。入力したデータが、まずい場合

* (機能定義・)論理設計・基本設計段階で洗い出される必要がある。 * 金額入力欄にアルファベットが入力された場合など * (ビジネスロジックと同様?)

### プログラミングエラー * API・クラスライブラリ・フレームワーク・ユーティリティクラスを適切に使用していないために生じるエラー。

* 基本的に、詳細設計・プログラミング作業中にしか発生しない。 […]

ホリエモンの錬金術

dkirokuでURLを見かけたので再度よむことにしてみた。

サマライズもしくは気になった箇所を抜粋する。 そして、自分の勉強のため出てきた用語をまとめてみる。

### [ホリエモンの錬金術 ?4 (フォレスト・コンサルタンツ – 山根治blog)](http://consul.club.or.jp/item/275)

ホリエモン・マジック・ショーの3つのトリック

* 光通信とかグッドウィルとか大和証券SMBCを仲間に引き入れた * 通算3万分割にも及ぶ株式分割と、2回にわたる公募増資 * 決算数字のお化粧

決算数字のお化粧について

* 正体不明の仕掛品(565百万円の仕掛品; 第9期(平成16年9月期)単体;経常利益(単体)1,410百万円の38%に相当) * 第8期に計上されていた貸倒引当金の大幅取り崩しによる、特別利益(貸倒引当金戻入額)の計上(141百万円) * 46億円余りの無形固定資産の計上(第9期の連結B/S;46億円)と、その大半が過年度には経費として発生年度に一括処理 * 資産性に乏しい企業の買収による、営業権(1,121百万円)と連結調整勘定(2,408百万円)の計上 * とか

### ホリエモンの錬金術 ?6 (フォレスト・コンサルタンツ – 山根治blog) > 堀江さんは平成8年4月に、有限会社オン・ザ・エッヂを設立し、代表取締役に就任します。出資金600万円は、有馬晶子さん(現、株式会社クリアキューブ代表取締役)の父有馬純一郎さん(当時、ブルテルインターナショナル株式会社代表取締役)からの借入金で賄ったようです。社員は、堀江貴文、有馬晶子、有馬純一郎の三名。

当時は、1株5万円。

### ホリエモンの錬金術 ?7 (フォレスト・コンサルタンツ – 山根治blog) > 一株300万円という異常に高い価格で第三者割当増資を行なったのです。平成11年9月4日に、株式会社光通信へ150株、同年9月30日に、株式会社グッドウィル・コミュニケーションへ50株。会社には、それぞれから450百万円(300万円×150株)、150百万円(300万円×50株)入金。資本として入ってきた6億円は、資本金と資本準備金に半分ずつ振り分けられています。

### ホリエモンの錬金術 ?8 (フォレスト・コンサルタンツ – 山根治blog) > この時に3億6千万円(300万円×120株)という購入資金は実際には動いている形跡がありませんので、この取引そのものが架空のものである可能性が高いのです。 > […]

XAエミュレート対象となるリソースマネージャの扱い

from S2.2.9 リリース – koichikのひとりごと > 例えば XA に対応した Oracle (Oracle が提供する XADataSource を使用する) と対応していない HSQLDB (S2 が提供する XADataSource で XA をエミュレートする) を同一のトランザクション中で更新する場合,最初に HSQLDB からコネクションを取得することで,二つの DB がどちらもコミットされるかどちらもロールバックされるかという原子性 (ACID の A) が実現できます.

なるほどーそういうことか。理解できました! ありがとうございます! koichikさん。

### 昨日の質問 昨日のJ2EE勉強会(仮)で、以下の質問をさせていただいた。(若干、わかりやすく整理しています。昨日はもっと要領を得ない質問な感じ(苦笑)でした。)

> S2JTAの枠組みの中で、XA非対応のリソースマネージャを扱う場合、XAをエミューレートするラッパ経由で扱うことになるようだが、その場合、 > XA非対応のリソースマネージャ1つがJTA配下のトランザクションに参加している場合、1フェーズコミットプロトコルを使用する > XA対応のリソースマネージャ1つの場合、通常の1フェーズコミットプロトコルを使用する > XA対応のリソースマネージャ2つ以上の場合、2フェーズコミットプロトコルを使用する >

> という理解でよいか?

なるほど、S2JTAの実装はLast Resource Commit Optimizationの機構を持っているため、 1番目、2番目の内容は正しいようだ。ただ、koichikさんの日記にかかれてあるように、

> Last […]

J2EE勉強会(仮)

J2EE勉強会(仮) – ひがやすを blog

参加してきた。

内容は、

* Seasar2のJTA実装、コネクションプール実装をソースコード中心に追っかける * JSFの特徴・アーキテクチャをPPTで説明する

でした。説明はすべてひがさん。お疲れ様でした&ありがとうございました。

[…]

リアルタイム・システムの構造化分析 リアルタイム・システムの仕様書作成手法

* リアルタイム・システムの構造化分析 リアルタイム・システムの仕様書作成手法 – 電脳書房在庫目録

昔から読んでみたく思っていたのだけど、いまさら・・・・って感じだな。高いし。

なぜ読みたいと思っていたのか?というと、分析のためのツールキットはたくさん持っていたほうがよいと考えるから。 コンサルタントが経営分析などのテンプレートをたくさん用意しているように、 設計者・分析者はソフトウェアの分析のためのある程度のツールキットを用意すべきと考えるから。

ほんたったがほしいがいじんさん

仕事を終えてから、明日のズラ会に備えてファミレスでJava Transaction Processingを読んでいた。 いつもと同じように、X31と書見台:ほんたった、ポストイットがお供。 そして、本の内容や目次、不明な用語などをExcelにまとめつつ、読み進めた。

この本の対象はトランザクションという分野であるため内容が多少概念的だし、英語で書かれているから、読むのにちょっと時間がかかる。今日は無理に読み進めることはせず、JDBCとXAResouceの関係、JTAの代表的なインタフェースであるUserTransaction, TransactionManager, Transactionの関係と、UserTransactionとTransactionManagerの相違点に触れている箇所を抜粋して読んだ。 これらの位置づけを大体理解したので、明日のズラ会で不明な点、理解があいまいな点がクリアになることを期待しようかなと。

さて、本題。

自分は、よくファミレスで本を読むのだけど、そのときは、

* Thinkpad X31をたたきながら、 * 本を書見台:ほんたったに載せて、 * ポストイットを手元に置いて

という感じでやっている。結構大掛かりな感じであって、ちょっと目立つ。でも便利なので、気にしないことにしている。

当然、今日もこんな感じでやっていた。

今日は遠くから熱い視線を感じる・・・。と思ったら、遠くの席の外人さんにチェックされているようだ。 そんなに物珍しいかね? ま、気にせずに本を読んでいたのだけど、2時になったので帰宅することにした。 レジに向かう途中、その外人さんが近寄ってきて、たどたどしい日本語で・・・

Java Transaction Processing

さて、土曜日までにどこまで読めるかなー

構造化分析・プログラミング – ひがやすを blog

構造化分析・プログラミング – ひがやすを blog

先に取り上げた、いがぴょんさんのエントリに対する ひがさんのコメントと、実装スタンス。

> OCPを守るために、くーすでどうしているかというとロジック(メソッド)は常にインターフェース経由で呼び出すようにします。あるロジックが別のロジックを呼び出す必要があった場合、DIコンテナによってロジックオブジェクトをDIしてもらい、それを利用するのです。

文章だけだと、やっぱりわからない部分が残る。しょうがない。

ただ、外から見ていると、なんとなく、立ち位置や価値観が違うところもあれば、単に表現上の問題でミスマッチがおきているところもあるように感じられる。 もちろん、これは単なる勘だけど。

### 感謝したい。 あらためて思うのだけど、こういうやり取りを直接読めること、そのものに感謝したい。

少し前は、第一線で活躍する一流デベロッパの意見を聞くことは非常にむずかしかった。 イマイチ信用してよいのかどうかわからない専業ライターさんと、何をたくらんでいるのかわからないエバンジェリストもしくは社長さんぐらいからしか、情報を得ることができなかった。

われわれは幸せな時代にすんでいる。 第一線で活躍する一流デベロッパのソースを読み、開発に対する考えを聞くことができるのだから。