CRUDのうちUPDATEがもっともシステムを複雑化する。更新には複雑なルールが伴うからだ。業務的に複雑なルールが存在するのは仕方ないこともあるが、システム、設計で複雑さを更に増さないようにしたい。UPDATEに着目し、その発生をできるだけ削ることによって複雑さをおさえるためには、まずデータモデルをそのように設計しておかなけれなならない。このイミュータブルデータモデルは、それを手助けする手法で、手順に沿って実施すればある程度のスキルのバラつきも吸収できるように組み立てられている。
getterとsetterは、クラスをみせかけのデータ構造に変える。で、そのデータ構造は独自のAPIをもつことになる。XとYの属性を持てば、getXとsetX, getYとsetYというように。で、これを使う人はこれらを使って業務をどう組み立てなくてはならないかを学ぶ必要がある。 まぁ、これはまだ良いのだが、データモデリングの観点からいうと、問題を先送りできちゃうことがよりマズいのだ。「Xが変わる可能性があるので、Xをセットできる必要があります。このオブジェクトをインスタンス化した後で変更する必要があるかもしれません。」というように。Xをセットするとして、その変更が業務上何を意味するのか? 全く考えていない。「Xがいつ変更されるのか、またどのような条件下で変更するのかを決めるのは、コードの他の部分に任せるつもりです。」
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く