タグ

ブックマーク / masuda220.jugem.jp (5)

  • テーブル設計 データモデリングのエッセンス(1) | システム設計日記

    何回もデータベースを設計してきた。多くの失敗をしながら。その中から、こうすれば良い設計ができる、というデータモデリングやデータベース設計のノウハウが少し見えてきた。その要点をまとめてみる。 テーブルの役割を一つにする クラス設計と同じで、テーブルの役割は単純にすべきである。 関心のある情報のグループごとに別のテーブルに分ける。 例えば、商品にはさまざな属性情報がある。 ・仕様(色、サイズ、機能など) ・価格や割引ルール ・仕入れルート ・原価 ・在庫数 ・在庫場所 ・販売開始/販売停止の状態や予定日 など。 「商品」という一つの「なんでもテーブル」に情報を詰め込んで、アプリケーションプログラムのほうで、さまざまな検索条件を使い分けるのは、典型的なアンチパターン。 それぞれの情報ごとに別テーブルを用意して、ひとつのテーブルは、一つの関心だけを管理する設計が基。 役割が一つのテーブルの特徴

  • ドメインオブジェクトとテーブルのマッピング | システム設計日記

    Repositories パターンは、ドメインモデルを、純粋にドメインの関心事だけに保つモデリングテクニック。 ドメインオブジェクトのモデリング、設計・実装は、シンプルで、わかりやすくなる。 でも、永続化の実装がシンプルになるわけではない。 特に、ドメインオブジェクトとテーブルのマッピングは、悩みどころですよね。 マッピング自体は、iBatis とか、O-R マッピングのフレームワークを使えば、それなりに実装できる。 でも、ドメインモデル(オブジェクトモデル)とデータモデルの、モデルの不一致は O-R マッピングツールが解決してくれるわけではない。 既存データベースと無理やりマッピング Repositories パターンを使い始めたころは、既存のデータベースを使うアプリケーションだった。 ドメインモデルとデータモデルが、かなりギャップがあったけど、iBatis SqlMap でがんばった。

    kahki
    kahki 2014/06/19
  • 実践 ソフトウェア・アーキテクチャ : サンプルと参考書 | システム設計日記

    私がソフトウェアアーキテクチャを興味を持ち始めた時、ソースコードを読んで、参考書を読みあさりました。 ソースコード 現場の業務アプリケーションやオープンソースのソースコードを読んで学んだことはたくさんあります。ただ、全体像をつかむのが大変、どちらかというとアンチパターンが多い、など最初の勉強の材料としては適切ではないと思います。 規模は小さいけど、しっかりした構造のアーキテクチャの勉強になるサンプルソースコードを2点、あげておきます。 基通りの3層構造で、また、どうやって作っていくかのプロセスの説明付きです。 Spring MVC step by step 3層(Web,Domain,Repository)構造の Web アプリケーションのフルセットのサンプル。 Spring MVC のわかりやすいガイドでもあります。 Internet Bookstore ICONIXプロセスの解説

    kahki
    kahki 2014/06/04
  • オブジェクト指向プログラミングの教え方? | システム設計日記

    技術者仲間で話していたら、4月入社の新人に、オブジェクト指向プログラミングをどうやって教えたらよいか?、という話になった。 想定している言語は Java。 ■動物・犬・モデルの説明から ■基用語の説明から:「カプセル化とは」「継承とは」... ■サンプルコードから: System.out.println( "hello world" ) ... どのパターンでもうまくいかなかったので、今度の新人研修では何か工夫したいね、という話。 結論から言うと「これだ」というアイデアがでたわけではないが、話の内容は、いろいろ興味深かったのでメモ書き。 Java はオブジェクト指向の言語なの? Java は、ある意味 C言語の仲間。ある側面はほとんど同じ言語。 ・int, long (プリミティブなデータ型) ・配列操作 ・if/for/return ここだけ見れば、C言語のまま。つまり命令型、手続き

  • システム設計日記

    システム設計日記を検索 プロフィール masuda220 リンク システム開発日記(実装編) 有限会社 システム設計 twitter @masuda220 selected entries イベント案内:オブジェクト指向設計の勘所 (08/21) recent comment Smart UI が優れている? ⇒ masuda220 (03/10) Smart UI が優れている? ⇒ kagehiens (03/09) オブジェクト指向プログラミングの教え方? ⇒ masuda220 (12/05) オブジェクト指向プログラミングの教え方? ⇒ ZACKY (12/04) 「オブジェクトの設計力」 スキルアップ講座やります ⇒ masuda220 (08/14) 「オブジェクトの設計力」 スキルアップ講座やります ⇒ kompiro (08/14) 「オブジェクトの設計力」 スキルアップ

  • 1