技术拆解-人才分析蜂群图

业务前端的逻辑-这部分谁来写?
能提取业务逻辑工具库么?

工作量体现在哪些地方?

这个项目也做了两周了,比预期的时间长很多。

经过分析,我们的主要工作其实就是2个(图表渲染这次用的现成的蜂群图组件,无需开发):

  • 数据预处理
  • 动态配置项配置

这两天接入的困难是什么?交互太多

整个需求的不同图表,用的是一份数据,涉及很多的筛选和计算、联动交互。

根本原因-初期需求未确认:
没人对整体交互完全了解,进而导致不知道具体要做哪些数据处理。

职责分工的问题

业务后端-业务前端-可视化开发,三者的职责分工问题存在模糊的边界。比如业务数据的加工,谁都可以做,那么到底该谁来做呢?
我总结的3个决策树:

  • 前端不能做的,后端做,比如这次初期的大数据量的力导向布局,前端即使用WebWorker也做不了,必须后端预处理好数据。
  • 业务前端能做的,业务前端做。比如这次的筛选、分组等数据处理,业务前端完全可以做(但是我们得提供文档,供其AI辅助开发生成组件所需的数据格式)。
  • 按工作量分摊:前端和后端都能做的,那么就按工作量分摊。

我们要不要做业务前端的活儿(数据处理部分):看是不是可复用的。如果不复用,就业务前端做;如果可复用,就我们组件这边做。

优化方案

提供LLM友好的API和配置项文档

我们给到一个LLM友好的文档,给业务方,让业务方开发可以基于该文档,借助AI轻松的做数据处理。

提取工具库

这种类型的需求,搞个规范workflow(比如数据预处理-图形元素绘制-渲染)和框架,

函数提取出来,加上注释,下次给LLM用,比如工具函数(归一化、中位数等等)等。

筛选数据集

用D3+ZRender开发

可能会更快一些,因为这种业务图表,D3的数据处理和个性化定制能力更强。

坐到一起,在业务方项目上开发代码

我们可以和业务方的开发人员一起坐到一起,直接在业务方的项目上开发代码,这样可以更好地理解业务需求和数据结构,减少沟通成本。

Zod数据校验工具

可以使用Zod等数据校验工具,来确保传入的数据格式正确,减少因数据格式问题导致的错误。

技术方案拆解

布局计算

这次是全部纯前端计算好位置。
每一个组是一个单独的graph,用的蜂群图的absolute布局,自己算好位置,通过归一化 + 边距 + 比例尺计算最终的渲染坐标。

蜂群图和常规散点图的区别:一个数据点可以放多个数据。

分位线、中位线

因为这个图没真正的坐标系,是graph,所以是自己画的自定义系列,计算出【像素坐标】画的line。
数据到像素的映射-Y轴的比例尺
文本通过textContent绘制。

增量渲染

data: isVisible

漫游

前端自己维护什么delta变量?