アンダースコアとハイフンに悩む

モジュール名に関して、Javaのプロジェクト名(ディレクトリ名)やmavenアーティファクトIDなど、1単語で表現できず最低2単語使うことがあります。

例えば、アプリケーション名にモジュールの種類をくっつけたりなど。

  • todos_common
  • todos_web

今までは、アンダースコア区切りのスネークケースにしていたんですが、
ある時から、ハイフンの方がよいのでないか?という疑念が吹き出して、
悩むこと3年経ちました。

そこにきて、TodosCommonとかいう、アッパーキャメルケースを目にして、気持ち悪かった。

こんなの3rd Partyライブラリでも、見たことないし。
そもそもファイルシステムって、大文字小文字の区別がなかったような気がする。

3rd Partyライブラリは、結構、ハイフン区切りが多いですよね。

Xcodeは、ハイフン区切りで、単語の先頭は大文字になるようでして、そもそもMacの標準ディレクトリが先頭大文字だったりして、衝撃を受けました。

これが最適解なのかと。(Linuxは小文字なのにね。)

web周りでは、cssとかURLは、ハイフン区切りのチェインケースを多く見かけますね。

PHPなどのスクリプト言語はファイル名が全部小文字だったりしますね。
javaはクラス名に準じてアッパーキャメルケースです。

FuelPHPRubyなんかのクラスやメソッドが規約でアンダースコアとか使ったりして。
Jsonとかはどうなんだろう。アンダースコアかな。
それにひきずられてjavascriptはキャメルケースなのにアンダースコア使うみたいな。

もう、なにが正解なのか、わからなくなってきた。