[#21157] あったらうれしいメソッド to_n, to_n!, to_s! — ogino@...

荻野です。あったらうれしいメソッドということで書いてみます。

16 messages 2000/03/03

[#21159] メソッドの入り口 — ogino@...

荻野です。もうひとつご指導ください。

93 messages 2000/03/03
[#21170] Re: メソッドの入り口 — Shin-ichiro Hara <sinara@...> 2000/03/03

原です。

[#21243] Re: メソッドの入り口 — keiju@... (石塚圭樹) 2000/03/07

けいじゅ@日本ラショナルソフトウェアです.

[#21247] Re: メソッドの入り口 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/07

[#21267] 引数コピーとオブジェクト指向 (Re: メソッドの入り口) — Hideto ISHIBASHI <s34204@...> 2000/03/08

石橋秀仁です。

[#21272] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/08

[#21276] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — nobu.nakada@... 2000/03/09

なかだです。

[#21279] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — ogino@... 2000/03/09

oop未満の世界観の荻野です。

[#21282] Re: 引数コピーとオブジェクト指向 — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/03/09

越水です。

[#21285] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21365] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21293] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/10

松尾です。

[#21297] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21302] Re: 引数コピーとオブジェクト指向 — 土岐 仁謙 <toki@...> 2000/03/10

土岐です。

[#21371] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21374] Re: 引数コピーとオブジェクト指向 — TADA Tadashi <sho@...> 2000/03/13

ただただしです。

[#21280] raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp>

24 messages 2000/03/09
[#21283] Re: raise non-Exception object — nobu.nakada@... 2000/03/09

なかだです。

[#21315] Re: raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp> 2000/03/11

[#21342] Re: raise non-Exception object — nobu.nakada@... 2000/03/12

なかだです。

[#21384] ruby 1.4.4 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 2000/03/13

[#21442] 配列内のソート — Takayuki Tanaka <tanaka@...>

こんにちは Tanです。

16 messages 2000/03/15

[#21583] ruby for Web — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

27 messages 2000/03/22
[#21584] Re: ruby for Web — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/03/22

なひです.

[#21649] net-1.1.10 — TAKAHASHI Masayoshi <maki@...>

高橋征義です。net/http 使いたおし中。

17 messages 2000/03/27

[#21669] new version of mod_ruby & eRuby — Shugo Maeda <shugo@...>

前田です。

14 messages 2000/03/28

[ruby-list:21383] Re: 引数コピーとオブジェクト指向

From: 土岐 仁謙 <toki@...>
Date: 2000-03-13 09:19:29 UTC
List: ruby-list #21383
土岐です。

{Date} Mon, 13 Mar 2000 15:59:11 +0900
{Subject} [ruby-list:21380] Re: 引数コピーとオブジェクト指向
{Message ID} <38CC91B3.E990A69F@sitc.toshiba.co.jp>
Matsuo Hisanori <hisanori@sitc.toshiba.co.jp> wrote...

Matsuo> 1 変換後の「値」が必要だ。dataの中身を変えたいわけじゃない。
Matsuo> 2 非破壊的なメソッドを使う。

うーん、ここで思考が止まってくれればいいんですが、つい

3 テンポラリなオブジェクトが生成されて、余分にリソースを消費する。

と考えてしまうので、

Matsuo>  def html_quote(data)
Matsuo>    data.gsub(/&/, "&amp;").gsub(/</, "&lt;").gsub(/>/, "&gt;")
Matsuo>  end

これが

def html_quote(data)
  data = data.dup
  data.gsub!(/&/, "&amp;")
  data = data.dup
  data.gsub!(/</, "&ltp;")
  data = data.dup
  data.gsub!(/>/, "&gt;")
  data
end

に見えてしまい、

4 破壊的メソッドを使えばテンポラリなオブジェクトは抑制可能。
5 それなら、結果は同じだから破壊的な方を使おう。

という結論になってしまうのです。

無論、この差が実用上問題になることはまず無い、と頭では
分かっているんですが、同じ結果を出す異なる二つの方法があって、
例え理論上だけの話でも片方が性能が良いとういことが見えてしまうと、
性能の良い方を選択しないのは心理的にかなり抵抗があります。

これが、実装が完全に隠蔽されていたり、あるいは他人の書いた
コードだったら、特に気にならないのですが、
自分でコードを書くときはたいした手間でもないだけに
やはり気になって仕方が無いです。

でも結局これは

Matsuo> 僕から見ると、「値」と「インスタンス」の区別、「インスタンス」の操作責
Matsuo> 任の明確化が不完全になっている印象を受けます。

ということなのかなあ。
松尾さんの立場では、
実用上問題にならないような最適化を追及するよりも
「値」と「インスタンス」を区別するポリシーの方が重要である、
ということですよね。

わたしは多分、「値」と「インスタンス」を明確に
意識しようとはしていないです。
どちらかと言うと、値的な「数」なども単に破壊的なメソッドを持たない
オブジェクトだと見なしています。
# Fixnumも実装は値だということは分かっているけど、
# でも気分はやっぱりオブジェクト。
なのでオブジェクトの生成・消滅をどうしても意識してしまい、
気になってしまうみたいです。

Matsuo> こういう視点で見ていると、

Matsuo> 「渡す前にコピー、貰った後でコピー、使う前にコピー」

Matsuo> というのは、プロジェクトの何処かに「値」と「インスタンス」の区別、「イ
Matsuo> ンスタンス」の操作責任の明確化ということに対して、余りセンシティブでな
Matsuo> い開発者がいるということになります。

Matsuo> 不安になりませんか?

うーん、わたしは複数人のプロジェクトには参加したことが
無いので、なかなかそういう不安は具体的には分かりにくいのですが、
「局所的な変更の影響範囲は局所的に留める」というポリシーは不許可、
というより不完全なのでしょうか? 
このポリシーから自然と「壊す前にコピー」という方針が
出て来たと自分では考えているんですが。

--------------------------------------------------
土岐 仁謙    神戸大学物理高エネ研 M2
http://www.freedom.ne.jp/toki/

In This Thread