<< 前 ホーム 次 >>

bakaid: 20080508

今日の出来事。若いのが『メモリ・リークしてるんです
けど、どこから漏れてるかわかんないんです』みたいな
話を持ってきて。リークしてんのは、ある描画メソッド
だっていうアタリはついてんだけど。けど、そのメソッドが
またクソ長くって。

で、自分の場合、こういうのを見たとき、リーク云々じゃ
なしに、とりあえずextract methodすることを考える。
で、そのつもりでそのクソ長いメソッド見てたら、何も
してないコードが見つかって。で、とりあえずそこを
コメントアウトしてみた。んで実際に動かしてみて、
別に描画がおかしくなることもないから、『ここ、
いらないよね』って声をかけて。そしたら、その若いのが
タスクマネージャを見ながら操作して、『あ、メモリも
増えなくなりましたね』って。

まぁ、こんなにうまく行く話は滅多にないんだけど。でも、
漠然とコードを読むよりも、どこを切り出そうかとか
考えながらコードを読むほうが、いろんなことに気づき
やすいというのはいえる。

どこか切り出して別のバグを入れちゃうこともありがち
なんだけど。でも、もともとがクソなんだし、バージョン
管理もやってるし、そんなに恐がることもない。

メソッドが十分に短ければ、バグがあるかないかも
わかりやすい。メソッドの前のほうでSelectObjectして
んのに、あとでDeleteObjectしてないじゃん!とか。

--

やっぱり責任の分配というのが大切。責任の分配と
いうのは、結局のところ、『それは誰がやるべきなの?』
という疑問の答えを見つけること。

たとえばダイアログが太りすぎてたら、モデルかコントロールに
仕事を移してやる。ウィンドウが表示されてるかどうかを
知るのに、フラグでは持たずに、直接ウィンドウに尋ねる。

--

やっぱり『バランスを図る』っていうのは、言い方として
曖昧だよね。バランスって、結局、個人個人の感じ方で
違うし。

たとえば、責任の分配にしても、それを『責任のバランスを
考える』っていう言い方もできるだろうけど。でも、
バランスっていう言葉を使っちゃうと、無意識にも、
五分五分をイメージしちゃうでしょ。そうじゃないわけ
でしょ。責任を持つべきものが持つのであって、それを
ムリヤリ五分五分で分配したら、責任の分配ミスって
ことになる。

もしバランスということで意味があるとしたら、それは
多分早さだよね。バランス感覚って、早さだから。

前にも『センスは早さ』って書いたことがあるけど。
だから、『バランスを考えましょう』なんて書いて
あっても、それは実質、『センスを磨きましょう』って
いってんのとあんまし変わんなくって。まぁ、もっともな
言い分ではあるけど、大して役に立つアドバイスじゃない
っていう (笑)。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails