<< 実践 ソフトウェア・アーキテクチャ : Spring MVC | main | 実践 Domain-Driven Design : Entity と Value Object >>

実践 ソフトウェア・アーキテクチャ : Spring DAO + iBatis

Web 側は、Spring MVC で基本構造を決めたとしよう。

DB 側は、 Spring DAO で基本構造を決める。 Data Access を抽象化したインタフェースで、データアクセスの実装は O-R マッパーを使う。私たちの場合は、 iBatis を使っています。

データアクセスは、 MVC に比べれば、画面遷移とかセッション管理とかの問題がないので、ソフトウェアの構造としては単純。 また、 MVC の Contoroller のように、コードをごりごり書くような場所はないので、比較的安心。

もっとも、テーブル設計によっては、O-R マッピングがたいへんなことがある。
既存システムのテーブル設計だけでなく、新規に作成したテーブルも、問題のあるケースが多い。

原因としては、
・問題領域の分析が未熟
・オブジェクトの設計が脆弱
・データモデルとテーブル実装の知識・経験が不足
などが重なった結果でしょうね。

結果として、SQL 文でごりごりがんばったり、データアクセスオブジェクト内のコードでごりごりがんばる。

こういうごりごりコードがはびこりだすと、もう、理解不能で変更不能のソフトウェアにまっしぐら、ですね。

これは、レイヤ構造のアーキテクチャの問題ではありません。クラスの分析・設計の問題ですね。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< July 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM