2006-01-01から1年間の記事一覧

クラス図でモデリングしても実装に落とせないのは何でだ

3日前にこんなことを書いた。 http://d.hatena.ne.jp/tgk/20060804#1154714912 「問題領域の構造」と「責務の割り付け」を1枚の絵で表すことはできないのに、それをやろうとしていることが、UMLモデリングなるものの問題なのではないかと。 1枚のクラス図…

楽々ERDレッスンを読む(2) - 第2部 RDBMS総論

羽生氏の 楽々ERDレッスン (CodeZine BOOKS) のまとめ2回目*1。 第2部のポイントは、P-114からの「インピーダンスミスマッチの解決方法」。 その方法とは... P-115 お薦めしたいのがストアドプロシージャを利用することです。 では、ストアドプロシージャ…

業界内部の人がいちばん分かっていない

近所にでかいリフォームの会社の支店があって、入り口で赤井英和の等身大パネルがにこやかに「いらっしゃいませ」といってるのだけど、1階でガラス張りだから奥までまで丸見えで、壁に 「上がりこみ強化月間!」 「その日の弾(タマ)はその日のうちに上がり…

プランナの操作方法

あんまり本番環境で使える機能ではないが、 set XXXX to on set XXXX to offでプランナを操作できる。 PostgreSQLが納得いかないプランを吐くときに、setコマンドで結合方式を無理やり変えて実行してみると、 プランナが正しい判断をしていることを思い知る…

UMLモデリングの問題点(まだ仮説)

萩本順三 これだけでわかる!初歩のUMLモデリング―基礎から各種テクニックまで第一人者が伝授!! (@ITハイブックス) を読了。 わかったこと: 1. クラス図の作図には複数の目的がある クラス図というものは開発のフェーズの進行に伴って何度も描き直される。 問…

おれおれサブセット実装

サブセットを実装するとできなくなってしまうことに unique制約 外部キー制約 がある。例えば、社員マスタを正社員とパート社員というサブセットに分割したとして、 正社員(R) = { 社員ID, 社員コード, 名前, ... } パート社員(R) = { 社員ID, 社員コード, …

ドメインモデルと永続化

「オブジェクト指向言語で作るなら、オブジェクト指向で設計するのが一番いいのだ」みたいな話には、何か証拠があるのだろうか。 多態性をまったく使わないとか、極端なのは論外としても、「設計がよりオブジェクト指向的であれば、よりよい設計」ということ…

スマタ更新機能

納品資料にやばい typo をしていた。 ×: スマタ更新機能 ○: マスタ更新機能 発送する前に見つかってよかった。

「箱」理論について

問題作 箱―Getting Out Of The Box を図書館で借りて読む。 自己啓発セミナーの会社が書いた、セミナー宣伝小説。 これはいい。 どうして自分の周りには嫌な奴がいっぱいいるのか 嫌な奴がいやなことをすると、不愉快なのと同時に微妙に嬉しいのはなぜか ど…

データモデリングを覚えてからオブジェクトモデリングに興味を持つべき

UMLでオブジェクトモデリングする教科書として、豆蔵の人が書いた これだけでわかる!初歩のUMLモデリング―基礎から各種テクニックまで第一人者が伝授!! (@ITハイブックス) を読んでみる。 買ったときは何書いてあるのか分からなかったけど、T字形やってから…

ようやくオブジェクトモデリングの勉強を開始する

オブジェクトモデリングというのはまったく勉強していない領域だ。 何を言っているのか分からなくて嫌いなのだ。 何がこんなに分からないのか、冷静になって考えてみました。 何が理解できないか 私の知ってるオブジェクトモデリングというのは、 問題領域に…

使えるO/Rマッパーの見分け方

SQL以外直さなくていいはずなのに 某ファミレスの業務システムはこんなデータ構造を持っていた。 商品マスタ = { 商品ID(PK), 商品名, 単価 } メニューマスタ = { メニューID(PK), メニュー名 } メニュー別商品 = { 商品ID, メニューID } メニューマスタには…

Wordの目次のページ番号を振り直す

Wordドキュメントのページを追加削除すると、目次のページ番号がずれてしまう(ハイパーリンクは維持されたままだが)。 目次のページ番号を右クリックして「フィールドの更新」を選択 「ページ番号だけを更新する」をチェックしてOKを押す と操作すると、ペ…

間男の思い出

保育園児の時、ドラマか何かを見て「間男」という言葉を覚えた。 あんまり分かってなくて「旦那が居ない時に家に上がりこんで、旦那が帰ってきたら押入れに隠れる男」ぐらいの意味だと思っていた。 で、保育所の押入れに隠れて、「間男ー!」と叫んで飛び出…

郵便配達は二度ベルを鳴らす

ツタヤで「郵便配達は二度ベルを鳴らす」を借りて見た。 この映画、ジャック・ニコルソンが郵便配達のついでに間男をする話だとずっと勘違いをしていた。 実際には、郵便配達は出てきません。 エロ->サスペンス->純愛とジャンルを転々とする謎のストーリーの…

データ項目名が生産性の上限を規定する、の法則

データベースフィールド名にしろ、DTOのプロパティ名にしろ、フォームが送信するクエリパラメータ名にしろ、 同じものに違う名前をつけない 違うものに同じ名前をつけない の原則を破ると、プログラマが混乱してシステム開発の生産性が下がる。 同じ意味のク…

直送

仕入先から(自社倉庫を経由しないで)直接顧客に納品すること。

shutdown -h now でシステムが終了しない時どうする

Red Hat Enterprise Linux WS 3.0をリモートから落とそうと思って # shutdown -h now しても、何でかしらないけど落ちない。 syslog見ても "shutting down for system halt" とか書いてあるだけで、原因が分からない。 代わりに # poweroff したら落ちた。 s…

ネットにお返しをしなくてはならない

「返謝」という言葉があるそうだ。 ウチにころがってる本を見たら、こんな文章があった: 知恵や助けをもらったら必ず返すことです。私は「返謝で感謝が完成する」と思っています。 もらった同じ喜びを人に与える。優しさや知恵や助けをもらったら必ず返すこ…

ボイス・コッド正規形への分解は、結局どうすればいいのか(2)

2ヶ月前に書いた1回目の続き。 http://d.hatena.ne.jp/tgk/20060507 「第3正規形だが非ボイスコッド正規形」の表の正規化のしかた。 前回書いたことは 「第3正規形だが非ボイスコッド正規形」の表を教科書的に正規化すると、現実世界に存在する制約をデータ…

内包・外延・周延

周延とは何か。 SDIのサイトによれば、 http://www.sdi-net.co.jp/logico-07.htm 内包を使って正しい外延が形成されることを 「周延」 という。 とのこと。 では、内包・外延とはなにか。 論理学の用語らしいが、RDBに引き寄せて言えば、あるリレーションの…

実査

実査とは「現金や有価証券など、資産の現物を実際に数えて確かめること」。 これこそが経理の目的。経理の全ての仕事は、最後に実査することで完結する。 実査をしないなら、それまでのやった仕事の意味は全て吹き飛ぶ。...という考え方がある。

並行プロジェクトは問題ではない。環境だ

うちの会社をやめて独立した人に、久しぶりに会って話をした。 彼が言うには、ウチの会社の問題は、全員が複数のプロジェクトを並行して進めなくてはならないような、受注の仕方をすることにあるのだそうだ。並行プロジェクトは効率が悪いことを営業サイドが…

はてなブックマークのタイトル入力欄は編集しちゃダメ

いろんな人に迷惑をかけていたようだ...

DB Magazineの良記事

何ヶ月か前から、Struts + DI + O/Rマッパーのサンプルアプリケーションを集めている。 ソースがあるだけではダメで、なんでそういう設計になっているのか、作者の説明付きのものを探している。 で、DB Magazine 7月号の「DIコンテナをベースにしたアプリケ…

強烈な嫌味を言われたような気分

巻末に自己啓発セミナーの広告が載っているソース~あなたの人生の源は、ワクワクすることにある。という本を読んだ。 マイク・マクマナスという、そのセミナーの元締めの人が書いた本。 主張はきわめてシンプル。 心からやりたいことがあったら、今すぐに、…

速読しないで本を速く読む方法

高校のときの古典の先生が教えてくれた、本を速く読む(ていうか、速く読んだのと同じ効果を得る)方法。 買ったけど読んでない本が常に100冊以上あるようにする 読まなくてよいところは目を滑らせて飛ばす 本に折り目をつける これは高校3年間に教わったこ…

Googleで過去の検索結果を取り出す

daterange:オプションにユリウス通日なるもので日付の範囲を指定すると、その期間の検索結果を返してくれる。 こんな感じ: daterange:2451545-2453857西暦をユリウス通日に変換する方法は、知らない。

どのテーブルでも "oid" 列の検索ができる

PostgreSQLの場合、どのテーブルも oid 列を持っていて、selectで oid 列にアクセスできる。 select oid from xxxxoidを使えば重複行の一方だけ更新したり、削除したりできる。

String#replaceFirst より StringUtils#replace を使う

DAO層で発行しているSQLのトレースをしているのだが、パラメータが "?" のまま出力されると不便なので、"?"をバインドされるパラメータに置換してからSQL文を出力するデバッグルーチンを書いたら、 java.lang.IllegalArgumentException: Illegal group ref…