ディレクトリレイアウトのメモ

プロジェクトを始めるにあたって、毎回悩むディレクトリレイアウトです。 一部ではファイル構成管理と言うようですが、もっと狭い意味での構成管理です。

ファイル構成管理と言うと、svnやgitのようなバージョン管理を思い浮かべるかもしれないですが、ここではファイルとディレクトリをどのように配置するかを書いています。

私はSubversion実践入門で紹介されていたレイアウトを使っています。

BUILDING    <--- ビルドする方法を書いたメモ
GLOSSARY    <--- プロジェクト特有の用語集
README      <--- このプロジェクトが何なのか説明したメモ
bugs/       <--- ditzのissueを入れるディレクトリ
data/       <--- 本番用/テスト用のデータファイル等
doc/        <--- プロジェクトに関するドキュメント
src/        <--- ソースコード
util/       <--- プロジェクト特有の各種ツールやscript
vendor/     <--- サードパーティ製のライブラリ等
vendorsrc/  <--- サードパーティ製のライブラリのソースコード
  • BUILDING

ビルドする方法を書いたメモを書くとの事です。 内容は、ビルドに必要な環境とビルド方法を書いたメモです。

必要条件:
Xcode 4.5.2
MacOSX 10.8.2

ビルドの方法:
cd ./src/
make

詳細情報:
./doc/building.html

しかし、このメモが必要になった時には、あまり役には立ちませんでした。 XCodeのバージョンが合わなかったり、OSのバージョンアップで各種ツールの位置が変わったりしていたため、結局XCodeのプロジェクトやmakeファイルの中身を書き換える事になりました。

  • GLOSSARY
プロジェクト特有の用語をまとめて書くと良いと言われてますが、私は一度も書いた事はありません。 多分、複雑で大規模なコードを書く人たちには重要なのかもしれません。
  • README
このプロジェクトが何なのか説明したメモ。 GitHubにあるプロジェクトのREADMEを参考にすると良いだろうと思ってますが、未だに書いた事がありません。
  • bugs/
ditzのissueを入れるディレクトリ。ditz initで作成してます。今回初めて作りました。
  • data/
本番用/テスト用のデータファイル等を入れるらしい。が、これも使った事無いです。
  • doc/
プロジェクトに関するドキュメントを入れる。議事録、設計メモ、メールでのやり取り、運用マニュアル等を入れておきます。 読んでおくべき参考文献等もPDFやWebArchiveフォーマットで入れておくと、探す手間が省けて便利でした。
  • src/
プログラムのソースコー本体です。
  • util/

プロジェクト特有の各種ツールやscriptを入れておきます。意外に使います。 私の場合は、

  • deleteDotSVN.sh
出荷用パッケージに.svnデイレクトリが残らないようにするためのスクリプト
  • openUp
diskImageの”first-open-window”属性をONにするプログラム。Apple製
  • make_svn_version_h.sh
カレントディレクトリ上にsvnversionの値をc文法で定義するファイルのsvn_version.hを生成する。ビルド番号を生成を補助するツール

等を入れたり入れなかったりしてます。

  • vendor/
サードパーティ製のライブラリを入れておきます。例えば、YAML.framework等を入れたりします。
  • vendorsrc/
サードパーティ製のライブラリのソースコードを入れておきます。例えば、YAML.frameworkのソースを入れたりします。毎回ビルドする物ではないので、ビルドした成果物は、vendorに入れてバージョン管理下に加えておきます。