From: TAKAHASHI Masayoshi Date: 2000-06-21T23:59:48+09:00 Subject: [ruby-list:23421] Re: net/smtp.rb extra lines ? 高橋です。 Minero Aoki さん: > > # どうもnetの下は難しすぎていつも追えない。protocol.rb の each_crlf_line > > # あたりまで行ってギブアップ > > そうですか。ぼくは ごく普通に書いてるつもりなんですが(あたりまえか)、 > 「net/* は理解できない」という声がよくあがるので ちょっと悩んでます。 えーと、私が見た感じでは、あおきさんのコードは、 1)自前のクラスやライブラリをよく使う 2)リフレクション?というか動的プログラミング?をよく使う という特徴があって、これが「分かりにくさ」につながっているように 思います。 1)に関しては、net/protocol.rb ではNet::Socketクラスが典型的で、 RubyのSocketクラスに似ているんだけど違うところが悩ましさを倍増 させます。メール特有のメソッドもあるようですし(http.rbのために 読んでいたのでわけわからんかったのでした)。 まあ個々のメソッドについてドキュメントがあればいいのかもしれま せん。逆に言うと、ドキュメントがないと辛いです。 2)については、Net::CodeクラスとかNet::HTTP::Proxyとかのような、 「クラスそのものを変数に入れたりメソッドが返したりする」とか、 「method_evalのような動的な技を多用する」とかすると、読んでる 側(ていうか私)は混乱しやすいように思います。 とはいえ、この辺のダイナミックな技が使えるのもRubyのよいところ なので、使わないのももったいないですよね。 うまいイディオムなりパターンなりに落とし込むとかして、うまく 使いこなせるようになると、みんな幸せになれるのですが。 高橋征義 (TAKAHASHI Masayoshi) Email:maki@inac.co.jp