KONOEソースコード管理の指針
ある程度コーディングが進んでいくようになりますので、ソース
コードの管理をきちんとやらなくてはなりません。そのために
パッケージマネージャとカテゴリーマネージャを決め、その人に
それぞれのコードの管理をお願いしたいと思います。
- パッケージマネージャ
- パッケージ全体の進行の把握。
- パッケージのバージョン管理。
- パッケージ内カテゴリの整合性の検査。
- パッケージソースコードの品質管理。
- カテゴリーマネージャ
- カテゴリーの進行の把握。
- 必要なクラスの設計。
- カテゴリーのバージョン管理。
- カテゴリーソースコードの品質管理。デバッグなど。
1.バージョン管理
バージョン管理についてですが、ライブラリバージョンをメジャー
バージョンとし、現在0とします。パッケージごとにマイナーバージョン
を振ります。現在を0.1とします。パッケージ相互の関係がありますので、
同じマイナーバージョンのコードは互換性を持つ必要があります。つまり、
他のパッケージから参照されるクラスの仕様を変更し、インターフェースが
変わる場合(再コンパイルが必要な場合)新しいマイナーバージョンを請求
します。カテゴリーバージョンはさらにその下に位置します。パッケージ
内の他のカテゴリーから参照され、その仕様が変わる場合バージョンを
請求します。現在を0.1.1とします。カテゴリー内のクラスはさらに
下のバージョンコードを持ちます。0.1.1.1とします。ソースコードは
同じクラス定義の元での改訂(レビジョン)をABC...をつけて表現します。
オブジェクト入出力様式は同様に独自のバージョンを持っています。
こちらは通し番号で0から順に増加します。ファイル中に保存されたり、
ソケットを通して通信され、受信時に読み取り方法を判断するのに
使われます。
2.コード品質管理
書かれたコードの品質を管理します。品質として次のようなものが
考えられます。
- エラーを含まないこと。
- 本当の意味ではこれは大変難しいことですが、少なくともコンパイラ
などが警告を含むエラーメッセージを発行しないコードにしておくことは
必要です。例えばWarningだからまあいいかと思ってほっておいたものが
実は深刻な問題を引き起こすことがあります。
- どの計算機でも変更なく動くコードになっていること。
- KONOEではできるだけ機種依存性を排除したコーディングを行なう
努力をしています。システムサービスやコンパイラオプションなどで
必然的に発生しうる部分もソースコードやMakefileの書き換え無しで
吸収することを目指しています。
- コメントに必要な情報が含まれていること。
- 最近のプログラム言語ではプログラム自身の可読性はずいぶん向上
しています。変数のスコープなども含め、ソースを読むことがやりやすく
なっています。しかし、例えばクラス設計で期待された機能がまだ実装
されていない場合など制限事項はソース中にもコメントするべきでしょう。
また、修正を加えた場合、その範囲に、作業者、日付、理由、措置を
記入しましょう。(レビジョン)
- 不必要なコードを含まないこと。
- 例えばデバッグの時に用いたcoutへの書き出しなど、製品として
公開する場合には必要ないものは削除するか、必要な措置をしてそれが
出てこないようにします。コメントアウトするか条件コンパイルを
用います。

[collaboration/versioning.html] Last Modified : 04-Feb-1998.
KONOEコラボレーション
konoe-req@konoe.kek.jp