.NET

IronRubyでRubyGemsを利用するigemコマンドの実行

IronRubyをインストールすると一緒にIronRubyでRubyGemsを利用するigemコマンド(igem.bat)がインストールされます。 このigemコマンドはスタートメニューのIronRubyグループにあるIronRuby Command Promptを起動してコンソールから利用できます。 このigem…

IronRubyによる.NETとRubyの相互運用

今までのソフトウェア開発の経験の中でカスタマイズ要素や機器制御における機器構成のバリエーションあるいは開発で使用する各種シミュレータやデバッグツールなどで、振る舞いを変更できるように設定ファイルや変な外部DSLの様なものを作ったりして対応して…

Moles - .NETのモック・スタブフレームワーク

ユニットテストなどではテスト対象外の振る舞いをテスト目的に合わせるためにモックやスタブ等を作成することがあります。 .NET開発でこの様なモックやスタブを簡単に作成するフレームワークにMicrosoft ResearchのMolesがあります。 このMolesは以前に紹介…

契約駆動開発(CDD:Contract Driven Development)

Coplien氏とMartin氏の「Coplien氏とMartin氏、TDDとCDDそしてプロフェッショナルの定義について大いに語る。」の議論はとても面白いです。 二人の議論は平行線の様に見えますが実際の問題意識は共通しているように思います。 ただMartin氏の方が業界への期…

Code Contractsを使用した仕様記述の例(鶴亀算)

引き続きCode Contractsを使用した仕様記述と検証についてです。 試しに鶴亀算について仕様記述と検証を行ってみました。 はじめは簡単に考えていたのですが実際にやってみるとなかなか奥が深く思っていたほど簡単ではないことが分かりました。 そしてこの難…

Code Contractsを使用した仕様記述の例(ジャンケン判定)

Code Contractsを使用した仕様記述の参考としてジャンケン判定の仕様記述の例をあげておきます。 public enum Gesture { Rock, Scissors, Paper, } public enum Winner { Player1, Player2, Draw, } public class ScissorsPaperRock { public Winner Judge(G…

仕様記述言語としてのCode Contractsの利用

「Code Contracts(契約)の使いどころ - Jamzzの日々」に引き続きCode Contractsについて書きたいと思います。 ここまでの内容はソフトウェア本来の目的である仕様の実現という視点で品質と生産性を向上させるためにCode Contractsを契約による設計(DbC:De…

Code Contracts(契約)の使いどころ

「Code ContractsとPex - Jamzzの日々」に引き続いてCode Contracts(契約)の使いどころについて書きたいと思います。 Code Contractsで興味深いと思う点は契約の継承、特にインターフェイスやabstractのクラス(abstractのメソッド)に対する契約を記述で…

Code ContractsとPex

マイクロソフトのDevLabsで公開されている.NETにおける設計とテストにおけるテクノロジーであるCode ContractsとPexを使ってみました。 結論から言うとかなり使えそうでひょっとしたら開発スタイルを変え可能性があると思いました。 かなり奥が深そうでまだ…