何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 591
  • 記事 - 18
  • コメント - 2182
  • トラックバック - 183
ニュース
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2009
サイト内検索
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

仕様は変わっても真理は変わらない()より:

var amount = this.Amount;
var unitPrice = this.UnitPrice;
var price = amount*unitPrice;

varを多用していますが、数量に単価を積算して金額を計算するコードです。

このコードは単純な「真理」です。

「真理」であるから型が何になろうが、このコードの意味する事は変わらず永遠です。


さて、「ソースコードに型を書く」という事は「ソースコード上に仕様のスナップショットを断片的に残していく」事に他なりません。

要するに型名をソースコードに明確に書くという事は、ソースコードにその時点でのAmountはdouble型であったという事のスナップショットを残したわけです。

「仕様は変わっても真理は変わらない」というのは、まったくその通りだなぁ、と思うです。コメントの付け方であった、あれ?どこで読んだか覚え違いしていた...「何をしているかではなく、何をしたいかを書く」に近いものがあるのかなぁ、と。

で、思うです。「this.Amount の型は?」

!!ああ!!ここで言われているのは、「var amount は、this.Amount の変更による影響を受けない。」なのか!!this.Amount が Int32 でコーディングされていて、それが「Int32 じゃ足りねーじゃん。Int64 にしよーぜ」ってなったとき、this.Amount だけ修正すれば、その他の所は修正(推論)されちゃうんだ!!this.Amount を使用している箇所を探し回って、修正しまくる手間が要らないんだ!!

this.Amount と同じことを求めるなら、Int32 と宣言したい。けれどもここでは、「請求金額は、単価に数量を掛けたもの」がわかればよい。「Int32 の範囲である請求金額は、それぞれ Int32 の範囲である単価に数量を掛けたもの」である必要はない、と。

また、ここのソースを読む場合も、型まで読む必要はない。この関数が、何を元に、何を出力するかさえわかればよい、と。

なるほど~!!

投稿日時 : 2007年12月31日 22:56
コメント
No comments posted yet.
タイトル  
名前  
Url
コメント