ライブラリ構成のメモ書き

以前作成していた vec ライブラリをつくり直す改良するのにしたがって、ライブラリの構成も大幅に変えようと思うので、そのメモ書き。
大まかな作りは、boost や pstade なんか参考にする予定。

覚え書き

  • バージョン管理
  • 使用するのは自分ひとり(予定)
  • テストコードの用意
  • ドキュメントの用意
  • lib や dll は生成しない
  • 将来的に別のライブラリと統合するかも(matrix とか)
  • boost は一部のみ使用する予定(でも、基本的に使わない予定)

目的

  • ライブラリの作成(ライブラリを作る上でも流れを把握)
  • バージョン管理
  • テストコードとドキュメントの作成

ライブラリのコンセプト

多数存在するベクトル型に対し、互換性のある処理を行う為のライブラリ。

struct my_vec{
	float x, y, z;
};

my_vec vec;
D3DXVECTOR3 d3dx_vec;

lenght(vec);		// ベクトルの長さを取得
lenght(d3dx_vec);	// 同じ様な形で取得することが出来る

ディレクトリ構成

accelerator\
├―accelerator
│ └―vec     ライブラリのソースコード
└―libs
  └―vec
    ├―doc   ドキュメント
    ├―example 使用例
    └―test   テストコード

テストコード

boost/test/minimal を使用して、テストコードを書く。
1つの *.hpp ファイルに対して、1つのテストコードファイル。
bjam を使って、複数のコンパイラで一気にテストを行う。

ドキュメント

html 形式で用意する予定だが、html でドキュメントを書いた事がないのでなんとも…。
そもそも html を殆ど触ったことがない。
wiki や ブログに書いて、html で出力するとかもありか?
もう少し調べる必要がある。

バージョン管理

バージョン管理は、Git で行う予定。
ただし、本格的に使ったことが無いので手探りになりそう。

ファイルのヘッダー

// accelerator-vec-library
// Copyright (c) 2010 osyo-manga : http://d.hatena.ne.jp/osyo-manga/

boost と pstade 辺りを参考に。
特に意味はないですが形だけでも…。


と、まぁ色々と考えているのですが、考えるだけじゃ先に進まないので、ガシガシソースを書いて行こうと思います。
後から修正なんていくらでも出来るでしょうしね。
そんな訳で何もひとまず何も考えずに書いていくよー。