Ruby:Load vs.Require vs.Include
何かの初心者として、あなたが始めているかもしれないものを練習するだけでなく、その分野でより高度な人々の仕事を研究す プログラミングに比較的新しい人として、私は同様の問題に対する異なるアプローチを発見するために、どのレベルのプログラマからもコードを読
私のコードとより高度なプログラマのコードとの間に気づいた明白な違いは、ファイル構造とファイル数ですが、ラベルを付けたい場合は、懸念の分離を練習していました。これがコンピュータプログラミングで重要な概念であることは知っていましたが、正直に言うと、SoCを練習する上で最も驚いたのは、Load、Require、Include—aka、プログラム内のファイルをリンクし、SoCを実装しやすくするものを使用することに慣れていなかったことです。
これらの3つの方法と、プログラムを次のレベルに引き上げる方法を舞台裏で見てみましょう。
Include
これはかなり簡単です。 似たようなメソッドを共有するクラスを複数作成している場合は、それらのメソッドをモジュールに抽出できます。 メソッドがモジュールに書き込まれたら、そのモジュールをそれらのメソッドを呼び出す必要がある可能性のあるクラスに”含める”ことができます。 それらの方法をぶら下げ続ける必要はありません。 以下は、あなたがそれをどのように書き出すかの短い例です:これで、両方のクラスがice_cream
include
。
Load
include
は別のRubyクラスのuse機能を使用する方法を示していますが、load
require
は、ファイルの先頭にいくつかの余分な行を追加するだけで、プログラムが懸念事項を分離できるようにしSoCの基本的な考え方は、プログラムの側面を沸騰させて、実際には1つのことしかしないようにすることです。 これは、メソッドと関数が一つのことだけを行うようにコードをリファクタリングするときに行います。 同じことが私たちのファイルにも当てはまります。load
load
load
load
は、ファイルがロードされる回数により、アプリのパフォーマンスに悪影響を及ぼす可能性があります。
Require
Requireはload
とよく似ていますが、主な違いは、requireは渡されたファイルを一度だけロードし、ファイルがロードされたことを覚 このため、プログラムやアプリケーションでサードパーティのライブラリを使用している場合は、require
がより一般的なオプションです。 ちょっと待って、サードパーティの図書館? それらは…宝石のように聞こえる! そうだ! ディレクトリにgemをインストールするか、Gemfileで指定すると、そのgemの機能を使用してファイルの先頭にそのgemを”要求”するだけです。 それはケーキの一部です。今、私は知っているrequire
$LOAD_PATH
。P>
$LOAD_PATH
はRubyに付属のグローバル変数です。 端末からIRBをロードして$LOAD_PATH
と入力すると、次のようなものが得られます。
これは単なる絶対パスの配列です。 また、gemをインストールすると、Rubyはこれらのgemライブラリの絶対パスを$LOAD_PATH
に追加します。 それは正しいより理にかなっていますか? Rubyは、require
$LOAD_PATH
に格納するための絶対パスが既にあるためです。私はこの投稿を、なぜこれらのメソッドを使用するのか、そしてそれらが私たちがより良い開発者になるのを助ける方法をもっと探求する手段とし これらの方法がどのように機能するかに興味がある場合は、追加の研究が必要な場合があります。