2005年04月28日

Code Complete 第2版

   このエントリーをはてなブックマークに追加 Clip to Evernote
「Code Complete 第2版」の「第6章 クラスの作成」が@ITで公開されていますね。

第2版ということですが、第1版とは、大きく内容が変わっているような感じですね。C#についても言及されているようだし、これは、買うしかないかな。
でも、まだ読んでない本が、机の上にたくさん積んであるしなー。  

Posted by gushwell at 22:58Comments(0)TrackBack(0)

2005年04月27日

石井勝さんのご冥福をお祈りいたします

   このエントリーをはてなブックマークに追加 Clip to Evernote
尼崎の列車事故で、石井勝さんが亡くなられたそうです。オブジェクト倶楽部のメールマガジンで知りました。石井さんは、「まさーるのページ」というWebページを運営されています。僕が、本当の意味で、オブジェクト指向に開眼したのは、そこに掲載されていた「Open-Closed Principle と デザインパターン (1999/09/03) 」の記事を読んだのがきっかけです。きっと僕と同じような方がたくさんおられると思います。石井さんにお会いしたことはありませんが、僕にとっては、心の師匠と言っても過言ではない偉大な方でした。とてもショックです。ご冥福をお祈りいたします。


  
Posted by gushwell at 21:55Comments(0)TrackBack(0)

2005年04月25日

トレンドマイクロの件

   このエントリーをはてなブックマークに追加 Clip to Evernote
@ITの記事によれば、今回のトレンドマイクロの騒動の原因は、「Windows XP SP2の環境ではテストがまったく行なわれなかった」ということらしい。ちょっと信じがたいですね。これが、「Windows 98 の環境では...」ならば、分からなくもないけど、現在の最新の環境でのテストは必須中の必須でしょう。さらに最も多くのユーザが使っている最新のエンジンバージョンではなく、古いバージョンのスキャンエンジンでテストをしていたというのですから、さらに信じられませんね。
やはり、テストをおろそかにしてはいけませんね。

  
Posted by gushwell at 22:57Comments(0)TrackBack(0)

2005年04月23日

アクセスカウンターつけました

   このエントリーをはてなブックマークに追加 Clip to Evernote
忍者TOOLSのサービス「よろづカウンター」を使って、アクセスカウンターを画面左上につけてみました。とりあえず、アクセス 0 から開始します。
アクセス数が少ないのがバレてしまうけど、まあいいか。  
Posted by gushwell at 10:01Comments(0)TrackBack(0)

2005年04月22日

StackOverflowExceptionとtry-finally

   このエントリーをはてなブックマークに追加 Clip to Evernote
StackOverflowExceptionをどこまで考慮すべきなのだろう。
ItMediaの特集:スレッドの落とし穴
によれば、StackOverflowException が発生した時には、finally節は実行されないのだそうです。試しに
try {
...
} finally {
...
}

とし、tryから呼び出すメソッドで無限再帰にしてみたら、確かにfinally節を実行してくれませんでした。

ただ、
try {
...
} catch (System.StackOverflowException overFlowExcept) {
...
} finally {
...
}

とすれば、例外をキャッチし、その後finally節が実行されます。

ということは、StackOverflowException を意識した場合、try-finally は使えないことになってしまいます。
全てのコードで、try-catch-finallyを使うのは、余りにもコストが掛かるし、現実的ではありません。

DOSのころは、この例外に悩まされたこともあったけれど、最近は、stack領域も大きくなったので、この例外に、しばらく遭遇したことはありません。やはり、「finallyは必ず処理される」を前提に組むのが妥当かな?
  
Posted by gushwell at 23:31Comments(0)TrackBack(0)

2005年04月21日

implicit explicit

   このエントリーをはてなブックマークに追加 Clip to Evernote
implicit explicitというキーワードを使えば、独自に型変換機能を実装できます。
具体的例を示します。これは不快指数を扱うクラスです。
public struct DiscomfortIndex {
private double _index;

public DiscomfortIndex(double temperature, double humidity) {
_index = CalcIndex(temperature,humidity);
}
public DiscomfortIndex(double index) {
_index = index;
}

public double Index {
get { return _index; }
}

private static double CalcIndex(double temperature, double humidity) {
return 0.81 * temperature +
0.01 * humidity * (0.99 * temperature - 14.3) + 46.3;

}
public override string ToString() {
if ( Index <= 55 )
return "寒い";
if ( Index <= 60 )
return "肌寒い";
if ( Index <= 75 )
return "快適";
if ( Index <= 80 )
return "やや不快";
if ( Index <= 85 )
return "不快";
return "暑くてたまらない";
}
public static explicit operator DiscomfortIndex(double index) {
return new DiscomfortIndex(index);
}

public static implicit operator double(DiscomfortIndex di) {
return di.Index;
}
}

見て欲しいのは、最後の2つのstaticメソッドです。これにより、以下のようなコードが書けるようになります。
DiscomfortIndex di = (DiscomfortIndex)53.5;

このキャストにより、explicit で指定したメソッドが走ります。
また、
double n =  di;

で、implicit で指定した メソッドが走ります。
ただ、よっぽど上手く設計しないと、分け分からないコードになりそうですね。使い道はかなり限定されたものになると思います。

ちなみに、implicitは「暗黙の」 explicitは「明示的な」という意味だそうです。  
Posted by gushwell at 22:34Comments(0)TrackBack(0)

2005年04月19日

Visual Studio 2005のβ2が公開

   このエントリーをはてなブックマークに追加 Clip to Evernote
米国では、Visual Studio 2005のβ2が公開されたようですね。ということは、日本語版も、もうすぐ公開かな。
ベータ2版で開発したアプリケーションでも正式な製品として販売可能とする
ライセンス「Go-Live」を、Visual Studio 2005に適用するということですから、かなり品質は高いものになっていそうで、期待が持てますね。

それと、製品名から .NET が消えたんですね。つい最近まで知りませんでした。  
Posted by gushwell at 19:16Comments(0)TrackBack(0)

2005年04月18日

読者、500名突破

   このエントリーをはてなブックマークに追加 Clip to Evernote
「C#プログラミングレッスン」の購読者数がとうとう500名を突破しました。バンザーイ\(^ ^)/
うーん、長い道のりでした。次の目標は600名ですね。
もう少しでポリモーフィズムの説明にたどり着きそうですし、クラスの説明も終盤に差し掛かったかな。
ただ、連載して思うのは、どの順番で説明するのが良いのかがなかなか難しいということですね。プログラム言語って、「これを説明するには、あれを先に説明する必要があり、あれを説明にするには、また別の説明が必要で...」と色々なことが関連していますから...  
Posted by gushwell at 23:20Comments(0)TrackBack(0)