请在2024 Clojure状态调查!中分享您的想法。

欢迎!请查看关于页面了解更多关于这个平台的信息。

+6 投票
Libs

如果Clojure要成为(甚至)更具数据导向的语言,这些是达到这一目标的强大工具。社区需要支持以鼓励采用。

就个人观点而言,目前对datafynav的文档状态不足以鼓励大规模的独立学习。

尽管社区中有些人做出了英勇的尝试(例如.SeanCorfield,他在这里有一篇优秀的博客文章,并且是积极的倡导者),但没有任何权威的文档来源。

在网上很难找到例子... 这里有一个很好的例子,是由@Frederick在Slack上的一条推荐消息。

我们知道Slack存在问题,因为我们无法轻松搜索历史,因此将其保存在这里可能会帮助人们在短期内找到它。

最好有一个解释它解决问题的原因、总体方法和某些设计细节的原理。

同样,需要一个关于如何使用它的指南,包括一个工作示例和一些关于如何处理实现的一些提示和技巧。

我知道这被标记为alpha,但这并没有阻止其他语言方面的文档。

1 答案

+3 投票

是的。Stu的REBL演讲很好地概述了背景信息。

https://youtu.be/c52QhiXsmyI

与REBL类似,shadow-cljs Inspect UI也使用了datafy/nav。不知道是否有其他官方的datafy/nav目标,但它非常适合这样的数据探索工具。许多东西都不是数据且难以检查。datafy解决了这个问题。

作为一个用例示例,我有一些在shadow-grove WIP框架中的自定义类。在REPL或Inspect中遇到实例时,你会得到默认的`#object [shadow.experiments.grove.component.ManagedComponent ...]`打印表示,这并不很有用,也没有告诉你很多关于对象的信息。然而,通过快速扩展类型[1],你可以让这些对象看起来更像常规的clojure数据,从而更加清晰可见。

[1] https://github.com/thheller/shadow-experiments/blob/master/src/main/shadow/experiments/grove/dev_support.cljs
Reveal和Portal都类似于Cognitect的REBL使用datafy/nav。

https://vlaaad.github.io/reveal/

https://github.com/djblue/portal

Stu有一个GitHub项目,为datafy/nav添加了扩展的命名空间反射

https://github.com/stuarthalloway/reflector

我也使用这个库扩展Java Time类型的数据fy/nav

https://github.com/jimpil/jedi-time
太好了,这是个好消息。有没有时间表(例如1.11)或可以和这个问题一起投赞成票的工单编号?
by
您可以在https://github.com/clojure/clojure-site/issues提交关于Clojure网站的请求。
...