Diary?::2006-04-15

00:42

ふと思ったのだが、空気ってのはあくまでも読むものであって読ませるものじゃねえよな。

10:17

今日はえらい久しぶりに 9 時間ほど睡眠時間がとれた。実家からの通勤だと 5 時間程度の睡眠しか取れんからな、平日は。

とりあえず今日は目を付けている物件について不動産屋に問い合わせ & 現地でいろいろチェックの予定。

おお、何かすごい日記っぽいこと書いてるぞ俺。

20:45

折角の休日だってのに殆んど休めねえよ。一応引越先は決まったが (流石に入居者審査で落とされることは無いだろう) 、それの準備が結構大変。そしてそれ以上に金がかかる。

ってか、初任給が入るのはいつなんだ?

22:02

承前

例えば「関数の返り値が元の引数と異なっているという」条件を書こうとすると、俺の考えた奴では上手く書けない。つまり事後条件で引数を参照できない。もしもそういう条件を与えるのなら、どうやって書けばいいのだろう? 事後条件を返り値、可変長引数、キーワード引数の 3 つを取る関数とすることに強制すればいいのだが、必要もないのに値が渡される事を気持ち悪く思わない人ってどれぐらいいるんだ。俺は気持ち悪く思うんだが。

もしかして引数と結果の両方を参照する事後条件ってケースは無いのか? 何だかそれって単体テストでやってしまった方が良いような気がする。むしろ事後条件自体が単体テストとかなり被っているような? よくわからん、勉強せねば。

あと俺は不変表明に関しては何も実装していないので、 __invariant__ とかいう名前で不変条件のチェックメソッドを作らないとな。

22:48

そもそも事前条件やなんかをわざわざメタクラスで後付けする意味ってあるのか? 関数本体に影響を与えずに事前事後の条件を書けるのはメリットだと思うのだが、そのためにわざわざそれ専用の妙な機構を作るのはどうなのだろう。そのために妙なメタクラスを付加するぐらいなら、最初っから関数の最初の方と最後の方にチェック用のコードを書くよな普通。

そうなると結局のところメタクラスを採用する理由というのは、やはり事前条件と事後条件をしっかり書く癖を付ける程度しかないのか? いやなんかそれも怪しいな。あー、関数の満たすべき事前事後の条件を手っ取り早く確認できるのは大きなメリット……なのかなあ。なんにせよ、わざわざモジュールとして書く程のものかと問われると、全然自信が無いのだが。

クラスの不変表明についてはメタクラスでやっておく意味もある気がするというか、むしろ本命はこっちだったか。ってかそれ __getattr__ をフックするだけで済むじゃねえか。

Written by Kuwata Chikara
Creative Commons