避免在多种不同语言中编写相同的算法

时间:2012-03-08 02:25:49

标签: javascript web-services code-reuse language-interoperability

我是一名Web开发人员,我观察过很多次我需要在客户端和服务器上使用相同的功能。所以我用JS以及PHP或任何服务器端语言编写它。我厌倦了这个。如果我必须改变它,那么我需要在两个地方改变它。如果我想将它用于某些手持设备,那么我将不得不再次使用Objective-C或Java等重写该代码。然后,如果我需要更改该功能,那么我将需要在任何地方更改它。

有解决方案吗?如果我将通过ajax调用一些web服务,那么客户端将有延迟。如果它将在JS中,则无法从PHP或Java等中访问它。如果我使用其他语言的PHP中的某些服务,那么这也可能成为性能问题。

有些时候我们还需要从某些参数输出这些函数作为使用db或不使用db的输入。

我知道会有一些非常简单的解决方案,但我不知道。请告诉一些语言无关的解决方案,因为我没有VPS。

我不确定我的问题是否真的属于stackoverflow.com或programmers.stackexchange.com所以请将它转移到programmers.stackexchange.com,而不是关闭这个问题,如果它属于那里。

2 个答案:

答案 0 :(得分:3)

通常,此问题的解决方案是使用一种语言编写公共代码,并使用翻译器或库链接以允许从其他语言进行访问。

Node.js允许您使用JavaScript编写服务器端代码。

  

Node.js是一个基于Chrome JavaScript运行时的平台,可轻松构建快速,可扩展的网络应用程序。 Node.js使用事件驱动的非阻塞I / O模型,使其轻量级和高效,非常适合在分布式设备上运行的数据密集型实时应用程序。

您还可以使用JavaScript为移动设备编写HTML5应用。

"Building iPhone Apps with HTML, CSS, and JavaScript"

  

现在,网页设计师和开发人员可以加入iPhone应用程序派对,而无需学习Cocoa的Objective-C编程语言。确实如此:您可以使用HTML,CSS和JavaScript的现有技能快速有效地编写iPhone应用程序。本书向您展示了如何使用大量详细示例,分步说明和动手练习。


如果您不想尝试在JavaScript中编写大型复杂应用程序,GWT提供了编写Java和via-translation的方法,请在客户端上运行它。

  

GWT SDK包含Java API库,编译器和开发服务器。它允许您使用Java编写客户端应用程序并将其部署为JavaScript。


如果您使用.Net语言开发:C# - > JavaScript ScriptSharp

  

Script#是一个免费工具,可以让开发人员编写C#源代码,然后将其编译成适用于所有现代浏览器的常规脚本

答案 1 :(得分:1)

你可以使用spidermonkey扩展将php翻译成javascript。通过这种方式,您可以在php中编写函数,然后将它们转换为javascript并在浏览器中重复使用它们。

here is a good tutorial to show you how this is done

相关问题