前回はvalidate_confirmation
という関数のことを書きました。
今日はhexパッケージの名前はどうあるべきかについて思うトコロを書いていきます。
なんでこんなことを書こうと思ったかというと、hex.pmに"Naming your package"というセクションが設けられたからなのです。
ここには2つの注意が書かれていて、ザックリ書くとこんな感じ。
- 他人を傷つけるような言葉は避け、広く受け入れられる名前にしましょう
- 既存のパッケージ(例えばplug)を拡張するパッケージには、plug_xxxxといった名前をつけましょう
ここで私はもうひとつ、ex付けちゃう問題について書いておきます。
ex付けちゃう問題
Elixirのパッケージには、"ex"が付いたものが多く存在します。たまに"elixir"が付いているものもあります。これは他の言語にも言えることですが、Rubyなら"rb"、Crystalなら"cr"など、その言語の名前の一部をパッケージ名に入れたくなりがちです。自分もやってしまったことはあるので偉そうなことはそれほど言えませんが、少なくともモジュール名には入れないほうがいいのではないかなと思っています。
よいとこ
- Elixirのパッケージであることが名前だけですぐわかる
よくないとこ
- 2文字くらい長くなる
hex.pmで検索している時点でそこにあるのはElixir(とErlang)のパッケージなのでelixirであることは分かっています。ただしGitHubだとそういうわけにはいきません。あと他の言語のものに影響されて移植版をつくったとかいうケースだと、付けたくなる気持ちはわかります。あと2文字くらい別にいいじゃんというのもわかります。ということで、
- パッケージ名にexを付けるのはセーフ
- elixirはアウト
- モジュール名に
Ex
を付けるのはセーフElixir
はアウト
- リポジトリ名にex, elixirを付けるのセーフ
というところかな〜と思います。他の言語のものと並ぶような場所では付けるのアリ、Elixirのコードに入ったら付けるのナシ、で。
ExUnit
とかExDoc
もEx
付いちゃってるんですけど、これは公式なのでOKということで...
おやすみなさい。