在浏览器

时间:2016-03-24 15:31:43

标签: clojure

我正在开发一个Clojure应用程序,它从网上下载图像并根据特定标准对其进行分析。

无论这可能意味着什么,重要的是,应用程序中会有一些相当昂贵的功能,需要一段时间才能处理完毕。

最后,会有一个API将应用程序的功能暴露给Web前端。这是第二步。

由于应用程序与图形有很大关系,因此可视化我在开发过程中编写的函数的输出。 基本上我正在寻找一种简单的方式/环境来存档。 更准确地说:每当我创建一个新函数时,我想在浏览器中测试它的功能:例如。绘制输出,绘制一些中间步骤,可能创建一些小的交互式脚本,这有助于我监督算法正在做我想做的事情。注意:我不想将函数转换为ClojureScript并让它们在浏览器中运行,浏览器应该只是一个“显示”。

我想到了一些方法:

  • 编写一个后端服务器,公开命名空间的所有功能。因此前端可以通过向服务器发送ajax请求来访问所有这些功能,包括函数及其在字符串中的参数,或者更好的edn格式。后端接收请求,调用请求的函数并在计算完成时发回结果。可能已经有一个项目,这正是这个吗?

  • 使用像"Gorilla Repl"这样的项目这将是一个不错的选择,也许我会使用它。但是,我还不知道它的机制是否涵盖了交互式影响渲染输出的方法。它更像是一个带有静态渲染的工作表。

你们会怎么做?任何建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

我一直在研究类似的问题,我认为你可以使用Lighttable + Clojure + Nerdy-painter(插件)的组合。

Nerdy-painter允许您在Lighttable(IDE)上显示图像。对数据探索或任何与图形/图表有关的东西非常有用。

免责声明:我是书呆子画家的作者,我认为最快/优雅的解决方案是我上面描述的那个。所有其他解决方案都为开发周期增加了(IMHO)过多的开销。

答案 1 :(得分:0)

可能是使用Jupyter的clojure内核与clojure进行交互。 Jupyter在浏览器中运行,您可以添加自定义绑定以简化对DOM的访问。

这是一个clojure内核:https://github.com/roryk/clojupyter