私たちはインディアンとプロジェクトを書きます。
一般的なアーキテクチャをプロジェクトアーキテクトとして定義しました-Java、Springなど。
しかし、彼らが書く必要のある分野では、彼ら自身が何をどうするかを決めました。
そして、それらはC / C ++ですべてを行うことに慣れています。
その結果、そのようなモンスターが生まれました:
私たちのプログラムにはコマンドラインクライアントがあります。
Tclのコマンドとスクリプトで動作します(クライアントが非常に慣れているため)。
ネイティブのTclインタープリターを使用しました(JTclではありません)(インド人がそのように決定したため)。
コマンドはJavaで実装されますが、一部のコマンドはC ++コード(レガシーコード)を参照します
ただし、エラーおよび警告メッセージシステムはJavaで実装されています。
ヒンズー教徒はJNIを使用して記述し、JNAでCとのJava接続を作成しました
コマンドラインに入力したコマンドの動作はどのように見えますか?
Javaコマンドライン(jline)は行を読み取り、
JNIを介してCを呼び出します(TCLインタープリターを呼び出します)
TCLは行を処理し、それが彼のコマンドである場合、または
Javaを呼び出すためにCを呼び出します(コマンドが実装されている場合)。
CはJNIを介してJavaを呼び出します
必要に応じて、Javaコマンドが実行されます
無効なデータに関する警告がある場合、JNIを介してCを呼び出します。
JNAを介してJavaを呼び出します
これで、インディアンからのコードが渡され、次のバージョンではTclをJTclに置き換えます(システムで既に動作しています)