Mr.Tの場所

特攻野郎Aチームじゃないよー

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  253  : 記事  0  : コメント  3733  : トラックバック  52

ニュース

  • 性別:男
  • 猫1:まる
  • 猫2:もろ
  • 猫3:にゃん左部郎
  • タバコ:男は黙ってJPS
[わんくま同盟] C#, VB.NET 掲示板

書庫

日記カテゴリ

Mr.Tです、こんにちは。

 

CDと書くコードを扱う際に、CDの直指定というモノがある。

直に指定するのは、ユーザであるべきで、システムとしてあるべきではない。基本は、そう思っている。

なぜ、直指定が悪いのか?

それは、汎用性がなくなるためであり、CDの変更=プログラムの変更になるためだ。

だから、おいそれと直指定であることを選択はしない、はず。

 

プログラムの変更は、あちこちに分散している場合だと、そのあちこちで変更する必要が出てくる。

変更漏れがないのかチェックする必要がある。

それを変更したら変更した部分のテストの必要が出てくる。システムとして、きちんと稼動するかどうかのテストも

必要になる。

いったい、それをテストして、確認するのにどれほどの手間がかかるのか、わかっているのかわかっていないのか。

これから先、そのCDが使われなくなったらどうするのか?

似たようでちょっとだけ違う意味のCDが増えたときは、やはりIF文が増えるのか?

ごめんだ、いやだ、やりたくない。そう思うはずだ。

ビジネスロジックをコードに落とし込むときは、がちがち指定にするのが、わかりやすいかもしれないのだが、

かといって、データとプログラムを分離しないとメンテナンスが困難になる。汎用性がなくなる。一般化したい。

 

ユーザから、「こういう商品のときは、こうやってすれば簡単じゃないか」という要望があったりするが、そういう場合は

きわめて直感的に直指定の方法を提示する。しかしプログラマは、直指定をするのは結果的に非常に労力がかかることを

知っている(はず)なので、それを忌避し、一般化するような形にしていく。

 

そのため新たな管理CDや、フラグが増えたりする。また、それを修正したりするための画面などなどを考えてつくったりする。

結果、ユーザに対して「こういうフラグをつけたので、この画面で修正してください」

間違ってはない。

しかし、その管理CDは、業務内で広くつかわれるようなものではなく、たった一つの帳票で出力するためのものだったり

システムとして、果たしてそれほど必要なCDなのかというと疑問だ。こんなコードをつくるより、この帳票をつくるプログラム内だけで

利用するCDを書いておけば、それですむんじゃないかと思ったりもする。

「ああ、システム内のここだけしかそういう判定はしないんだけどなぁ」というものがあったりすると、「製品指定」「部署CD指定」なんてことに

したほうが、プログラムが直感的でわかりやすくなったりするケースもある。

 

「どうしてこれだけのことをするのに、こんなにお金がかかるの?私たちは、この帳票一つをつくって欲しいだけなのに、

こんなフラグや、CDのメンテナンスをしなくちゃならないのか、まったくわからない。この製品のときにこうすれば

いいだけじゃないか!」

 

これの私なりの答えはほぼ決まっている。

「直指定はわるくない。しかし、それは最終手段だ。奥の手。それをすることで、このシステムには、もう余裕がない。

それを使ってしまうと、その後は、墓場までフォローしなくちゃならないことを忘れないでくれ」

投稿日時 : 2007年11月19日 17:05

コメント

# re: コードを直に指定するということ 2007/11/19 17:38 774RR
compact disc ?

# re: コードを直に指定するということ 2007/11/19 18:30 Mr.T
> compact disc
>chdir
ちがwwww

まあ、書き方もわるかったですねww
「特定のグループに該当するものを識別するための文字列」とか書いちゃうと、
「チガウ!」「じゃあ、これもぉ?」とかいわれちゃいそうオイ

こういうときは、「製品コード」とかの直指定をして表現するとわかりやすいですねwww

# re: コードを直に指定するということ 2007/11/19 21:13 VOW
商品コードとかをソースに直書きで処理分岐したりとかってよくないよね。というお話?

# re: コードを直に指定するということ 2007/11/20 13:39 Mr.T
>商品コードとかをソースに直書きで処理分岐したりとかってよくないよね。というお話?

直書きする場合、商品コードだと変動が激しいものであるため、いちいち手書きするのはやはり避けたいです。

しかし、もう固定で考えてしまってもいいようなコードは存在すると思ってます。
なので、そのコードが変更されるかもしれない時期が、新しいシステムを考える時期だったりとか、リプレースの時期にさしかかるくらいのスパンであったりするなら、直指定であってもよいのではないかと。
#しかし劇薬ですよ、と。

Post Feedback

タイトル
名前
Url:
コメント