构建系统能力:用“体系价值”倒逼业务信任 —— 前端架构师怎么搞

253 阅读7分钟

很多非技术背景的人常觉得“页面不就是展示下数据、改改样式吗”,但随着业务模块增多、需求频繁变动、人员更替、多人协作,系统开始出现:

  • 字段重复写、逻辑散乱、权限混乱;
  • 页面逻辑越加越多,开发者不敢动老代码;
  • 接口字段变动引发连锁 bug,找不到原因。

前端架构的目的就是在“系统复杂但人力有限”的前提下,支撑系统稳定运转并持续演进。

真正的高级,不是掌握了多少 API,而是能不能建立一套通用规则,让别人跟着你写。

在很多前端团队里,经常听到这样的对话:

  • "等产品图出来我再看怎么拆组件"
  • "接口还没好,我先等等再写页面"
  • "这个字段要不要显示,我先问问后端有没有这个值"

这些话的本质是什么?你没有系统能力,只能“配合”,无法“推动”。

一、什么是系统能力?

系统能力,不是你代码写得多快、封装多炫,而是你有没有建立一套可复用、可拓展、可维护的“规则体系”。

你写的不是“组件”,而是“组件的生成逻辑”;不是写页面,而是定义“如何生成页面”。

举个例子:

你写了一个表格,有个字段叫 status,启用/禁用。

初级写法:在每页的 columns 都写 render:

{
  title: '状态',
  dataIndex: 'status',
  customRender: ({ text }) => text === 1 ? '启用' : '停用'
}

中级写法:抽一个 getDictLabel 函数:

getDictLabel('STATUS', val)

高级写法:根本不写,所有字段都由字段中心管理:

const FIELD_CONFIG = {
  status: {
    label: '状态',
    dict: 'STATUS_OPTIONS',
    renderType: 'tag',
    search: true,
    editable: false,
  },
}

然后组件自动识别字段定义,表格、搜索、表单都能渲染。

这时候你不是在“写代码”,你是在“定义系统能力”。

二、深入浅出:什么是前端架构?

前端架构不是一种技术,而是一种组织协作和系统可持续演进的保障机制。

我们可以把前端架构拆成三层:

🔧 第一层:底层规范与基础设施

解决的是“团队怎么统一风格、规范流程,避免踩坑”。

实例:

  • 新人刚进组,每个人写的路由、组件风格都不一样,有的用 setup,有的还在用 mixins,代码看着就乱。

你该做什么?

  • 配置 eslint + prettier + husky 统一代码风格
  • 设计统一项目结构(pages、components、utils 分层)
  • 用 vite 或 webpack 抽出统一的构建模板
  • 建 UI 组件库,约定 button、modal、tag 都是自家组件,不再用 el-button、a-button 混写

📌 本质:让“写代码”这件事变得像“拼乐高”,有规则、有约束、统一标准

🧩 第二层:中层业务建模与通用能力抽象

解决的是“我们怎么高效交付每一个业务页面”。

常见重复劳动:

  1. 每页重复写搜索逻辑、状态变量
const searchForm = reactive({ name: '', status: '' });
const getList = () => axios.get('/list', { params: searchForm });
  1. 每个表格都写 columns、render、format:
columns: [
  { title: '创建时间', dataIndex: 'createdAt', customRender: (val) => format(val) },
  { title: '状态', dataIndex: 'status', customRender: (val) => getDictLabel('STATUS', val) }
]
  1. 每次跳转都写 this.$router.push,返回还得手动回填搜索条件

高阶做法:

  • 封装 useListState/usePageModel:自动绑定接口、字段、搜索、分页、跳转缓存
  • 页面结构统一写成:
<PageWrapper :model="pageModel" />
  • 所有字段都写在字段中心 schema 里,一改全局生效

📌 本质:写页面 = 写配置,我们更需要的是思考,不是敲代码

🏗️ 第三层:顶层协作与系统演进机制

真正的架构师关注的是“当系统很大时,我们怎么不崩?

举例:

  • 某个系统有 12 个业务模块、30 个页面、多个开发人员
  • 有些页面由外包写,有些是内部写,交付不一致、风格混乱、后期维护代价高

你该做什么?

  • 明确每个模块的 ownership 与技术栈(是否允许多版本 Vue?)
  • 样式主题抽成 config;权限统一为 roleConfig;字段统一来自 schema
  • 所有页面都可通过页面 DSL 定义(页面模式、字段、行为)
  • 通过组件能力平台,把交付从“页面交付”提升为“页面能力交付”

📌 本质:打造可扩展、可治理、可协作的前端生态

❗架构不是为了技术优越感,而是为了降低复杂系统的人力维护成本,并提升多人协作下的交付效率和质量保障能力。

三、不是拖拽才是低代码,真正的低代码是建模思维

低代码不是用鼠标拖几个组件出来,而是:

  • 字段有 schema
  • 视图由 schema + 控件映射生成
  • 搜索、分页、跳转由 useListState 管理
  • 权限/展示由字段 config 决定
  • 页面结构通过组合模型(list → form → detail)搭建

✅ 举例:

export const userListPage = {
  type: 'list',
  api: '/api/user/list',
  fields: ['name', 'phone', 'status', 'createdAt'],
  actions: ['edit', 'delete'],
  schemaSource: 'UserFieldConfig'
}

页面不再是 template,而是 config。

📌 真正的低代码,不是工具换皮,而是“用规则表达系统”,实现“规则驱动 UI”。

四、 🚀 前端推动式开发思维模型

🧭 1. 思维转变:从被动实现 → 主动引导

被动前端推动式前端
等设计、等接口、等确认建字段、拉草图、出 mock
需求到哪写到哪页面模型先行,逻辑预演
组件只为当前项目写组件组合抽象、沉淀场景模式
实现功能为目标构建体系为导向

📌 核心理念:你不是被动执行,而是用前端工程方法引导需求清晰、接口规范、流程落地

🔧 2. 核心抓手:三大“先行”模型

🔹 ① 字段先行:用 字段定义驱动页面

  • 建立字段 schema(字段名、类型、枚举、显示规则)
  • 支持 mock 数据生成,字段映射、格式化规则提前定义
  • 提供字段配置中心,支撑表单、表格、详情复用

📌 推动接口建模,减少字段重复实现

🔹 ② 页面骨架先行:用 结构模板引导设计

  • 页面无设计稿时先手画出 layout 草图(如:搜索 + 表格 + 操作栏)
  • 模拟按钮、跳转流程、编辑弹窗位置
  • 封装 CRUD 模板页(如 useSmartPage)

📌 产品未明时先占位,设计来了再完善细节

🔹 ③ 行为规则先行:用 行为模型支撑功能流程

  • 抽象页面行为模型:查看、编辑、删除、审批、跳转、弹窗
  • 用状态变量 + 配置映射行为
  • 页面行为不硬编码,支持流程修改、权限适配

📌 流程不靠死代码,而靠状态 + 模型解耦

🔄 3. 协作机制:反推式需求确认法

通常流程推动式流程
产品出需求 → 前端写页面前端先草图 + mock → 产品确认 → 开发
等接口 → 写页面字段建模 → mock 接口 → 接口对齐
写完联调 → 频繁修改schema 驱动 → 接口结构稳定

📌 前端在流程中成为 接口结构的定义者、页面逻辑的发起者、业务流程的推动者

🏗️ 4. 技术落地建议(可选工具/思路)

  • 字段 schema 管理 → fieldSchema.tsformSchematableSchema
  • 页面模板 → useListPage / useCrudPage / useDetailPage
  • 状态模型管理 → useModalControllerusePageMode
  • mock 工具 → mockjsfaker.js、本地数据服务
  • 组件资产中心 → 组件仓库 + 示例 + 用法约定

推动式开发的核心,不是抢活干,而是用体系让“需求变清晰、接口变规范、协作变高效”。

五、总结:你写的不是功能,是系统能力

写页面不难,难的是让系统不崩、协作顺滑、改动低成本

这正是“系统能力”存在的意义。你会发现,初级开发写的是逻辑,中级开发写的是结构,高级开发写的是规则。

真正的架构思维是:

  • 我们如何统一入口、权限、字段、行为?
  • 我们是否能做到,页面变了只需要改配置?
  • 我们能否支撑多人协作、长期演进,而不把代码写成屎山?

✅ 所以:

架构不是写复杂,而是让简单变得持续可做; 不是搞玄学,而是让大家有章可循。

不是体系让你变强,而是你用体系解决了什么“别人搞不定的问题”。

前端架构是“以最小成本、安全交付和持续演进”为目标的系统设计与协作机制。

你写的不只是代码,而是别人也能复用的“能力”; 你交付的不只是页面,而是整个系统的稳定和未来。从写页面,到设计系统;从执行任务,到引导协作。

这才是“体系价值”的真正含义,也是“让业务不得不信任你”的底层逻辑。