カテゴリー「-プログラミング ( 2008.04-06 )」の59件の記事

2008年6月30日 (月)

[.NET] Nullable 型の足し算

int? の足し算をするとどうなるでしょう?

[TestMethod]
public void TestMethod1()
{
  int? a = 10;
  int? b = null;
  int? c = 5;
  Assert.AreEqual<int?>(15, a + b + c);
  // 結果: Assert.AreEqual に失敗しました。<15> が必要ですが、<(なし)> が指定されました。
}

[TestMethod]
public void TestMethod2()
{
  int? a = 10;
  int? b = 20;
  int? c = 5;
  Assert.AreEqual<int?>(35, a + b + c);
  // 結果: 成功
}

ごらんの通りで、 加算する変数に一つでも null が入っていると、 結果も null になります。

また、 これだけでは分かりませんが、 null が出てきた時点で ( あとは、 何を足しても結果は null ですから ) 計算を打ち切るようです。 そのため、 テストカバレッジが 100% にならなくなったりします。

# たしかに MSDN には、 ぱっと見、 記述が無いようだけど。 わからない、 と言ってる間に、 上のテストコードくらい書けちゃうべ f(^^;

| | コメント (0) | トラックバック (0)

2008年6月27日 (金)

家の設計費とソフトウェアの設計費

注文住宅を建てるときのお値段。
もちろんピン・キリありますが、 まぁ普通レベルで坪60万円として、 建坪 33坪 ( 110m2 ) の家を建てると、 ざっと 2000万円です。

ところで、 2000万のうち、 設計費用は幾らぐらいでしょう?
だいたいの標準としては、 設計士 29人・日くらい掛かり、 100~150万円といったところなんだそうです。
※ 参考: 辻建設一級建築士事務所 - 標準業務人・日数
※ 実際には、 それでは高いと言われるのでしょうか、 一括請負の見積書の場合はそれよりかなり低い内訳金額が提示されることが多いようです。 ちなみに、 今の家を建てたとき、 たしか 50万円だったと記憶してます。

さて、 ソフトウェア開発のお値段。
業務用のアプリケーションをゼロから開発すると、10画面くらいのもので、 1500万円くらいです。
「へぇ~、 十数画面くらいのアプリと、 家一軒が同じくらいなんだ」 …と思うかもしれませんが、  内訳がまるで違います。

続きを読む "家の設計費とソフトウェアの設計費"

| | コメント (0) | トラックバック (0)

2008年6月26日 (木)

TDD で出来上がるもの

さかもと画伯曰く、 「TDDとTDLとは違う。」 …それでつらつら考えた。

TDD ( テスト駆動開発 ) で出来上がるもの。 っていうか、 成果物?。
# つれづれなるままに書くので、 いきなり信じてはいけません  f(^^;

・ クラスやメソッドに対する、 厳密な外部仕様書。 ( テストコードのことね )
※ ソフトウェアの仕様書として正確なのかどうかは、 保証されません。 f(^^;

・ クラスやメソッドに対する、 必要十分なテスト。
※ ソフトウェアテストの経験が浅い開発者が作った場合は、  保証されません。 f(^^;

・ 厳密な外部仕様書を過不足なく満たす、 製品コード。
※ テストカバレッジのことを理解していない開発者が作った場合は、 保証されません。 f(^^;

・ リファクタリングされた、 美しい構造。
※ ソフトウェアの美しい構造に造詣の浅い開発者が作った場合は、 保証されません。 f(^^;

…ん~っと、 とりあえずそんなとこ? f(^^;

続きを読む "TDD で出来上がるもの"

| | コメント (3) | トラックバック (0)

2008年6月24日 (火)

[.NET] Visual Studio 2008 ソリューションサンプル

こちらは MSDN に掲載されている、 Visual Studio 2008 用のサンプルアプリケーション。
VS2008 というより、 .NET Framework 3.0 / 3.5 の新機能を使ったビジネスアプリケーションのサンプルソースとチュートリアルです。

MSDN Home > MSDN イベント & セミナー > MSDN オンラインイベント > Visual Studio 2008 ソリューションサンプル

◆ このサンプルに出てくる、 新しい技術要素
アーキテクチャと各テクノロジーの説明・Silverlight 2.0
・ASP.NET AJAX
・WPF
・LINQ to SQL
・WCF
・WF

ダウンロードしてちらっと覗いてみたところ、 WPF では XAML にデータバインディングして、 ちゃんとコンバータも作って噛ませてありました。 (^^;

| | コメント (0) | トラックバック (1)

[VS2008] どんなテストでもカバレッジ

以前に、 手動テストのカバレッジを取るのための TestMethod を作る方法を書いたけど。 そんな必要も無かったらしい。

Scrabble.NET » Blog Archive » NUnitとVSTSのCode Coverageを連携させる

つまり、 vsinstr.exe で対象の dll / exe を指定しておき、 vsperfcmd.exe でカバレッジ取得の ON / OFF が出来る、 と。

| | コメント (0) | トラックバック (0)

2008年6月19日 (木)

手続き指向 と オブジェクト指向

Rくんの blog にコメント付けてから、 つらつら考えた。
# R氏、 Rさん と書くべきなんだけど。 ゆうきまさみファンとしては、 「Rくん」 以外は書きにくい f(^^;

構造化されたプログラム ( structured program --- 通常、 構造化プログラム と訳される ) って、 手続きを志向したプログラム ( procedure oriented program --- 通常、 手続き指向プログラム と訳される ) の一種だよなぁ、 と。
ただし、 その手続きは 「構造化されたプログラムの一般的な原理・原則」 ( structured program theorem --- 通常、 構造化定理 と訳される ) に則っていること、 という制限が付いてるけど。

だけど、 手続き ( procedure ) とプログラムって、 どう違うんだっけ…?

…で、 ようやく気が付いた。
構造化プログラミングでは、  プログラム = 手続き だし。
OOP では、 プログラム = オブジェクト じゃん。

続きを読む "手続き指向 と オブジェクト指向"

| | コメント (0) | トラックバック (0)

2008年6月10日 (火)

SQL Server 2008 RC0 出てます

SQL Server 2008 リリース候補 0
SQL Server 2008 オンライン ブック リリース候補 (RC0)

※ Visual Studio と繋ぐためには…
・ Visual Studio 2005 の場合は、Visual Studio 2005 Support for SQL Server 2008 RC0
・ Visual Studio 2008 の場合は、Visual Studio 2008 Service Pack 1 Beta
・ SQL Server 2008 RC0 Express には、 Visual Studio 2008 Express Edition with SP1 Beta
という組み合わせが必要らしいです。

第2四半期に RC を出す、 という公約は守られた…

…ん? RC '0' !?
ということは、 RC1, RC2 と続くわけで… f(^^;

| | コメント (0) | トラックバック (0)

2008年6月 9日 (月)

[C#] ネストした using 句でも、 ネストを深くしない方法

Microsoft Connect Feedback ID = 349656 より。

ディスカッション欄で Azulean 氏が答えておられるのですが、 using 句はこんな風に書いても OK だったんですね~ f(^^;
# 知りませんでした… orz

using (TextReader tr = new StreamReader("hoge.txt"))
using (TextWriter tw = new StreamWriter("moge.txt"))
{
    string line = tr.ReadLine();
    tw.WriteLine(line);
}

このように書いてから、 Visual Studio の自動フォーマットを掛けても、 インデントは変わりませんでした。 つまり、 using 句を何重にネストさせようとも、 インデントは 1ネスト分で済むわけですね。 (^^;

続きを読む "[C#] ネストした using 句でも、 ネストを深くしない方法"

| | コメント (0) | トラックバック (0)

MSDN フォーラムで、 カレンダーコントロールのアイディアを募集中

フォーラムには、 まだ何も書かれていないようですが、

ディベロッパー製品開発統括部 Blog - 「Calendar」と「カレンダー」
Published Friday, June 06, 2008 3:48 PM by DDJPNVS

ともかく、 日本の開発者が期待しているようなカレンダーコントロールが Visual Studio に入っていないということは認めざるを得ないと思います。 ホテルサイトの例だけみても、 日ごとに色分けしたり、 ○×のような情報を付け加えられることが期待されているはずですが、 「Calendar コントロール」 である、 現行の MonthCalendar  コントロールは、 そのような機能は提供していません。

(…中略…)

MSDN フォーラムの International Pack 専用フォーラム では、 日本の開発者の方々からの 「こんなものが欲しい」 「こんな機能が欲しい」 という声を募集しております。 特にカレンダーに関しては、 多くのフィードバックを期待しております。

…だそうです。

私は… WPF 用のカレンダーコントロールで、 日付の部分に Template を適用できればいいかな。 f(^^;

| | コメント (0) | トラックバック (2)

2008年6月 6日 (金)

[VS2008] オプション 「生成されたコードから結果を表示しない」 の挙動不審

コード分析のオプション 「生成されたコードから結果を表示しない」 って、 前々からどーもヘンじゃない? …と思ってたのです。
いいかげんフィードバックしてやろうと思って、 ちょっとマジメに調べてみました。

行き着いたところは、 MSDN ライブラリ

マネージ コードのコード分析プロパティ

[生成されたコードから結果を表示しない] チェック ボックスを使用すると、 サードパーティ ツールで生成されたコードからコード分析の警告を表示するかどうかを選択できます。

メモ :
コード分析のエラーおよび警告がフォームやテンプレートで表示される場合、 このオプションを使用すると、 生成されたコードからこのエラーおよび警告が表示されなくなります。 フォームまたはテンプレートのソース コードは表示することも保持することもできます。

続きを読む "[VS2008] オプション 「生成されたコードから結果を表示しない」 の挙動不審"

| | コメント (0) | トラックバック (1)

より以前の記事一覧