返回首页
最新
大家好,我是Burak。
当代理成为现实时,我想做的第一件事就是自动化构建仪表板。我遇到的第一个,也是最明显的障碍是,很多工具都是通过用户界面驱动的。这意味着,如果没有代理处理浏览器的用户界面等操作,就无法让代理完成这些任务。此外,代理所做的任何更改也无法进行审查。
最初的想法是让代理为仪表板构建一个React应用。这在理想情况下效果很好,但我很快遇到了其他问题:
- 每个仪表板实际上都是不同的
- 需要实现一个后端来集中执行查询
- 没有集中控制可视化规则和标准的机制
- 没有简单的方法让语义层与仪表板协同工作
最终,代理在每个新的仪表板上都重新发明了轮子,即使在同一个项目下。为这些仪表板构建一个标准化的本地项目,实际上就是从头开始构建一个商业智能工具。
在尝试过这些之后,我问自己:如果仪表板是为代理作为主要用户构建的,会怎么样?
这样的产品需要具备几个特性:
- 首先,一切都需要由可版本控制的文本驱动。YAML格式很好。
- 对仪表板的更改应该易于人类审查和理解。
- 代理擅长编写代码,如果能通过代码驱动动态内容,那就太好了:JSX非常合适。
- 静态分析作为一等公民:在部署之前验证仪表板。代理也可以检查他们的工作。
- 基于文件夹中的几个文件以标准化方式进行部署:在操作上非常简单。
- 内置语义层以标准化指标。
这就是我最终构建的:dac(Dashboard-As-Code)是一个开源工具和规范,用于将仪表板定义为代码。它包含一个用Go实现的版本,可以作为单个二进制文件在任何地方部署。仪表板使用YAML和JSX定义,YAML用于静态内容,JSX用于动态仪表板。您可以在加载时运行查询以定义条件图表,按客户动态生成标签,或列出您正在进行的每个A/B测试的图表。
我选择用Go构建它,因为我非常喜欢Go,并且我认为它是目前与AI代理合作的最佳语言。
dac作为单个二进制文件运行,您可以通过`dac init`命令开始,它会根据duckdb自动为您创建一些示例仪表板。它支持10多种SQL后端,未来还会增加更多。它支持验证、自定义主题等功能。
您可以在这里查看它: [https://github.com/bruin-data/dac](https://github.com/bruin-data/dac)
我很想听听您认为可以改进的地方,请告诉我您的想法。
我爸爸出题,我负责制作网站。<p>我认为这个题材和难度适合HN(黑客新闻)。希望你们喜欢。<p>(我保证没有AI生成的问题,所有题目都是手工制作的!)
嘿,HN,fixi和朋友们是我其他项目的一些极简主义版本,我终于为它们整理了一个小网站。它们比htmx、hyperscript等更底层和原始,但体积仅为4.5KB。特别是fixi.js,旨在让人易于阅读:<p><a href="https://github.com/bigskysoftware/fixi/blob/master/fixi.js" rel="nofollow">https://github.com/bigskysoftware/fixi/blob/master/fixi.js</a>