Foros: ドキュメント作成 (Thread #35450)

【API関連】APIドキュメントと設定データの関係 (2014-05-15 16:22 by kinoshita-eos #73023)

【確認事項】
APIの説明として以下の内容を記載することを考えていますが、よろしいでしょうか。

【案】
固有の構造体を設定データとして引数にするAPIは構造体と相互リンクを貼る

【例】lmrcImageSmoothingの場合
ファイル名: /src/Objects/DataManip/mrcImage/inc/mrcImage.h
Eospediaページ名: mrcImage(API)
関数名: lmrcImageSmoothing
設定ファイルの構造体: lmrcImageSmoothingInfo

(段落は基本通りにしています)
1. 変数
2. 構造体
2.5 API毎の設定
2.5.1 lmrcImageSmoothingInfo
----ここに対応するAPI(3.12.1)へのリンクを貼ります----
mrcImageSmoothingの設定データとして使用します。
typedef struct lmrcImageSmoothingInfo {
long mode;
mrcImageParaTypeReal sx; /* Filter kernel size */
mrcImageParaTypeReal sy;
mrcImageParaTypeReal sz;
double sigma; /* for Lee-Sigma filter */
} lmrcImageSmoothingInfo;
3. API
3.12 コマンド毎のAPI
3.12.1 lmrcImageSmoothing
----ここに対応する構造体(2.5.1)へのリンクを貼ります----
設定データlmrcImageSmoothingInfoを使用します。
extern void lmrcImageSmoothing(mrcImage* dst,
mrcImage* src, lmrcImageSmoothingInfo* info,
long mode);

【利点】
構造体 -> APIへのリンクの場合:
構造体の使用例が分かり、類似のAPIを作るときの参考になる

API -> 構造体へのリンクの場合:
APIの呼び出し方法が分かりやすくなる
例えば、lmrcImageSmoothingを使用するためには
modeの他にも設定データlmrcImageSmoothingInfoが必要で、
メンバーにモード、フィルタサイズ、Lee-Sigmaフィルタ用のデータを
設定して使うことがすぐに分かるようになる

【考察】
定義している変数の型などにも全てのリンクを貼ることを考えましたが、
リンクだらけになってしまうと思いましたので、
構造体のみで相互リンクを考えました。

Re: 【API関連】APIドキュメントと設定データの関係 (2014-05-16 09:43 by kinoshita-eos #73029)

[メッセージ #73023 の追記]
> 固有の構造体を設定データとして引数にするAPIは構造体と相互リンクを貼る

説明が不足していました。上記の案は
/src/Objects/DataManip/mrcImage/inc/mrcImage.h
のような定義が多いファイルについてです。

相互リンクを貼らなくても検索すれば良い話ですが、
私自身が何度も見返すケースがあったので、話題とさせて頂きました。

しかし、定義が多く情報が埋もれてしまう恐れが有るファイルは
inc内のファイルくらいだと思いますので、
あまり気にすることではないかもしれません。


この件はこだわらずに「APIの内容を出来るだけ多く記載することを優先」し、
細かい工夫などはその都度で少しずつ加えていこうかと思います。
Responder al #73023

Re: 【API関連】APIドキュメントと設定データの関係 (2014-05-24 08:11 by tacyas #73146)

基本的な考え方として、

incの下のヘッダーファイルは、よく使うAPIを定義
srcの下のヘッダーファイルは、かなり特化したAPIを定義

という使い分けをしています。

ファイルの中は、埋もれる部分もありますが、検索もしやすい部分もあり、それはそれで便利でもあります。あまり分かれてしまうと、それはそれで困難。
Responder al #73023