Java 使用不同语言的最佳实践是什么?

Java 使用不同语言的最佳实践是什么?,java,python,ruby,shell,node.js,Java,Python,Ruby,Shell,Node.js,我刚刚加入了一个新项目,该项目结合了许多用不同语言编写的组件(Python、Ruby、Java和Perl)。该项目是一种处理文档的管道,可以作为命令行shell脚本运行。管道/外壳脚本将内容从工具传递到另一个工具,然后最终将输出打印到文件中。在此过程中,某些工具会打印文件,然后这些文件将用作其他工具的输入 我在这个项目中的工作就是把它放到网上。因此,我的问题是,在这样一个有许多组件使用不同语言编写的项目中,应该遵循什么样的正确/最佳实践方式/体系结构? Node.js是否是能够像LinkedIn

我刚刚加入了一个新项目,该项目结合了许多用不同语言编写的组件(Python、Ruby、Java和Perl)。该项目是一种处理文档的管道,可以作为命令行shell脚本运行。管道/外壳脚本将内容从工具传递到另一个工具,然后最终将输出打印到文件中。在此过程中,某些工具会打印文件,然后这些文件将用作其他工具的输入

我在这个项目中的工作就是把它放到网上。因此,我的问题是,在这样一个有许多组件使用不同语言编写的项目中,应该遵循什么样的正确/最佳实践方式/体系结构?

Node.js是否是能够像LinkedIn所说的那样组合组件的最佳工具/语言:“

您应该最小心的一件事是安全性。如果要通过web公开一些可执行的脚本,尤其是需要用户输入的脚本,则需要彻底验证它


这可能是最重要的一件事。框架或体系结构的选择将是安全性的次要选择。

您应该最小心的一件事是安全性。如果要通过web公开一些可执行的脚本,尤其是需要用户输入的脚本,则需要彻底验证它

这可能是最重要的一件事。框架或体系结构的选择将是安全性的次要选择。

我认为正确的答案可能会填满书籍

这就是说,我建议通过实现某种服务总线来避免小模块与谁知道谁交谈的不洁混乱。如果你能做到这一点,那么所有的语言/子项目都必须只与总线兼容,而不是与其他所有语言/子项目兼容。这样,复杂性将从N阶乘下降到2xN。

我认为正确的答案可以填满书本


这就是说,我建议通过实现某种服务总线来避免小模块与谁知道谁交谈的不洁混乱。如果你能做到这一点,那么所有的语言/子项目都必须只与总线兼容,而不是与其他所有语言/子项目兼容。这样,复杂性将从N阶乘降低到2xN。

您可以设置一个web服务器来调用现有的shell脚本。你为什么需要更多的东西?现在还不清楚您的需求是什么,node.js与任何事情都有什么关系,或者您的要求是什么。我刚刚编辑了我的问题和标题,希望能澄清一下。对不起,如果我不善于表达我的想法:(好的,但是再说一遍,为什么不直接从web服务器调用现有的shell脚本呢?这不会在最短的时间内解决问题吗?您可以设置一个web服务器来调用现有的shell脚本。您为什么需要更多的东西呢?您的需求是什么,node.js与任何东西有什么关系,或者您的身份是什么,现在还不清楚国王。我刚刚编辑了我的问题和标题,希望能澄清一点。如果我不善于表达我的想法,很抱歉:(好的,但是再说一遍,为什么不直接从web服务器调用您现有的shell脚本呢?这难道不能在最短的时间内解决问题吗?-1因为忽略了一个显而易见的问题:
框架或体系结构的选择将是安全性的次要选择。
错误的选择将导致无法管理的代码,而这肯定会导致不安全的代码……被忽略。)次要并不意味着它不重要。如果你要优先考虑(事情总是第一位的,延伸到第二位),还有其他不可忽视的因素。代码可维护性是其中之一。上述框架中的一个优点是效率。在任何框架中,专家都会编写比新手更好的代码。我在Java中见过stackoverflow错误,这可以很好地防止此类错误,但显然不会防止自己的无能。你可以选择首先是ose框架,当某人的密码出现在黑客论坛中时保护它。这是一个优先事项。-1忽略显而易见的:
框架或体系结构的选择将是安全性的次要选择。
错误的选择将导致无法管理的代码,而这肯定会导致不安全的代码…作为次要并不重要意思是它不重要。如果你要优先考虑(事情总是第一位的,延伸到第二位),还有其他不可忽视的因素。代码可维护性是其中之一。上述框架中的一个优点是效率。在任何框架中,专家都会编写比新手更好的代码。我在Java中见过stackoverflow错误,这可以很好地防止此类错误,但显然不会防止自己的无能。你可以选择首先是ose框架,当有人的密码出现在黑客论坛中时保护它。这是一个优先事项。这是假设所有组件最初必须与所有其他组件兼容。我阅读OP问题的方式是,这些工具形成了一个固定的管道,其中每个工具的输出被传递到另一个工具,而另一个工具不需要这是假设所有组件最初都必须与所有其他组件兼容。按照我阅读OP问题的方式,这些工具形成了一个固定的管道,其中每个工具的输出都传递给另一个理解它的工具。