あおきです。
In mail "[ruby-ext:01611] Re: require 'dir/...'?"
matz / zetabits.com (Yukihiro Matsumoto) wrote:
> まつもと ゆきひろです
> 高橋さんの論理はひとつの目安に過ぎません。すべての当てはめて
> うまくいくとは限りません。あおきさんがそう思うのでしたら、きっ
> とtmailは当てはまらないケースなんでしょう。
ええ、それはわかります。ぼくが気になってるのは
In mail "[ruby-ext:01586] Re: require 'dir/...'?"
TAKAHASHI Masayoshi <maki / inac.co.jp> wrote:
> なのだから、使えなくても別に仕方ないかと。実際に使うのは個々の
> Foo::Bar や Foo::Baz なのですし。素直に、
>
> require 'foo/bar'
> require 'foo/baz'
>
> でいいんじゃないでしょうか。
>
> もし、それをまとめて提供するべき、という判断があるなら、その時は
> foo.rb を用意する時です。
この一点です。まとめて提供する時の名前が foo.rb か別の名前かっていう
のは別にどうでもいいんですが、もともとのメールの
Foo だったら foo.rb、Foo::Bar は foo/bar.rb、自然じゃん!
という流れで(これ自体はわかる)、なんで foo/bar(Foo::Bar) と
foo/baz(Foo::Baz) をまとめるのが foo.rb になるのが同様に自然と言え
るのかわかんない、ということです。クラスパスとディレクトリパスが
対応してるってとこが元の論理の「自然さ」を支えてるわけでしょう?
(違うの?)
ライブラリのエントリポイントを foo.rb にすることそれ自体が変だと
言ってるわけじゃなくて、パスが対応して自然でいい、という流れで
foo.rb も自然だろう、というのが変だということです。
ライブラリ foo に対して foo.rb が適切なのは、まつもとさんが
おっしゃっていたように、「提供する機能の名前」として考えるとか、
あるいは単に「短くて見た目いいから」でしょう。クラスパスと対応
するからじゃなくて。
ということをはっきりさせたいわけです。
# まあハタから見ればどーでもいい違いですが。
-------------------------------------------------------------------
青木峰郎