松尾です。

中村暁史 Nakamura Akifumi wrote:

> お世話になっております。 A.中村です。風邪で休み。

お気をつけて。東京はかなり暖かくなってきました^^。


> > 1) オブジェクトの型が想定しているものと違うかもしれない
> 
> > うけども、なんとなくスマートではないですよね。
> 
> must.rb(だったっけ?)ってのを使うと少しスマートに
> 書けるそうですね。

どうせ例外が発生するだろうから、大元で一般的な例外処理を書いておく、か
な。でもプログラマがオブジェクトの型を違えるのはプログラマの責任(バグ
の類)で、クラスは関係ないような気がする。

# ドキュメントさえつけておけば…。

# いや、プログラマのミスも許容したいというポリシーなら話は別かも。


> > 2) インスタンス変数へ代入するときはコピーをつくるべきか
> 
> 用途によります。この一言。
> 「同一と同値の違い」ってのがあるので、dupしたら台無しに
> なるケースもあります。逆にいえばdupしなかったら台無しに
> なるケースもあるわけです。

僕の場合、オブジェクトはめったにdupすることがないですね。dupする時は、
本当にそうすることが必要なのか、グッと考えます。

1) 全体として、オブジェクトは余りdupしない
2) アプリケーションレイヤーでは殆どdupする必要がない
   (同一だから)
3) フレームワーク、ライブラリでは比較的dupすることが多いかも
   (同種だからdupするも良し、或いはその時点の状態が重要だからdupしなくちゃ、等)


> > 3) メソッドの実行中に別スレッド中でオブジェクトが変化するかも
> 
> スレッドは疎いですが、これも用途次第かな…

スレッドセーフにしないといけないメソッドと、そうでないメソッドは分析過
程で分かってくる(嘘かも^^;)ので、心配しすぎる必要はないかも。再利用時
にも使う前に分析するだろうし。

# って楽観的すぎるかな。