Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

*.go というファイル名は小文字で始めるかつ一単語で表すのが良いとされていそう #1

Closed
pankona opened this issue Dec 28, 2022 · 1 comment

Comments

@pankona
Copy link

pankona commented Dec 28, 2022

Refs: golang/go#36060

Naming convention として明らかにどこかに書かれている風ではなさそうですが (ちなみに、そういうときはだいたい標準ライブラリの法則に従うとハズレがありません)、ソースファイル名は「小文字で始める」かつ「できれば一単語で表す」のが良いとされていそうです。一部大文字始まりのファイルがあるようなのでちょっと気になりました。

良い

  • router.go
  • setup.go
  • greatfeature.go

悪い

  • Router.go
  • Setup.go
  • great_feature.go

なぜ一単語?

もとい、アンスコで単語を区切らないほうがいい、という論説です。

ファイル名を長くしたいとき、アンダースコアか何かで区切りたくなる場合があるだろうと思いますが、アンダースコアの利用は注意が必要です。Go のコンパイラはアンダースコアで区切られた単語をビルドスイッチとして認識する場合があるからです。

たとえば hoge_linux.go、hoge_android.go、hoge_darwin.go などです。特定のビルド環境でのみビルド対象になるファイルとして認識されます。hoge_midwhite.go のようなファイル名が将来に渡ってビルドスイッチとして使われる可能性はとても低いかもしれず、そういう意味ではある程度気を使えばそこまで神経質にならなくてもいいかもしれませんが、しかしゼロパーセントではないだろうと思うならば、やはり「アンスコでファイル名を分割する」のは避けておくと無難だろうと思います。
ちなみに、ハイフンなどで区切るのはたぶん安全です。けど、あんまり好きじゃない人が多いかもしれない?

@takano-hi
Copy link
Owner

@pankona ありがとうございます 🙏🙏🙏 ビルドスイッチ知らなかったです…!
こちらで対応しました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants