数日前、C++ ファイルを Java プロジェクトに導入しなければならなかったときに、問題に遭遇しました。Java プロセスの CPU 使用率を測定する必要性から始まり、JNI を使用して C で記述されたネイティブ ライブラリ (Unix マシン上の共有ライブラリ) を呼び出すことが決定されました。問題はJava ファイルのみで構成されるソース リポジトリ (ついでに Clearcase) に C ファイルを配置する適切な場所を見つけます。
私はいくつかの選択肢を考えました:
(a) 次のように、C ファイル (具体的には、1 つの .h ファイルと 1 つの .c ファイル) をソース ベースの先頭に配置するための別のディレクトリを作成します。
/vobs/myproduct/javasrc /vobs/myproduct/cppsrc
Cファイルが2つしかなく、このようにソースベースを言語レベルで分割するのは非常に奇妙に思えたので、私はこれが好きではありませんでした. プロジェクトの大部分がほぼ同等に C++ と Java で書かれていれば、これで問題ありません。
(b) C ファイルを、それを使用する Java パッケージに入れます。
/vobs/myproduct/com/mycompany/myproduct/util/ に呼び出し元の Java クラスがあり、C ファイルもそこに入ります。
CファイルはJavaパッケージに属していないと思うので、これも好きではありませんでした。
このような問題を以前に解決した人はいますか?一般的に、2 つ以上の言語が混在するコードベースを編成する際に従うべき適切な戦略は何ですか?
更新: プロジェクトで C または C++ を使用する計画はありません。おそらく Jython を使用する予定ですが、C を使用することによってのみ解決できる機能や、C を使用することで解決するのが最適な機能がいつ顧客に必要になるかはわかりません。