タグ

ブックマーク / watanabek.cocolog-nifty.com (4)

  • 妥当性検査をDB側に集約する - 設計者の発言

    テーブルフィールドの妥当性検査をどこに配置するかは、DBシステムの開発において重要な問題である。大別してプログラム側に置く流儀とDB側に置く流儀とがあるが、基的に後者が正しい。 なぜなら、どのプログラムで実行されるかに関わらず同じ検査がなされるとしたら、その仕様はフィールド固有の属性とみなされるからだ。たとえそのフィールドに対する妥当性検査を実行するプログラムが1個しかないとしても、そのように考えるべきである。フィールド固有の属性については、テーブル側の定義情報を読めばひととおりわかるようでなければいけない。以前にも書いたように「カエサルのものはカエサルへ、DBのものはDBへ」の原則で、フィールドの扱われ方に関する仕様はテーブル上に集約したほうがよい。 では次のような妥当性検査があったらどうだろう。「テーブルA上の関連レコードのフィールドBの値がナントカの場合、テーブルC上のフィールドD

    妥当性検査をDB側に集約する - 設計者の発言
    twainy
    twainy 2010/02/04
    フレームワークに妥当性検証機能を配置するというのは至極妥当な結論だとおもふ
  • 「動的参照関係」を手なづける - 設計者の発言

    テーブル関連の「参照関係」には「静的」なものと「動的」なものとがある。後者はどういうわけかデータモデリングの参考書の中でほとんど取り挙げられないが、一定以上複雑なデータベースシステムであればふつうに現れる。開発者にとっては避けて通れないデータ構造だ。 「動的参照関係」が何かを見る前に、通常の参照関係である「静的参照関係」を確認しておこう。たとえば次のようなデータモデルがあるとする。 このモデルは「テーブルC上に置かれたaをキーとしてテーブルAにアクセスし、A上の項目であるbの値を手に入れる」という操作手順を含意する。この関係はまた「Cのaは、テーブルA上で規定されている値をとらねばならない」、および「そのレコードを参照するC上のレコードが1件でも存在しているのであれば、[A]のレコードの削除は許されない」という制約をともなう(それぞれを更新制約、削除制約と呼んでおく)。以上は「静的参照関係

    「動的参照関係」を手なづける - 設計者の発言
    twainy
    twainy 2009/08/18
  • 少人数開発と「能力プール」 - 設計者の発言

    ■少人数プロジェクトが儲かる理由 開発案件の最終利益率とプロジェクトメンバー数には一定の相関がある。開発に関わったメンバーの数が少ないほど、一般に利益率は高い。実際に数字で調べてみたわけではないが、筆者の過去の経験からも確信できるし、そのように思い当たる人も多いだろう。 その理由は単純である。メンバーが多いほど、メンバー間の情報伝達のためのコスト(情報コスト)が飛躍的に増えるためだ。指示やいわゆるホウレンソウのための初期コストだけでなく、訂正や伝達ミスにともなうさまざまな後追いコストが、人数の多いプロジェクトほど大きくなる。メンバーが2人のときに情報コストが1だとすれば、(1人のときなら0)、人数に従って次のようにコストは増えてゆく。 2人  1 3人  3 4人  6 5人 10 :  : n人 n(n-1)/2 たとえこの事実が理解されていたとしても、これらのコストを考慮して工数積み上

    少人数開発と「能力プール」 - 設計者の発言
  • プログラマではなくテスターとして現場デビューする - 設計者の発言

    筆者はプログラミングは好きだったが、テストについてはずっと苦手意識があった。プログラムがそれなりに完成してしまうとそれで満足してしまって、さっそく次のプログラムにとりかかりたくなる。結局、システムテストの段階でハデにバグが見つかってどれだけ周りに迷惑をかけたかわからない(今思い出しても冷や汗が出る)。「自分に代わってテストだけをやってくれる要員」がいてくれたらと気で願っていた。 だから、1年前にある小さなソフト開発企業で、「新人をまずテスターとしてみっちり仕込むようにしている」と聴いたときは感心した。その発想は考えれば考えるほど合理的かつ発展的だ。筆者なりに肉付けした形で紹介したい。 ◆新人は現場のお荷物である 多くのソフト開発企業での新人教育が何から始まるかというと、大学の一般教養課程のような「コンピュータ概論」だったりする。その後に「ソフトウエア分析・設計」とか「プログラミング」の学

    プログラマではなくテスターとして現場デビューする - 設計者の発言
    twainy
    twainy 2006/01/08
    新人教育も「テストファースト」。なるほど
  • 1