アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

ローカルの開発用ディレクトリ構成

ローカルの開発用ディレクトリ構成って、どのように切るのがよいのだろう。私の場合、複数プラットフォーム向けの開発を考慮して以下のようにしている。

  • ルート

    • プラットフォーム A

      • app
      • lib
      • sample
    • プラットフォーム B

      • app
      • lib
      • sample

ルートは OS X なら /Users/USER/Documents/dev、Windows だと C:\Users\USER\Documents\dev にしている。

その直下にプラットフォーム単位で iosandroidweb のように切り、更にその下を app = アプリ、lib = ライブラリ、sample = サンプル or テストという感じで分割。それぞれにプロジェクト用ディレクトリがぶら下がる。プロジェクトはおおむねリポジトリ単位。

このようにしている理由は以下。

  • ルートはターミナルからアクセスしやすいよう浅い階層にしたい
  • OS X、Windows ともにユーザー固有の開発用ディレクトリはなさそうなため ~/Documents/dev で代用 (妥協?)
  • プラットフォームとその直下を小文字にするのはターミナルからのパス入力を簡単にするのと、プロジェクト名に PascalCase を用いたときの対比がつけやすいため
  • プラットフォーム名は略記も可、たとえば node-webkit を nw というのはあり (公式な略があれば参考にする)
  • appappsliblibs のように複数形としないのは面倒だから (複数のサブディレクトリを持つことが自明なため、名前で示さなくてもよいのでは?という考えもある)
  • appsample を分けているのは、サンプルを app に置くと普通のアプリと区別するためプロジェクト階層に Sample や Test といった接頭辞をつけることになって面倒だから
  • 最近はプロジェクト名も小文字にしたくなっている、正式名称に大文字が含まれていてもエンドユーザーの手元でそう表示されればよく開発側は小文字でもよいのではという考え

現在の切りかたに不満はないのだけど、もし広く採用されている構成があれば参考にしてみたい。検索力が足りないためか、それらしい記事を見つけられなかった。プロジェクト単位やプラットフォーム固有のものはあるのだけど、それらを包括する部分について興味がある。

すごく的はずれで今更なことを書いてる気がする。しかし書かないとそうであることにすら気づけないので、こういう疑問はなるべく書いておきたい。ツッコミ待ちのココロ。