2011-10-20 9 views
5

インタビュアーがC/C++アプリケーション用にJava-swing GUIを使用していると述べたところ、少し驚きました。私は好奇心を持っていて、実際にこれらをどのように統合するのかを彼に尋ねました。彼の答えは「メッセージングを通して」でした。面白い! まあ、私はこの種のアプローチには慣れていませんし、そこにいる企業がこの種のデザインを本当に使用しているのか不思議です。はいの場合、このデザインに大きな利点がありますか?このデザインがうまくいくかどうかを理解するのはちょっと難しいですが、参考までに分かち合うと分かります。C++アプリケーション用のJava GUI - これは良い設計ですか?

FYIのこの製品は、データバックアップベースのアプリケーション(Linux/Unixプラットフォームの可能性があります)です。 ありがとうございます。

CV

+1

私は彼らがこのように設計した唯一の理由は、彼らが一緒に働く "C/C++ guy"と "Java guy"を持っていて、どちらもどちらも快適ゾーン外で開発したかったからではないかと思います。私には悪いデザインのように聞こえる。 – hspain

+0

これがStackOverflowの質問か[programmers.stackexchange](http://programmers.stackexchange.com)か分かりません。私は、これが彼らのコーダーの専門知識のためかもしれないと思う - 彼らはJava GUIのほうが快適かもしれないが、C/C++の "勇気"でうまくいく。とにかく、私はこの質問をこのタイプの質問のより適切なサイトとして[programmers.stackexchange](http://programmers.stackexchange.com)に移すことにしました。 –

+2

かわいい髪の毛を持つ人は、JavaがUI /ポータビリティ(おそらく90年代後半)に最適であると聞き、Javaを使用するように強制しました。あるいは、バックエンドシステムが多くのネイティブコードに依存していた可能性があるので、スタンドアロンのC++アプリケーションとしてすべてを書く方が簡単でした。 – ObscureRobot

答えて

3

アプリケーションの要件の詳細なしで良いデザインであるかどうか言うことは困難です。

考慮すべきもう1つのことは、候補者がどのように反応するかを見るためにインタビュアーが奇妙なデザインを提案することです。私は通常私が私の個人的な能力ではなく、私が経験を持っていた役割(通常は物事を上げる)のために雇いたいときにこれを行うでしょう。私の目標は、候補者が私よりも問題を解決する上で優れているかどうかを確認することです!悪い候補者は私の貧しい解決策を惜しみなく受け入れるだろう。より良い候補者はすぐにより良い解決策を提案するでしょう。最善の候補者は、弱点の解決策を自分のより良い解決策と比較して対比させ、それぞれの選択肢が意味をなされるときに検討します。

Javaのフロントエンドが移植性の理由から選択されていると思います。私は同じ目的を達成するためにブラウザベースのインターフェースを主張するだろうが、多分UI/UXの人々は本当にJavaを愛していただろう。

7

何も問題はありません。メッセージングを通じてさまざまなコンポーネントを統合することは非常に一般的です。私は、同種の環境(例えば、JavaやC++ではなくJavaで書かれたすべてのアプリケーション)を持つ方が一般に良いと思いますが、多くの場合、他の言語で書かれたレガシーコンポーネントやサードパーティ製コンポーネントと統合する必要があります。コストの理由または他の選択肢がないためです。

メッセージングは​​これを行う一般的な方法です。私は、 "メッセージング"の傘の下でHTTPを検討しています。ほとんどの言語にはHTTPライブラリーがあり、共通のメッセージング言語としての良い選択となっています。非常に異種のシステムを統合する場合、コンポーネントを統合するだけでなく、メッセージングシステムを統合するための専用のツール/フレームワーク(例えばESBs)があります。

+3

私は同意します。なぜあなたはそれに話すGUIを追加することができる場合は、作業システムを書き換えます。これは、金融サービス業界では非常に頻繁に起こります。レガシーバックエンドシステムには、メッセージを介してバックエンドに通信する新しいGUIが(たいていはJavaで)提供されています。実際には、インターネットバンキングソリューションの大部分、さらにはATMの仕事までがこのように正確に機能しています。 – Ewald

1

最初にC++関数を呼び出さなければならない理由と、次にクライアント要求を分散させる可能性があるという制約があります。どのようにソリューションを開発すれば、メッセージングシステムを構築し、それがサーバー側のC++とのインターフェイスになるのでしょうか。これは、1日の終わりに有効な解決策です。サーバー側はC++で書かれているため、異なる技術を組み合わせてソリューションを完成させる必要があるため、UiはC++で構築する必要があります。

1

私は契約者2005-2006としてそこで働いていた時、それは非常に大規模な(そこにあればFortune 20)会社で使用されたことがわかりました。私は理由を尋ねられたとき

、私は言われた:

  1. をLinuxのGUIはJava/SWINGは立派な選択肢である必要があります。また、仕事が必要なJava開発者もいたと思う。
  2. C++/Cには、パフォーマンスに重要なコードベースがありました。
  3. 彼らはすでに広範囲にメッセージングを使用しており、そのためのライブラリを持っていました。
  4. メッセージングインターフェイスは、開発するのが高価ですが、チームはテスト用プログラムを書くことができます(プロダクション用GUIをPythonスクリプトに置き換えるなど)。

QtとGTK/Gtkmmはすべて非常に優れたGUIフレームワークであり、なぜそれらを使用しないのですか?

関連する問題