c++应用程序的Java GUI -这是一个好的设计吗?
A Java GUI for a C++ application - Is this a good design?
是的,当面试官提到他们在C/c++应用程序中使用Java-swing GUI时,我有点惊讶。我很好奇,问他他们是如何将这些整合在一起的,他的回答是"通过消息传递"。有趣!嗯,我对这种方法很陌生,我很好奇那些公司是否真的使用这种设计。如果是,那么这种设计是否有很大的优势?我有点难以理解这个设计是如何工作的,如果你有任何参考,请分享。
仅供参考,该产品是基于数据备份的应用程序(可能在Linux/Unix平台上)。谢谢你。
CV
我看不出有什么问题。通过消息传递集成不同的组件是非常常见的。我确实认为拥有一个同质的环境(例如,所有的应用程序都是用Java编写的,而不是用Java和c++编写的),但是通常情况下,您必须集成用其他语言编写的遗留或第三方组件,要么是出于成本原因,要么是因为没有其他选择。
消息传递是实现此目的的常用方法。我认为HTTP是在"消息传递"的保护伞下,几乎每种语言都有一个HTTP库——这使得它成为一个很好的选择作为通用的消息传递"语言"。当集成一个非常异构的系统时,有专门的工具/框架不仅用于集成组件,而且还用于集成消息传递系统(例如esb)。
如果没有更多关于应用程序需求的信息,很难判断这是否是一个好的设计。
另一件要考虑的事情是,有时面试官会提出一些奇怪的设计,看看候选人的反应。当我招聘的职位不是我的个人能力,而是我有经验(通常是把事情搞砸)的时候,我通常会这样做。我的目标是看看候选人是否比我更擅长解决问题!不合格的候选人会盲目地接受我糟糕的解决方案。更好的候选人会立即提出更好的解决方案。最佳候选人将比较和对比我的弱解决方案和他们更好的解决方案,并探索每个选项的意义。我猜选择Java前端是出于可移植性的原因。我认为基于浏览器的界面可以实现同样的目标,但也许他们的UI/UX人员真的很喜欢Java。
对于为什么他们必须首先调用c++函数,然后在此之上,他们可能有分布式客户端需求,这可能是有限制的。如何开发一个解决方案,构建一个消息传递系统并在服务器端与c++接口。在一天结束的时候,这是一个有效的解决方案。我不希望ui必须用c++构建,因为服务器端是用c++编写的,有时您需要将不同的技术组合在一起来实现您的解决方案。
这是一种可行/OK的方法。2005-2006年,我在一家非常大的公司(《财富》20强公司,如果有这样的公司的话)当合同工时,我看到这家公司采用了这种方法。
当我问为什么时,我被告知:
- 需要Linux GUI, java/SWING是一个不错的选择。我还认为他们有一些Java开发人员需要工作。他们用c++/C编写了大量对性能至关重要的代码库。
- 他们已经广泛使用消息传递,并为此建立了库。 消息传递接口虽然开发成本更高,但允许团队编写测试程序(例如用python脚本替换生产GUI)。
也就是说,Qt和GTK/Gtkmm都是非常好的GUI框架,为什么不使用它们呢?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 调试控制台 ChessEngine.exe "used"在另一个应用程序(国际象棋 GUI)中
- 试图打开并读取一个.txt文件,但它从原始文件中删除了实际文本(Qt GUI C++
- 有没有办法拿一个opencv显示窗口并将其保存到GUI窗口?
- Qt 如何将数据从一个 GUI 传递到另一个线程
- QT Windows GUI-无需qtSingLeaplication即可如何打开一个实例
- QNetworkAccessManager即使在另一个线程中也能冻结GUI
- 在QT GUI中创建一个全局对象
- 为Python逻辑创建一个C++Qt Gui
- 我是一个菜鸟,但是我可以编写一个带有gui的c ++程序,并让它在Visual Studio 2010 express和ubuntu中的终端上运行吗?
- 如何通过在另一个线程中提出的升压信号更新QT GUI
- 如何创建一个可以在GUI对话模式下或通过命令行启动的C MFC程序
- 一个 c++ 中的 gui 库作为 Web 客户端
- 什么是一个为osx制作C++GUI的好程序
- 在Qt Gui中,如何使每次点击都随机出现一个按钮
- 可以推荐哪一个免费的IDE for C++,带有简单的GUI开发环境(Windows)
- wxWidgets:如何在不将控制权传递给它的情况下制作一个 GUI
- 我的线程工作不好,它给出了所有结果,最后没有一个接一个,GUI 在线程运行期间挂起?
- Qt GUI 如何从另一个类获得进度
- GUI库:从头开始编写一个GUI库需要多长时间?