プライベートで開発やってる人のマシンのディレクトリ構成ってどんなんだろう?
書籍やネット上のサンプルコードなんかをまずは写経して勉強しようという場合に、
「まずはxxxフォルダを作成して」
みたいな形で解説されていると思いますが、そのフォルダ自体をそもそもどこに作成しておくと捗るんだろうという素朴な疑問を随分前から持ってます。
こんなことを疑問に思う人は基本的にいないかもしれない些細なことだけど、もしかしたら同様のことを考えている人がいるかもしれないとふと思ったのと、自分なりに試行錯誤した結果、自分なりのルールみたいなものが見えてきたので、簡単にまとめておこうと思います
開発環境
Mac上に環境を全て整えてます。作ろうとしているものがTitaniumMobile(最近だとRubyMotion)でのiPhoneアプリ開発が多いこともあり基本的にはこれで事足りてます。
一時期リリースを考えていたiPhoneアプリと連携するサーバサイドのテスト環境として、VirtualBox上にDebianインストール。その上でApache+Passenger、MongoDB、Ruby+rvm+必要なgemをインストールした環境を整えてました。
ディレクトリ構成
ここからが本題。簡易的なバックアップのために、Dropboxを利用しているため、基本的には、ホームディレクトリの Dropbox フォルダ配下にディレクトリを作成するようにしています。
以下2点考慮してDropbox配下にディレクトリ作成してます。
- 特定の言語(例:Ruby、JavaScript、CoffeeScript)や、それに関連したライブラリ、フレームワークの勉強目的のためのディレクトリ
- 実際に第三者が使うことを想定したアプリやサービスのためのディレクトリ
それぞれをもう少し掘り下げて説明していきます
特定の言語や、それに関連したライブラリ、フレームワークの勉強目的のためのディレクトリ
Perlから始まって、Ruby、JavaScript(たまにSQL、Python、Objective-C等・・)や、Linux自体の勉強など色々手を付けてきてます。
たいていては、何らかの書籍を見ながら勉強するケースが多かったのですが、その場合に、Dropboxフォルダ配下に
- learning_javascript
- learning_ruby
- learning_objective_c
- learning_mongoDB
- learning_linux
みたいな感じでそれぞれの技術要素別にディレクトリを作成します。
Ruby関連を最近色々勉強しているのですが、learning_ruby 配下に書籍名やライブラリ名のディレクトリを作成してます。
全部引用すると大変なことになるので、ひとまず一部だけ抜粋してみました
learning_ruby ├── scripting_ruby │ │ ├── 1-2-1.rb │ │ ├── 1-2-1.rb~ ├── capistrano │ ├── Capfile │ ├── asunaro_blog_crawler │ │ ├── Capfile │ │ └── config │ │ ├── deploy │ │ │ ├── production.rb │ │ │ └── test_env.rb │ │ └── deploy.rb │ ├── config │ │ └── deploy.rb │ ├── deploy.rb │ ├── fluentd │ │ ├── Capfile │ │ └── config │ │ ├── deploy │ │ │ └── production.rb │ │ └── deploy.rb │ ├── iptables │ │ ├── Capfile │ │ └── config └── warden ├── app.rb ├── warden.sublime-project └── warden.sublime-workspace
基本的にはこの運用でOKなのですが、Twitter Bootstrap の使い方について勉強しようと思った場合に、どこにいれるべきかちょっと悩んだ挙句、learning_bootstrap というディレクトリ作成してその配下に必要なフォルダ、ファイルを作成していくことにしました
実際に第三者が使うことを想定したアプリやサービスのためのディレクトリ
これは結構単純で、Dropbox 配下に、production というディレクトリを作成。その配下に、アプリ名やサービス名となるディレクトリを作成してます。
ひとまず、自分のやり方まとめてみたのですが、このやり方よりももしかしたらもっと良い方法があるかもしれないので、今度、勉強会等に参加した時など、機会があったら他の人がどうやってるのかを聞いてみようかと思います