这可能是一个天真的,甚至不是一个有效的问题......
我已经制作了一个Perl 6程序(希望能够创建其他几个程序),该程序会考虑一些用户定义的参数来分析本地数据.我的几个同事/同事需要定期输出程序,所以他们给我发送参数,我运行程序并将它们发回输出.
由于整个过程不是很方便,我正在考虑可以做些什么来让每个人都更容易.以下是选项,它们似乎都不理想.
所以,我的问题是:是否有可能以某种方式使Perl 6在线工作?它可以在浏览器中工作吗?或者还有其他解决方案吗?
rai*_*iph 11
在我的同事的计算机上安装Perl 6,
...这可能会让事情变得更糟,而不是更好.
鉴于你所说的细节,...我同意.
制作程序的[a]变体(使用JS等),以便我的同事可以输入参数并在浏览器窗口中获得结果.
这是一个自然的选择imo.
(请注意,在我引用您的文字时,我将"在线"省略.如果您的同事能够通过内部网络查看您的计算机,那么您仍然可以执行JS/Web解决方案,但执行一个不公开的解决方案 - 而不是在线.基本上做同样的解决方案,但使用略有不同的服务器管道.)
另一种方法是接受结构化电子邮件.更多关于适当的地方.
我更喜欢使用Perl 6 ...
在Web解决方案中使用JS以外的语言代码的最常见方法是仍然在解决方案的"前端"中使用html等,通常包括JS,然后包括在服务器上运行的代码调用作为"后端".
(另一种方法是transpile到JS.从理论上讲,你可以通过transpile的Perl 6 JS 实验NQP后端.我认为这是一个令人兴奋的发展,但我怀疑这会在短期内缓慢和有限的.)
(本节的最后一点.如果您最终将Perl 6转换为JS解决方案,因为您不想学习或处理混合中的服务器,那么您将使用Perl 6作为原型设计这可能是使用语言的合法方式,但本答案的其余部分假定您将引入一个服务器.)
服务器是可靠地保持可用并且由于来自"客户端"(通常是其他计算机)的请求而按需运行软件的计算机或软件.
这听起来很简单,但在某些方面却是如此,但在其他方面却并非如此.如果有人关掉电源怎么办?或者没有支付互联网账单?或软件泄漏内存导致系统定期失败?或者黑客攻击并进入?
除非那些使用该服务的人已经可以通过本地网络看到服务器计算机,并且通常在那时,将服务器引入解决方案的现代方法是购买在线服务器包(通常基于虚拟化).(考虑每月几美元以上.)假设一个体面的服务提供商,这有效地保证它将是一个运行良好的服务器,通常保持开启,工作,连接和服务,除非它被黑客攻击或以其他方式破坏,并且如果后者发生,您将及时得到通知."零成本"替代方案是使您的桌面也成为服务器.这意味着您有责任保持桌面的正常运行和连接.
管理服务器的现代方法是在服务器顶部使用Docker或类似方法.这有效地保证您可以立即解决运行良好的服务器的问题,如果它被黑客攻击或以其他方式破坏.它还使您可以轻松拥有一个可以开发和测试的本地服务器,保证与部署的生产服务器完全相同.最重要的可能是,在您的桌面上安装Docker或在购买的服务器上使用它,然后放入已经准备好的docker文件意味着您可以从单独使用服务器到使用服务器几个按钮.
有一系列产品可以同时使用操作系统虚拟化和docker或docker技术来创建按使用付费的组合,您只需支付服务器使用时间而不是全天候可用.有许多进出口.有些人不支持Perl 6.据我所知,亚马逊AWS和谷歌云都支持付费使用并允许使用任何编程语言.
本答案的最后几节介绍了如何在服务器到位后使用Perl 6,从最不复杂的服务器开始.如果您想直接找到我推荐的解决方案,请跳到Cro的最后一部分.
特别是如果您不想在单独的服务器上花钱,为了简化一些事情,您可以让您的同事将结构化电子邮件发送到电子邮件地址,该电子邮件地址到达您在桌面上运行的电子邮件客户端,该电子邮件客户端会响应通过在桌面上运行Perl 6程序,然后在结果发送时通过电子邮件发送回来.如果您对此解决方案感兴趣,请发布另一个SO询问它.
其余部分则采用Web解决方案.
从网页调用在服务器上运行的代码是微不足道的.
您只需编写一个合适的链接点击指向动态程序而不是静态html页面.
如果您想收集参数,那么您只需编写一个表单和一个合适的提交按钮,然后按这样做.
给定一个已经编写过表单的现有网页,您可以学习如何传递参数,调用Perl 6代码,并在几分钟内显示结果,如果您阅读了相应的文章,例如如何使用CGI脚本生成网页.
Imo不值得做手工CGI这么低的水平.这样做有危险,而且有些模块可以使创建和维护变得更容易,更危险.
这些将出现在modules.perl6.org的"web"下.
Bailador显然是一个基本解决方案的选择,它通过"路由"(将URL映射到代码)和模板做了不错的工作.
如果您有兴趣使用最基本的自然方法来构建现代网站,我推荐使用Cro.Cro使用SPA方法构建简单的Web解决方案变得微不足道.但它的设计目的是使用Perl 6内置的功能,可以很好地扩展到可以想象的最复杂的Web站点,包括异步,并发,并行或分布式处理以及您需要引入的任何中间件.
对于像您在OP中所建议的那样非常简单的应用程序来说,一个Cro SPA可能有点过分,但它仍然非常简单,选择它有无数的优势,并且对于您的应用程序没有明显的缺点.(即使它是测试版产品正式身份是罚款您的方案海事组织.这已经是一个非常坚实的产品,开发者迅速提出的任何问题作出回应,这是具有重要战略意义,以这两个开发者确实Perl 6的,它保持清洁,快速,生产值得,并保持良好.)
获得整个设置以便开始玩Cro的最快方法可能就是安装Docker,如果你的服务器上还没有它(如果你将它用作服务器那么桌面就已安装),然后再安装croservices/cro-http Docker容器.
学习如何使用Cro提供单个网页的最快方法是遵循构建单页面应用程序与Cro教程.
一个很好的解决方案是你可以运行一个Jupyter Notebook服务器来使用https://github.com/bduggan/p6-jupyter-kernel
或者另一个是在glot.io上托管您的代码,以便他们可以在浏览器中运行它https://glot.io/new/perl6
那些将是我的快速解决方案.如果程序非常简单并且在命令行上运行,那么Rajudo的JVM版本可能会使用--target = jar将其打包,以便将所有内容打包到安装了Java的其他计算机上运行.
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |