构建使用多种编程语言开发Web应用程序的基础架构(Python Java C#)

时间:2012-05-14 10:37:51

标签: java python architecture

我在不同的地方搜索过这个,但我没有找到详尽的答案。假设我们有不同语言编写的单独模块,每个模块都实现了逻辑的某些部分。我们无权将它们重新编译为某种语言(例如使用JPython)。

我在编程的这一部分是一个真正的新手所以很难找到描述这个问题的词。我似乎试图找到像Maven这样的东西,但是对于多种语言,并且可以预编译附加模块。

这在理论上是否可行?

3 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了问题,但我想说你想用多种语言构建网络应用程序。我的第一个猜测是面向服务的编程。您可以使用多种语言构建服务,并且可以通过JSon或XML进行通信

答案 1 :(得分:1)

当然可以。例如,我使用以下方法开发了Web应用程序:

  • Java(用于后端接口,API和性能敏感代码)
  • Clojure(服务器端的主要Web应用程序)
  • JavaScript(用于浏览器中的客户端代码)

总的来说,这非常有效,因为您可以使用每种语言来发挥其特定的优势。虽然你应该被警告说,它确实需要你在所有语言中都非常熟练才能有效,并且它确实需要更多的环境配置才能让一切工作顺利进行

我觉得有用的技巧:

  • 非常清楚您使用每种语言的原因。例如,JavaScript可能严格限制在浏览器中的客户端代码中。
  • 如果语言在同一平台上运行,这会有很大帮助。例如,Clojure和Java都在JVM中运行,这使得互操作性变得更加容易,因为您不需要任何额外的代码来连接两者。
  • 使用支持您打算使用的所有语言的 IDE (在我的案例中为Eclipse)
  • 使用具有多语言支持的优秀构建系统。您希望能够执行包含所有语言的“一键构建”。 IMHO Maven是最好的工具(特别是如果你使用类似Eclipse插件的东西与IDE集成)

答案 2 :(得分:1)

我认为rocco337的面向服务的编程确实是一个好主意。 但是这种特殊方法有一点点缺点。 由于所有这些HTTP请求,您的服务之间的流量。 我听说亚马逊因此受到了影响,但他们认为这是因为他们是巨人。

这个也有它自己的缺点。 试想这个是肮脏而快速的选择。

我最近构建的Web应用程序基于python,php和一堆C模块。

我混合他们的方式是使用简单的命令行和shell脚本。 而python作为一种粘合语言非常有用。

基本上你要做的就是。

一个。异步方法。 (当你的模块需要几秒钟才能完成它的工作时)

  1. 打开一个主题
  2. 运行命令行应用程序(用java编写,C#用什么)
  3. 在等待结果时显示您想要的内容。
  4. 当你从命令行获得结果时,让用户重新加载或使用ajax来刷新你的视图结果。
  5. B中。同步方法。 (工作很简单)

    1. 运行命令行应用程序
    2. 等到你得到结果。
    3. 显示结果来自2
    4. 的用户结果视图

      祝你的项目好运!