conundrumです。 るびきちさん、ありがとうございます。

>def square(x)
>   raise TypeError unless Numeric === x
>   x**2
>end

=== って、こういうふうにも使えるんですね。
irb で試してみました。x  === Numeric だとうまくいかないんですね。

>typoを防ぐには、エディタのdabbrevを使うのがおすすめです。dabbrevという
>のはdynamic abbreviationの略で、編集中のバッファ及び全てのバッファから
>接頭辞にマッチするものを補完してくれるすばらしい機能です。日本語では
>「動的略称展開」です。dabbrev機能がないエディタをお使いでしたら、いっ
>そのことエディタを乗り換えてしまったほうがいいです。

おすすめのエディタがあれば、紹介していただけませんか。
ひょっとして自分が使っているエディタの機能を知らないだけかもしれませんけど。

自分は、主に EmEditor を、
必要と用途に応じて 秀丸, K2Editor, TeraPad, MkEditor などを使い分けていま
す。
(それぞれ、いいところとそうでないところがあって...)
vi系, emacs系がキライというわけではなく、なかなかはじめるきっかけがなくて。
(xyzzyはインストールしている)

>さらに、Test::Unitを使って単体テストを書くことです。メソッド単位でテス
>トを書いてしまえば、typoしてしまったときテストレベルで検出できます。お
>まけに徹底した自動テストによって自分のプログラムの品質が飛躍的に向上し
>ます。テストを書くのは、メソッドの中身を記述する前がおすすめです。幸い
>Rubyはコンパイルなしにさっと実行できるので、TDD(Test-driven
>development「テスト駆動開発」)をしやすいです。

おっしゃるとおりですね。
ある程度の規模のコードには test/unit を使います。
遠回りなようで、その実、TDDしない場合に比べて、時間的にさほど大差なく
完成できるなぁという実感は、あります。
最近「るびま」で send という技を発見して、
private method もきちんとテストできるようになりました。

>単体テストを記述することを面倒だと思わないでください。人手を媒介せずに
>完全に自動化されたテストを記述するのは、慣れるまでは大変かもしれません。
>しかし、テストにかけた時間はそのプログラムのメンテナンスにかかる時間の
>減少という形で返ってくるのです。

激しく同意。
面倒がらずに、ちゃきちゃきテストコードを書くよう精進します。

しかし、ま... 延々と悩んだバグの原因が typo だったりすると、ものすごく疲れま
す。
algorithmic なバグの10倍くらい疲れる。
はやくその dynamic なんちゃらの恩恵にあずかりたいことだなぁ。

conundrum / hotmail.co.jp

_________________________________________________________________
無料でメールボックス250MBの 「MSN Hotmail」 
http://promotion.msn.co.jp/hotmail/fortune/input_un.asp