簡単Elixirシリーズ
~ useを理解しよう① ~
この記事は「Elixir Advent Calendar 2022」10日目の記事です
東京にいるけどfukuokaexのYOSUKEです。
簡単 Elixirシリーズでは小ネタをサクッと書いていこう。というコンセプトで作っていきます。
今回は、useって何? を理解する。という小ネタ(そう、この記事はサクッとがコンセプトW)
まず、useの説明を探して読むとですね、小難しいんです。私にとって、非常に難しく書かれている。僕でもわかるように書いてくれ!という自分の心に従って簡単にしてみます。
まず公式の説明を見てみます。use は alias, require and import の章に書かれています。なぜ、ここにuseも加えてくれないんだ。探すのが大変じゃないか。と思うのは僕だけでしょうか。いえ、公式をディスってる訳ではありません。公式のドキュメントは素晴らしいです。
説明の一部を日本語にしてみてみます。
useは、指定されたモジュールを必要とし、そのモジュールで__using__/1、コールバックを呼び出してモジュールが現在のコンテキストにコードを挿入できるようにします。
ほんの一部抜き出しただけですが、他にも色々書かれてますので、ぜひ公式を読んでみてください。ただ、私にはこれらの説明を噛み砕いてもらわないとパッと頭に入ってこないんです。という心の声が聞こえてきます。
と言うことで、噛み砕いてみます。
useとは、
- use とは、コードを再利用するためのツールです。
- use とは、別のモジュールで定義された using マクロを呼び出すものです。
-
__using__
マクロを使用すると、別で定義したモジュールにコードを挿入できる関数を作れます。
以上の事から
useとは、__using__
マクロ定義したものを利用して、コードを再利用する為のツールです。
use はどんな時に役立つか? それは、コードベースで抽象化しておきたい、再利用可能なパターンがある場合には最適です。
例えば、MVCなどのようなパターン化したフレームワークを作るときなどです。という事で、Phoenixフレームワークではuseが頻繁に活用されています。
少し長くなるので、サンプルコードを書いた例を useを理解しよう② に記載します。