このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

モジュール

import, require, use, include, load, consult / export, define, provide, advertise など、言葉は多様。あんまり気にしてもしょうがない。適当に使い分けたり使い分けなかったり。

保存場所(サーバーのファイルシステム)から実行場所(ブラウザなどのメモリ内)にプログラム構成素を読み込むことを「ロードする」と呼ぶと、ロードの問題:

  • ファイルの読み込みが必要かどうかを判断する方法
  • いつファイルを読み込むか?
  • どのファイルを読むかを特定する方法
  • どんな方法でファイルの読み込みをするか?
  • 読み込んだファイルの内容をどうメモリ内に配置するか?

複数のモジュールがあると依存関係がある。依存関係を把握することも必要。人間もソフトウェアも把握しやすいようにする。どんな構文であっても、provider/consumerモデルで考える(consumerをcustomerともいう)。これは、モノ(商品)の製造者、問屋、ショップ、消費者などの構造と同じ。

  • provideするプログラム要素を明示的に宣言するか
  • 逆にprovideしないプログラム要素を隠すか
  • 特に何もしなくても全部provideする、もあり
  • requireするプログラム要素を個別に書くか
  • requireするプログラム要素をいちいち書かないで、モジュール単位にrequireするか
  • 折衷案もある

大事な余談:

コンピュータやソフトウェアにとっての代名詞: I, you, this, that, it, here, there などの解釈をどうする? 文脈や環境の具体化とも言える。