可视化开发和前端开发的区别

起因

领导问我:

  • 可视化开发和前端开发有什么区别?

  • 同样一个功能(比如表格组件),可视化开发和业务前端开发来写,有什么区别?

  • 各自的技术难点是什么?哪个更难?

  • 前端开发招过来学习 1 个月就能干活儿了,为什么可视化开发要培养很久?

  • Copilot 和 Cursor 能替代很大一部分业务前端的工作了,为什么不能替代可视化开发的工作?

  • 现在市场上这么多找不到工作的前端开发,为什么要给可视化的开发加钱?

区别

主要还是初级开发的区别,高级开发的区别不大。

写机制 VS. 写流程功能

微内核+插件化的架构

数据驱动的架构

更注重协议驱动的编程

更注重抽象(Core)与扩展性(让业务方可以基于我们提供的 Core 机制,快速扩展自己的个性化需求)

复杂度

写组件的如果设计得不好,在很短时间内就会陷入需求和程序设计冲突、无法实现的困境。
可视化组件是一个整体实现 N 个功能,复杂度会随着需求的增加而增加,做到后面每次添加一个功能都要全局考虑,一个不慎很容易出现打地鼠 BUG,属于 O(n^2);

典型例子:改动个 Y 轴标题的对齐,会影响到整个图表的布局,甚至会影响到其他图表的布局。
而前端页面各个模块是独立的,天然降低了复杂度,属于 O(1)或者 O(n)。

技术栈的宽度

常规前端 + 2D 图表 + 3D 场景

对于依赖的技术的深度要求

我们必须原理&源码级别的掌握 ECharts 才能实现需求
业务开发不需要这样掌握 Vue 和 React 也能写代码

AIGC可视化组件与AIGC常规组件的区别

开发依赖与流程复杂性

可视化组件的开发高度依赖底层绘图库,其开发流程较长且较为复杂。在编写代码时,必须明确在特定流程中插入相应的代码,否则可能导致最终渲染失败。相比之下,常规组件的开发流程相对简单,通常基于成熟的框架和UI库进行搭建。

动画与交互的复杂性

复杂可视化组件通常包含丰富的动画效果和交互功能,这些在UI设计稿中难以充分体现,仅通过文字描述也存在困难。在实际开发中,需要考虑大量的状态管理和状态过渡问题。可视化组件由众多细粒度的原子元素构成,单个组件涉及多个原子元素之间的交互、状态通信和计算。因此,其复杂度远高于常规UI组件,对模型的理解能力也提出了更高的要求。

训练语料的缺失

与常规UI组件不同,可视化组件的开发缺乏足够的开源代码供参考。常规UI组件通常基于成熟的开源代码和框架,其基础模型中已具备相关知识,能够较好地生成对应的UI组件。然而,可视化组件相对较为特殊,其在模型训练语料中的占比相对较少,导致生成符合预期效果的组件较为困难。

开发模式的差异

常规前端开发通常基于框架(如React或Vue)和UI库(如Ant Design或ElementUI),通过元素排布和搭建形成完整的前端页面。而数据可视化开发则更类似于对框架的扩展,我们提供的是一种基础组件库,供其他业务方使用,而非通过现有组件搭建新的内容。

案例

2024.12.17 张宇航的 CodeReview

YLF 对我们的定位:提供公司层面的通用内容。

抽象,给其他业务通用,微内核架构,我们写 core 机制(比如 Core.Table),对外提供扩展性。

扩展性:
1、多次提到如果让刘帅来写怎么办?
2、我们写和业务方的开发来写有什么不同?
3、后续如果要扩展一种新的 Table 或者 Cell 怎么办?

面向接口编程。

分清边界职责,划分维度。

组件库代码每 2 个月推翻重构一版。

明确他所理解的抽象是什么。