首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用脚本语言运行业务逻辑

使用脚本语言运行业务逻辑
EN

Stack Overflow用户
提问于 2016-05-27 07:10:03
回答 2查看 294关注 0票数 1

我们有一个web应用程序,其中网页是动态构建的。动态意义上,整个UI存储为后端的JSON,前端相应地绘制UI。有一些用例,其中数据收集发生在多个表单上。表单的显示顺序取决于在以前的表单中输入的数据。

假设用户正在查看form1,并且可能存在一个业务逻辑,比如age > 25显示form2 else form3

这是一个简单的例子,但可能会变得更加复杂。不同客户的逻辑也不一样。这种业务逻辑也可以由第三方开发人员开发。

javascript是存储此业务逻辑的选项之一。但是,该应用程序正在Java7中构建,并部署在Google中。性能和安全性是决定该方法的重要标准。以下是我们到目前为止所考虑的办法:

  • 拥有一个单独的NodeJS应用程序并调用API来执行业务逻辑。
  • 在Javascript脚本引擎中运行JavaScript,它是JDK 7的一部分

您能建议在Java应用程序中执行javascript的最佳方法是什么吗?

EN

回答 2

Stack Overflow用户

发布于 2016-05-27 16:35:34

犀牛是一个完全用Java编写的JavaScript的开源实现。它通常嵌入到Java应用程序中,为最终用户提供脚本。下面是一个链接- http://www.mozilla.org/rhino/

票数 0
EN

Stack Overflow用户

发布于 2016-05-27 17:01:13

考虑到Javascript的全局性以及您所指的具体逻辑,我倾向于同意Alex关于JS的观点。尽管如此,对于犀牛的表现还是有抱怨的,所以我不会马上建议你这么做。除非性能对您的用例来说很糟糕,否则我建议您首先使用内置的。然后,当您了解更多关于用例和特定性能概要的信息时,您可以在需要时转向更好的解决方案。

这里有一些额外的想法来帮助你构建这个问题:

  1. 您应该运行任何向第三方开放的脚本解释器,并使用保姆线程。(也就是说,在消耗了一定数量的资源之后,杀死他们-这不是保姆应该做的事,但是唉……)。任何完整的脚本语言都可以执行一个简单的"while(true):wait()“
  2. 除非逻辑的复杂性是巨大的(例如,您说过一两个if-然后在您的示例中;这可以由任何语言来处理)语言不是安全性或性能的函数,而是一种舒适和熟悉使用它的功能--也就是说,JavaScript应该很容易。如果您的定制团队了解python,那么继续使用嵌入式jython,等等。
  3. 我不会为了简单的定制而分拆单独的服务。同样,除非复杂性很大,否则最好使用嵌入式引擎。旋转一个单独的NodeJS服务器来运行2行脚本是非常浪费开销、开发复杂性和维护(想象一下每次运行if --那么)--这并不难,但如果你忘记了这一点,或者雇了一个不知道这件事的初级开发人员,在两年内进行为期2天的24小时马拉松式调试练习,这可能是原因……
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37476996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档