作者: T.Watanabe
日時: 2008/3/02(14:54)
  ねこ丸です。

davi さんは書きました:

> そのコードそのものが悪かったのかもしれませんが、
> 仮に、コードそのものは悪くなかったとした場合、
> やはり、「“自分自身が動いてゆく”必要がどうしてあるのか?」と。

  それがただの前振り(おまじない)であった場合、前振りで本題のネタの意
味がぼやけないようにするためだと思います。

  初期化処理などは目的ではありません、ただの準備です。目的に集中したい
から目的以外の文言があまりごちゃごちゃと目に入ってこないようにする、と
いう配慮はそれなりに大切だと思います。

# ただまぁ副作用のあるもの(たぶんプロシジャ)がボコボコ増えるのはちょっ
# と気持ち悪いっちゃ気持ち悪いですが。

  ---- こっから先は脱線です。

  完全に賛同を得られるわけではないとは思いますが、自分の場合は「20〜25
行までで書く」ということを意識しています。これは awk なら function の中
身を25行までで書く、という意味です。(まぁ短く書ける言語しか使ってない
っていうのもありますが。)

  個人差はもちろんあると思いますけど、コードのカタマリが25行より長くな
ると目で追い切れなくなります。あと、エディタの画面をほとんど常に2分割し
て使っているため、最大25行くらいまでしか収まらないという意味でもありま
す。

  だからある程度以上長いコードになるとfunction があって処理が外に飛び出
してくれた方がいいんです。

  問題は飛び出し方です。言い換えると、function の「名前の付け方と内部の
処理の適切さ」です。「ただ長くなったからなんとなく分ける」タイプの分け
方だと名前と動作が一致していないことがよく起きます。つまり外に飛び出し
て行った結果何が起きているのか、名前から想像される動作と食い違っている
状態です。ひどいときには想像すら付きません。他人のコードが読みにくいの
はたいていこの不一致の問題ではないかと思います。

  最近はどんどん外に切り出すようにしています。中身が if 文 1行しかなく
ても必要と思えば function に分けます。大事なのは function に分けること
ではなく、「意味を適切に表す名前を付ける」ことです。

# まぁ、この手の話は TS には釈迦がいる(しかも複数)のでヤバいんですが。

--
    ねこ丸