例示的な例
ファイルb.rbには、以下の2つのクラスがあります。犬と猫。ルビーはなぜ「細かい」必要はないのですか?
Rubyで、ファイルb.rbで定義されたクラス犬を使用するために、私はb.rbを要求する必要があります。
require 'b'
puts Dog.new.bark
しかし、私は猫を持っている必要はありませんが、それが定義されています必要なファイルのすべてのクラスがロードされているためです。
質問
だから私の質問です:なぜ、ファイルの一部のみを必要とする方法はRubyでありませんか?
Rubyでは必要でないと思われる理由があるのですか、それとも将来のロードマップに含まれているのでしょうか?
彼らは インポートファイルエクスポートするものを選択することができますされ、 インポートファイルをインポートするものを選択し、NodeJSの世界で彼らはmodule.export
を持っていることができます
from module import MyClass
フォームを、持っているPythonで
。
私には、PythonとNodeJSがはるかに柔軟性があるようです。ルビーの選択のトレードオフは何ですか?
その他の質問:python/nodeJSメカニズム(を選択的にインポートする)がどのように呼び出されていますか?
これはRubyで 'require'が動作する方法です。 私はちょうどdog.rbに 'Dog'クラスを入れ、cat.rbに' Cat'を入れます。これは非常に直観的で、ファイルが乱雑にならないようにします。 – progfan
私は、1つのファイルに複数のクラスを持つことは、ほとんどの場合悪い習慣であると主張しています - あるいは、少なくとも共通のRubyの慣習に従わないでください。 – spickermann
それはちょっと別の哲学です。 Pythonパッケージは、スクリプトがほとんどなく、内部に多くのクラスがあります。 Rubyの宝石には多くのスクリプトがあり、1つのスクリプトにつき1つのクラスしかありません。 PythonはRubyよりも動的で明解ではないので、テキストエディタやIDEがPythonコードを分析する方が簡単です。 Pythonのクラス定義をどこに定義していても、それを簡単にジャンプできます。 Rubyでは、テキストエディタが基本的な規則を知る必要があるように、非常に多くの動的クラスとメソッド定義が存在する可能性があります。 –