golangでパッケージ作る時の名前をこうやって付けてます。という話

これが最高とかって話ではない。

gemとかにおけるキラキラネームの良さは、被らないことだと思う。しかし、goにおいてはimport pathが別の人が作ったのと被るのを気にしなくて良いから、良さは特にないと思っているけど単に好みで割と付けようとしてしまう。

大体 1 -> 2 -> 3 って感じで考えてるけど、その順番も毎回必ずそうかというとそうでもない。

1. しっくりくるキラキラネーム、ダジャレを思いついた時

それを使う。子供に奇抜な名前付けると、名前だけで識別できる。

  • package: キラキラネーム
  • repository: 同上

2. 1に失敗して、golangに関係した(golangで書いたではない)パッケージを作る時

つまりpackage名にgoを含めたいようなものを作る時(e.g. godoc)

  • package: go prefix を付けて、ひねりのない名前を付ける。
  • repository: 同上

3. それ以外(これはgolangで書いたやつですみたいなの)

go- prefix を付けて、ひねりのない名前を付ける。packageには付けない。あくまでリポジトリの識別性を上げるためにgo-って付けてる。(e.g. go-formspec)。近所に同じ名前の子がいたら名字一緒に呼んであげると良いと思う。

  • package: go- prefix を付けずに、ひねりのない名前を付ける。
  • repository: go- prefix を付けて、ひねりのない名前を付ける。

ただ2分前ぐらいに思ったのは、https://github.com/google/go-github みたいに、リポジトリgo- prefix付けて、そこにprefixなしgithubのディレクトリ掘ってそこに package github とか置くやつのほうが良いかなと思った。

package名とimport pathの最後が一致してるのはやっぱり良いなーと。