<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Frontend on Saiga</title>
    <link>http://localhost:1313/categories/frontend/</link>
    <description>Recent content in Frontend on Saiga</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <managingEditor>wuwenzen@outlook.com (wuwj)</managingEditor>
    <webMaster>wuwenzen@outlook.com (wuwj)</webMaster>
    <lastBuildDate>Fri, 05 Sep 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://localhost:1313/categories/frontend/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>金融级流程页面的稳定性设计：草稿、断点恢复与幂等提交</title>
      <link>http://localhost:1313/posts/2025-09-05-fintech-flow-draft-recovery-idempotency/</link>
      <pubDate>Fri, 05 Sep 2025 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2025-09-05-fintech-flow-draft-recovery-idempotency/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;金融业务系统中的流程页面常见特点：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;多步骤（信息填写、声明确认、材料上传、结果确认）&lt;/li&gt;&#xA;&lt;li&gt;强状态依赖（前置条件与联动校验）&lt;/li&gt;&#xA;&lt;li&gt;允许中断（网络、切换页面、超时、权限刷新）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;流程页一旦不稳定，会直接带来：重复提交、数据丢失、用户放弃率上升。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-草稿体系让中断变成常态能力&#34;&gt;1. 草稿体系：让中断变成常态能力&lt;/h2&gt;&#xA;&lt;h3 id=&#34;本地草稿默认&#34;&gt;本地草稿（默认）&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;保存频率：输入节流 1–2 秒&lt;/li&gt;&#xA;&lt;li&gt;存储：localStorage/IndexedDB（按体量选择）&lt;/li&gt;&#xA;&lt;li&gt;过期：按时间或版本号过期，避免脏数据长期存在&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;服务端草稿可选&#34;&gt;服务端草稿（可选）&lt;/h3&gt;&#xA;&lt;p&gt;适用于：换设备继续、跨端协作、需要留痕的场景。&lt;/p&gt;&#xA;&lt;p&gt;建议组合策略：本地即时保存 + 步骤完成时服务端持久化。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-断点恢复最小可用状态模型&#34;&gt;2. 断点恢复：最小可用状态模型&lt;/h2&gt;&#xA;&lt;p&gt;建议状态模型包含：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;当前步骤 step&lt;/li&gt;&#xA;&lt;li&gt;已完成步骤 completedSteps&lt;/li&gt;&#xA;&lt;li&gt;草稿数据 draft&lt;/li&gt;&#xA;&lt;li&gt;最近保存时间 lastSavedAt&lt;/li&gt;&#xA;&lt;li&gt;版本号 schemaVersion（字段变更时用于迁移）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;页面进入时：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;检测草稿是否存在&lt;/li&gt;&#xA;&lt;li&gt;校验版本号，必要时做迁移/清理&lt;/li&gt;&#xA;&lt;li&gt;恢复到上次步骤并回显数据&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;3-幂等提交避免重复提交与脏数据&#34;&gt;3. 幂等提交：避免重复提交与脏数据&lt;/h2&gt;&#xA;&lt;p&gt;幂等通常需要前后端配合，但前端可以先做三件事：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;提交按钮防抖与禁用（loading 状态）&lt;/li&gt;&#xA;&lt;li&gt;为关键请求生成 &lt;code&gt;idempotencyKey&lt;/code&gt;（一次提交一次 key）&lt;/li&gt;&#xA;&lt;li&gt;请求失败时明确失败原因与可重试策略&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;幂等 key 的建议组成：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用户标识（脱敏）&lt;/li&gt;&#xA;&lt;li&gt;业务对象 id（如流程实例 id）&lt;/li&gt;&#xA;&lt;li&gt;时间窗口（例如分钟级）&lt;/li&gt;&#xA;&lt;li&gt;随机盐&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;4-校验与提示让用户知道为什么不能继续&#34;&gt;4. 校验与提示：让用户知道“为什么不能继续”&lt;/h2&gt;&#xA;&lt;p&gt;建议将校验分为：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;字段级（即时/离焦）&lt;/li&gt;&#xA;&lt;li&gt;步骤级（提交前聚合）&lt;/li&gt;&#xA;&lt;li&gt;流程级（前置条件、状态校验）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;错误展示策略：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;顶部给错误概览&lt;/li&gt;&#xA;&lt;li&gt;定位第一个错误并滚动到字段&lt;/li&gt;&#xA;&lt;li&gt;提示文案采用“动作 + 原因”结构（可执行）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;5-可观测性关键链路必须可追踪&#34;&gt;5. 可观测性：关键链路必须可追踪&lt;/h2&gt;&#xA;&lt;p&gt;流程页建议至少埋三类指标：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;成功率：每步通过率、最终提交成功率&lt;/li&gt;&#xA;&lt;li&gt;失败分布：失败原因码、接口错误码&lt;/li&gt;&#xA;&lt;li&gt;中断点：用户在哪一步退出/超时/刷新&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;并用 traceId 串联前后端日志，方便排查“为什么卡在某一步”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>规则 &#43; AI：金融系统提示与说明文案的可控生成方案</title>
      <link>http://localhost:1313/posts/2025-06-15-ai-assisted-fintech-copy-and-hints/</link>
      <pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2025-06-15-ai-assisted-fintech-copy-and-hints/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;金融系统的提示与说明文案通常具备三个特征：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;高频：表单校验、流程阻断、异常提示随处可见&lt;/li&gt;&#xA;&lt;li&gt;高一致性要求：不同页面需要同口径&lt;/li&gt;&#xA;&lt;li&gt;变更成本高：规则变了，文案要跟着同步&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI 可以提升“生成与维护效率”，但必须保证输出可控、可审计、可回退。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;核心原则规则负责判断ai-负责表达&#34;&gt;核心原则：规则负责判断，AI 负责表达&lt;/h2&gt;&#xA;&lt;h3 id=&#34;判断层输出结构化事实&#34;&gt;判断层输出结构化事实&lt;/h3&gt;&#xA;&lt;p&gt;判断层输出类似：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;FIELD_REQUIRED&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;severity&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;high&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;facts&amp;#34;&lt;/span&gt;: { &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;field&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;联系地址&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;step&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;基本信息&amp;#34;&lt;/span&gt; },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;actions&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;补全字段&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;返回修改&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;表达层仅消费结构化事实&#34;&gt;表达层仅消费结构化事实&lt;/h3&gt;&#xA;&lt;p&gt;AI 的输入仅包含：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;code / severity / facts / actions&lt;/li&gt;&#xA;&lt;li&gt;已批准短语库（approved phrases）&lt;/li&gt;&#xA;&lt;li&gt;输出格式约束（字数、必含字段名、禁用词）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI 不允许：新增事实、改写关键字段名、改变严重等级。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;一套可落地的生成链路&#34;&gt;一套可落地的生成链路&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;规则系统产出结构化结果（可测试）&lt;/li&gt;&#xA;&lt;li&gt;模板生成“骨架文案”（可兜底）&lt;/li&gt;&#xA;&lt;li&gt;AI 在骨架上做表达优化（可选）&lt;/li&gt;&#xA;&lt;li&gt;输出校验：禁用词、字段覆盖、长度与格式&lt;/li&gt;&#xA;&lt;li&gt;失败即回退到模板文案，并记录日志&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;文案治理短语库与术语表的作用&#34;&gt;文案治理：短语库与术语表的作用&lt;/h2&gt;&#xA;&lt;p&gt;很多“口径问题”不是 AI 造成的，而是系统本身没有统一表达。&lt;/p&gt;&#xA;&lt;p&gt;建议建设两类资产：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;术语表：名词统一（字段名、步骤名、产品名）&lt;/li&gt;&#xA;&lt;li&gt;短语库：标准句式（建议、引导、阻断提示）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI 的主要任务是：在短语库与结构化事实之间“组合与改写”，而不是自由发挥。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;前端落地建议&#34;&gt;前端落地建议&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;封装统一接口：&lt;code&gt;hintService.getHints(context)&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;超时与降级：AI 超时直接展示模板结果&lt;/li&gt;&#xA;&lt;li&gt;缓存：相同 &lt;code&gt;code + facts&lt;/code&gt; 可缓存一段时间&lt;/li&gt;&#xA;&lt;li&gt;UI 明确：高风险提示使用 Banner/Modal，低风险使用 Inline/Toast&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;最小评测集让效果可验证&#34;&gt;最小评测集：让效果可验证&lt;/h2&gt;&#xA;&lt;p&gt;按提示码准备样例集：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;缺失字段&lt;/li&gt;&#xA;&lt;li&gt;条件必填&lt;/li&gt;&#xA;&lt;li&gt;流程阻断&lt;/li&gt;&#xA;&lt;li&gt;异常错误码解释&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;评估维度：&lt;/p&gt;</description>
    </item>
    <item>
      <title>金融业务系统的前端权限与操作可追溯：设计要点与落地方式</title>
      <link>http://localhost:1313/posts/2025-03-25-fintech-frontend-permission-and-audit/</link>
      <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2025-03-25-fintech-frontend-permission-and-audit/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;在金融业务系统中，“能不能做”与“做了什么”通常同等重要：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;权限需要细粒度（页面、模块、动作）&lt;/li&gt;&#xA;&lt;li&gt;高风险操作需要二次确认与留痕&lt;/li&gt;&#xA;&lt;li&gt;线上问题需要可追溯（谁、在何时、做了什么）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;前端并非审计的最终来源，但前端是“入口层”，对降低误操作与提升可追溯性非常关键。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-权限模型动作权限作为最小单元&#34;&gt;1. 权限模型：动作权限作为最小单元&lt;/h2&gt;&#xA;&lt;p&gt;推荐以“动作权限”作为最小单元（而不是只做菜单/页面）：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;resource&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;order:review&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;actions&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;view&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;approve&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;reject&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;export&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;落地到前端的三层控制：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;路由守卫：控制页面是否可进入&lt;/li&gt;&#xA;&lt;li&gt;组件/指令：控制按钮、入口是否可见/可用&lt;/li&gt;&#xA;&lt;li&gt;请求层兜底：对敏感接口做二次校验（避免绕过 UI）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;2-操作风险分级不同级别用不同交互&#34;&gt;2. 操作风险分级：不同级别用不同交互&lt;/h2&gt;&#xA;&lt;p&gt;建议对操作做风险分级（示例）：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;低风险：查询、查看详情&lt;/li&gt;&#xA;&lt;li&gt;中风险：提交、发起流程、修改关键字段&lt;/li&gt;&#xA;&lt;li&gt;高风险：审批通过、批量处理、导出敏感数据&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;不同级别对应不同交互策略：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;中风险：二次确认 + 明确影响范围&lt;/li&gt;&#xA;&lt;li&gt;高风险：强确认（输入关键字/再次校验）+ 明确告知留痕&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;3-操作留痕前端如何参与可追溯&#34;&gt;3. 操作留痕：前端如何参与“可追溯”&lt;/h2&gt;&#xA;&lt;p&gt;前端侧建议做三件事：&lt;/p&gt;&#xA;&lt;h3 id=&#34;31-为关键动作生成-traceid&#34;&gt;3.1 为关键动作生成 traceId&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;每次关键操作生成 &lt;code&gt;traceId&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;随请求携带到后端&lt;/li&gt;&#xA;&lt;li&gt;前后端日志用同一 traceId 串联&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;32-标准化审计字段脱敏&#34;&gt;3.2 标准化审计字段（脱敏）&lt;/h3&gt;&#xA;&lt;p&gt;建议上报结构化字段：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;action（动作编码）&lt;/li&gt;&#xA;&lt;li&gt;resource（资源编码）&lt;/li&gt;&#xA;&lt;li&gt;targetId（业务对象 id）&lt;/li&gt;&#xA;&lt;li&gt;result（success/fail）&lt;/li&gt;&#xA;&lt;li&gt;reason（失败原因码）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;避免：把敏感字段明文写入日志/埋点。&lt;/p&gt;&#xA;&lt;h3 id=&#34;33-失败也要可追溯&#34;&gt;3.3 失败也要可追溯&lt;/h3&gt;&#xA;&lt;p&gt;很多事故来自失败重试与重复提交：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;失败原因要可读（错误码映射）&lt;/li&gt;&#xA;&lt;li&gt;可操作指引要明确（下一步做什么）&lt;/li&gt;&#xA;&lt;li&gt;必要时提供“一键复制 traceId”入口，方便支持排查&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;4-误操作防护前端的最后一道门&#34;&gt;4. 误操作防护：前端的“最后一道门”&lt;/h2&gt;&#xA;&lt;p&gt;常见防护手段：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;按钮防抖 + 请求幂等 key（避免重复提交）&lt;/li&gt;&#xA;&lt;li&gt;表单关键字段修改提示（脏数据提示）&lt;/li&gt;&#xA;&lt;li&gt;高风险操作的预检查（权限、状态、前置条件）&lt;/li&gt;&#xA;&lt;li&gt;批量操作的预览（影响范围、条数、筛选条件回显）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;5-可维护性权限与路由不要绑死在页面&#34;&gt;5. 可维护性：权限与路由不要绑死在页面&lt;/h2&gt;&#xA;&lt;p&gt;建议将权限控制抽象成“能力层”：&lt;/p&gt;</description>
    </item>
    <item>
      <title>AI 作为前端工程助手：代码理解、变更评审与知识沉淀</title>
      <link>http://localhost:1313/posts/2025-01-20-ai-engineering-assistant-workflow/</link>
      <pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2025-01-20-ai-engineering-assistant-workflow/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;在中大型前端项目中，效率瓶颈往往不在“写代码”，而在：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;理解既有代码与历史决策&lt;/li&gt;&#xA;&lt;li&gt;做变更评审与影响面分析&lt;/li&gt;&#xA;&lt;li&gt;将经验沉淀为可复用的规范与模板&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI 更适合作为“工程助手”，在不改变既有流程的前提下，降低理解成本与重复劳动。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;适用场景与边界&#34;&gt;适用场景与边界&lt;/h2&gt;&#xA;&lt;h3 id=&#34;适合让-ai-介入的事情&#34;&gt;适合让 AI 介入的事情&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;读代码：梳理模块关系、数据流、关键入口&lt;/li&gt;&#xA;&lt;li&gt;查影响：对改动点做潜在影响面清单&lt;/li&gt;&#xA;&lt;li&gt;写评审：生成 code review 的检查项与风险点&lt;/li&gt;&#xA;&lt;li&gt;做沉淀：把零散讨论转成可检索的技术记录&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;不适合直接交给-ai-的事情&#34;&gt;不适合直接交给 AI 的事情&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;关键逻辑的“正确性判定”&lt;/li&gt;&#xA;&lt;li&gt;业务规则的决策与归因&lt;/li&gt;&#xA;&lt;li&gt;以 AI 输出作为唯一结论（必须可验证）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;一套可落地的使用流程&#34;&gt;一套可落地的使用流程&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1代码理解先结构化再总结&#34;&gt;1）代码理解：先结构化，再总结&lt;/h3&gt;&#xA;&lt;p&gt;输入给 AI 的材料建议是“可验证的事实”，例如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;目录结构（关键模块）&lt;/li&gt;&#xA;&lt;li&gt;入口文件（router/store/bff client）&lt;/li&gt;&#xA;&lt;li&gt;关键类型定义与接口契约&lt;/li&gt;&#xA;&lt;li&gt;相关提交 diff（而非整仓库）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;期望 AI 输出的格式建议固定为：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;模块职责清单（What）&lt;/li&gt;&#xA;&lt;li&gt;调用链路（How）&lt;/li&gt;&#xA;&lt;li&gt;关键假设与隐含约束（Why）&lt;/li&gt;&#xA;&lt;li&gt;潜在风险点（Risk）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这样更像“工程笔记”，而不是泛泛解释。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2变更评审用清单化替代口头经验&#34;&gt;2）变更评审：用“清单化”替代口头经验&lt;/h3&gt;&#xA;&lt;p&gt;对每个变更（PR/commit）生成一份固定结构的评审清单：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;影响页面/模块&lt;/li&gt;&#xA;&lt;li&gt;影响数据结构/接口&lt;/li&gt;&#xA;&lt;li&gt;兼容性（旧字段/旧接口/旧路由）&lt;/li&gt;&#xA;&lt;li&gt;性能点（渲染、列表、长任务）&lt;/li&gt;&#xA;&lt;li&gt;观测点（埋点、错误、关键链路）&lt;/li&gt;&#xA;&lt;li&gt;回滚策略（开关/版本/兜底）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI 的价值在于“补盲”，而不是“替代审查”。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3知识沉淀把对话变成可检索资产&#34;&gt;3）知识沉淀：把对话变成可检索资产&lt;/h3&gt;&#xA;&lt;p&gt;建议把以下内容自动化沉淀（写入 Markdown）：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;模块说明（README）&lt;/li&gt;&#xA;&lt;li&gt;常见问题与排查路径（FAQ）&lt;/li&gt;&#xA;&lt;li&gt;关键决策记录（ADR：Architecture Decision Record）&lt;/li&gt;&#xA;&lt;li&gt;发布与回滚手册（Runbook）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;沉淀策略：少而精，优先覆盖高频问题与关键链路。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;工程化落地建议&#34;&gt;工程化落地建议&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;统一 Prompt 模板：减少输出风格漂移&lt;/li&gt;&#xA;&lt;li&gt;强制输出引用：引用文件路径、函数名、类型名&lt;/li&gt;&#xA;&lt;li&gt;结果可回退：AI 不可用时流程不受影响&lt;/li&gt;&#xA;&lt;li&gt;记录输入与输出：便于复盘与持续改进（注意脱敏）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;总结&lt;/h2&gt;&#xA;&lt;p&gt;AI 在前端工程中的价值，更像“放大镜 + 清单生成器”：&lt;/p&gt;</description>
    </item>
    <item>
      <title>2024 年前端与 AI 融合方向的实践观察</title>
      <link>http://localhost:1313/posts/2024-12-18-2024-ai-frontier-summary/</link>
      <pubDate>Wed, 18 Dec 2024 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2024-12-18-2024-ai-frontier-summary/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;2024 年，AI 能力开始从“可用”逐步走向“可落地”，并在前端工程中呈现出更加清晰的应用边界。&lt;/p&gt;&#xA;&lt;p&gt;相比早期的探索阶段，这一时期的关注重点不再是模型能力本身，而是 &lt;strong&gt;AI 如何以可控、可维护的方式融入现有前端系统&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;前端侧可落地的-ai-应用方向&#34;&gt;前端侧可落地的 AI 应用方向&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-面向内容的辅助能力&#34;&gt;1. 面向内容的辅助能力&lt;/h3&gt;&#xA;&lt;p&gt;AI 在内容相关场景中的成熟度相对较高，包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;文案生成与润色&lt;/li&gt;&#xA;&lt;li&gt;提示信息补全&lt;/li&gt;&#xA;&lt;li&gt;结构化内容转摘要&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这类能力通常作为增强工具存在，不直接影响核心业务逻辑。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-面向效率的开发辅助&#34;&gt;2. 面向效率的开发辅助&lt;/h3&gt;&#xA;&lt;p&gt;在工程实践中，AI 更常被用于：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;辅助生成重复性代码&lt;/li&gt;&#xA;&lt;li&gt;帮助理解既有代码结构&lt;/li&gt;&#xA;&lt;li&gt;提供问题排查思路&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;其价值体现在 &lt;strong&gt;降低理解成本&lt;/strong&gt;，而非完全替代开发过程。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-面向系统使用体验的增强&#34;&gt;3. 面向系统使用体验的增强&lt;/h3&gt;&#xA;&lt;p&gt;部分系统开始引入 AI 作为交互层补充：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;智能提示&lt;/li&gt;&#xA;&lt;li&gt;操作建议&lt;/li&gt;&#xA;&lt;li&gt;上下文相关说明&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这类能力通常具备可回退机制，不作为唯一入口。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;实践过程中暴露的问题&#34;&gt;实践过程中暴露的问题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-输出不可控带来的风险&#34;&gt;1. 输出不可控带来的风险&lt;/h3&gt;&#xA;&lt;p&gt;在缺乏约束的情况下，AI 输出可能出现：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;表达不稳定&lt;/li&gt;&#xA;&lt;li&gt;语义偏移&lt;/li&gt;&#xA;&lt;li&gt;与系统实际状态不一致&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;因此，工程层面必须为 AI 输出设置明确边界。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-过度集成的复杂性成本&#34;&gt;2. 过度集成的复杂性成本&lt;/h3&gt;&#xA;&lt;p&gt;将 AI 深度嵌入核心流程，往往会带来：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;调试难度上升&lt;/li&gt;&#xA;&lt;li&gt;依赖链条拉长&lt;/li&gt;&#xA;&lt;li&gt;系统稳定性下降&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;实践中更可取的方式是 &lt;strong&gt;渐进式引入&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-成本与收益不对等&#34;&gt;3. 成本与收益不对等&lt;/h3&gt;&#xA;&lt;p&gt;并非所有场景都适合引入 AI：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;低频功能收益有限&lt;/li&gt;&#xA;&lt;li&gt;调用成本难以摊平&lt;/li&gt;&#xA;&lt;li&gt;维护复杂度高于收益&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;是否引入，应以实际价值为判断依据。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;工程层面的共识原则&#34;&gt;工程层面的共识原则&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-ai-作为增强能力而非核心依赖&#34;&gt;1. AI 作为增强能力而非核心依赖&lt;/h3&gt;&#xA;&lt;p&gt;在架构设计中，应确保：&lt;/p&gt;</description>
    </item>
    <item>
      <title>长期维护复杂系统的工程治理实践</title>
      <link>http://localhost:1313/posts/2024-11-05-financial-system-governance/</link>
      <pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2024-11-05-financial-system-governance/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;当系统进入长期运行阶段后，开发重心往往不再是功能堆叠，而是&lt;strong&gt;如何稳定地演进&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在多成员参与、需求持续迭代的情况下，如果缺乏清晰的工程治理策略，系统复杂度会随着时间快速累积，最终影响交付效率与稳定性。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;常见治理问题&#34;&gt;常见治理问题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-技术债持续累积&#34;&gt;1. 技术债持续累积&lt;/h3&gt;&#xA;&lt;p&gt;常见表现包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;临时方案长期存在&lt;/li&gt;&#xA;&lt;li&gt;过期代码无人清理&lt;/li&gt;&#xA;&lt;li&gt;模块边界逐渐模糊&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;技术债并非一次性问题，而是长期决策叠加的结果。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-修改成本不可预期&#34;&gt;2. 修改成本不可预期&lt;/h3&gt;&#xA;&lt;p&gt;在缺乏约束的系统中：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;小改动引发连锁问题&lt;/li&gt;&#xA;&lt;li&gt;回归测试成本上升&lt;/li&gt;&#xA;&lt;li&gt;开发人员对改动范围缺乏信心&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-责任边界不清晰&#34;&gt;3. 责任边界不清晰&lt;/h3&gt;&#xA;&lt;p&gt;随着人员流动和系统扩展：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;模块负责人缺失&lt;/li&gt;&#xA;&lt;li&gt;历史决策难以追溯&lt;/li&gt;&#xA;&lt;li&gt;问题定位依赖经验而非结构&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;工程治理的核心思路&#34;&gt;工程治理的核心思路&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-明确系统边界与模块职责&#34;&gt;1. 明确系统边界与模块职责&lt;/h3&gt;&#xA;&lt;p&gt;通过清晰的模块划分：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;限制复杂度扩散&lt;/li&gt;&#xA;&lt;li&gt;明确代码归属&lt;/li&gt;&#xA;&lt;li&gt;为后续重构提供基础&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;边界清晰比局部优化更重要。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-将技术债显性化&#34;&gt;2. 将技术债显性化&lt;/h3&gt;&#xA;&lt;p&gt;有效的做法包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;记录技术债产生背景&lt;/li&gt;&#xA;&lt;li&gt;标注影响范围与优先级&lt;/li&gt;&#xA;&lt;li&gt;纳入迭代计划而非搁置&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;可被管理的技术债，才不会失控。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-建立可持续的改进节奏&#34;&gt;3. 建立可持续的改进节奏&lt;/h3&gt;&#xA;&lt;p&gt;治理并非一次性重构，而是持续过程：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;小步调整&lt;/li&gt;&#xA;&lt;li&gt;控制风险&lt;/li&gt;&#xA;&lt;li&gt;在业务推进中逐步改善结构&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;工程层面的实践方式&#34;&gt;工程层面的实践方式&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-保持核心路径稳定&#34;&gt;1. 保持核心路径稳定&lt;/h3&gt;&#xA;&lt;p&gt;优先保障：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;高频使用功能&lt;/li&gt;&#xA;&lt;li&gt;核心业务流程&lt;/li&gt;&#xA;&lt;li&gt;对外依赖接口&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;非核心区域允许逐步演进。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-为关键模块补充保护措施&#34;&gt;2. 为关键模块补充保护措施&lt;/h3&gt;&#xA;&lt;p&gt;包括但不限于：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;基础测试覆盖&lt;/li&gt;&#xA;&lt;li&gt;明确的接口约束&lt;/li&gt;&#xA;&lt;li&gt;必要的文档说明&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这些投入可以显著降低后续修改风险。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-定期进行结构性回顾&#34;&gt;3. 定期进行结构性回顾&lt;/h3&gt;&#xA;&lt;p&gt;通过阶段性回顾：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;评估现有结构是否仍然合理&lt;/li&gt;&#xA;&lt;li&gt;识别复杂度增长点&lt;/li&gt;&#xA;&lt;li&gt;为下一阶段调整提供依据&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;工程治理的长期价值&#34;&gt;工程治理的长期价值&lt;/h2&gt;&#xA;&lt;p&gt;良好的治理并不会立刻提升开发速度，但可以：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;降低长期维护成本&lt;/li&gt;&#xA;&lt;li&gt;提升系统可预测性&lt;/li&gt;&#xA;&lt;li&gt;减少团队对系统的心理负担&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这类收益通常在系统运行一段时间后逐步显现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>在前端系统中引入 AI 辅助提示与文案生成</title>
      <link>http://localhost:1313/posts/2024-06-22-ai-for-fintech-risk-hints/</link>
      <pubDate>Sat, 22 Jun 2024 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2024-06-22-ai-for-fintech-risk-hints/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;随着大模型能力逐步成熟，AI 不再只用于对话场景，也开始进入实际业务系统，承担&lt;strong&gt;提示生成、文案辅助与信息补全&lt;/strong&gt;等角色。&lt;/p&gt;&#xA;&lt;p&gt;在前端系统中合理引入 AI，可以在不改变原有业务流程的前提下，提升信息表达效率与一致性。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;常见应用场景&#34;&gt;常见应用场景&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-提示文案辅助生成&#34;&gt;1. 提示文案辅助生成&lt;/h3&gt;&#xA;&lt;p&gt;在配置类或操作型页面中，常见需求包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;自动生成操作说明&lt;/li&gt;&#xA;&lt;li&gt;根据上下文补充提示文案&lt;/li&gt;&#xA;&lt;li&gt;统一不同页面的表达风格&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;AI 更适合充当“草稿生成器”，而非最终决策者。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-动态提示内容补全&#34;&gt;2. 动态提示内容补全&lt;/h3&gt;&#xA;&lt;p&gt;基于页面状态或用户输入，生成更具体的提示信息：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;根据选择结果生成说明&lt;/li&gt;&#xA;&lt;li&gt;针对异常情况给出补充建议&lt;/li&gt;&#xA;&lt;li&gt;避免模板化、重复性文案&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-复杂规则的自然语言转译&#34;&gt;3. 复杂规则的自然语言转译&lt;/h3&gt;&#xA;&lt;p&gt;当系统内部规则较为复杂时，可以通过 AI 将结构化信息转化为更易理解的描述：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;配置结果解释&lt;/li&gt;&#xA;&lt;li&gt;条件判断结果说明&lt;/li&gt;&#xA;&lt;li&gt;操作后果提示&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;引入-ai-时的设计原则&#34;&gt;引入 AI 时的设计原则&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-明确-ai-的角色边界&#34;&gt;1. 明确 AI 的角色边界&lt;/h3&gt;&#xA;&lt;p&gt;在前端系统中，AI 更适合承担：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;文案辅助&lt;/li&gt;&#xA;&lt;li&gt;表达优化&lt;/li&gt;&#xA;&lt;li&gt;信息重组&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;而不适合直接参与业务判断或规则决策。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-保持可控的输出范围&#34;&gt;2. 保持可控的输出范围&lt;/h3&gt;&#xA;&lt;p&gt;为避免不可预期的输出，应当：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;提供明确的上下文与输入约束&lt;/li&gt;&#xA;&lt;li&gt;使用固定模板 + AI 补全的方式&lt;/li&gt;&#xA;&lt;li&gt;对输出结果进行二次校验或人工确认&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-输出结果可回退可替换&#34;&gt;3. 输出结果可回退、可替换&lt;/h3&gt;&#xA;&lt;p&gt;AI 生成内容应具备以下特性：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;不影响主流程运行&lt;/li&gt;&#xA;&lt;li&gt;支持一键替换为默认文案&lt;/li&gt;&#xA;&lt;li&gt;不作为唯一信息来源&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;前端实现思路&#34;&gt;前端实现思路&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-以增强能力形式接入&#34;&gt;1. 以“增强能力”形式接入&lt;/h3&gt;&#xA;&lt;p&gt;在实现层面，通常将 AI 能力视为可选增强：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;不影响原有逻辑&lt;/li&gt;&#xA;&lt;li&gt;异常时自动降级&lt;/li&gt;&#xA;&lt;li&gt;与核心业务解耦&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-统一封装调用接口&#34;&gt;2. 统一封装调用接口&lt;/h3&gt;&#xA;&lt;p&gt;通过统一的 AI 服务封装：&lt;/p&gt;</description>
    </item>
    <item>
      <title>复杂业务场景下的表单设计与交互实践</title>
      <link>http://localhost:1313/posts/2022-02-10-fintech-form-design/</link>
      <pubDate>Thu, 10 Feb 2022 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2022-02-10-fintech-form-design/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;在中后台系统与业务管理类页面中，表单是最常见、也是最容易被低估的一类界面形态。&lt;br&gt;&#xA;当字段数量增加、填写规则变复杂时，简单堆砌输入框往往会带来较高的使用成本。&lt;/p&gt;&#xA;&lt;p&gt;如何在不引入额外学习成本的前提下，提升表单填写效率与可理解性，是前端实现中需要重点考虑的问题。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;常见问题分析&#34;&gt;常见问题分析&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-必填项不明确&#34;&gt;1. 必填项不明确&lt;/h3&gt;&#xA;&lt;p&gt;在字段较多的表单中，常见问题包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;必填与非必填混杂展示&lt;/li&gt;&#xA;&lt;li&gt;校验规则只在提交时才触发&lt;/li&gt;&#xA;&lt;li&gt;错误提示信息不清晰&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这类问题会显著降低填写效率。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-一次性信息输入负担过重&#34;&gt;2. 一次性信息输入负担过重&lt;/h3&gt;&#xA;&lt;p&gt;将所有字段集中在一个页面中，容易导致：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;页面过长，用户难以快速定位&lt;/li&gt;&#xA;&lt;li&gt;心理负担增加，填写中途放弃&lt;/li&gt;&#xA;&lt;li&gt;错误集中暴露，修改成本高&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-表单状态反馈不足&#34;&gt;3. 表单状态反馈不足&lt;/h3&gt;&#xA;&lt;p&gt;缺乏清晰反馈时，用户往往无法判断：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;当前填写是否符合规则&lt;/li&gt;&#xA;&lt;li&gt;是否已满足提交条件&lt;/li&gt;&#xA;&lt;li&gt;提交操作是否成功触发&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;表单设计与交互实践&#34;&gt;表单设计与交互实践&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-明确字段优先级&#34;&gt;1. 明确字段优先级&lt;/h3&gt;&#xA;&lt;p&gt;通过视觉层级区分字段重要性：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;必填项显式标识&lt;/li&gt;&#xA;&lt;li&gt;非关键字段弱化展示&lt;/li&gt;&#xA;&lt;li&gt;合理使用占位说明与辅助文案&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;有助于用户快速理解填写重点。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-分步骤拆解复杂表单&#34;&gt;2. 分步骤拆解复杂表单&lt;/h3&gt;&#xA;&lt;p&gt;将长表单拆分为多个步骤：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;每一步聚焦一类信息&lt;/li&gt;&#xA;&lt;li&gt;提供清晰的进度提示&lt;/li&gt;&#xA;&lt;li&gt;支持上一步回退与数据保留&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这种方式能有效降低单次填写压力。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-提前进行输入校验&#34;&gt;3. 提前进行输入校验&lt;/h3&gt;&#xA;&lt;p&gt;在用户输入过程中进行校验：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;输入完成后即时提示错误&lt;/li&gt;&#xA;&lt;li&gt;明确指出错误原因&lt;/li&gt;&#xA;&lt;li&gt;避免提交后集中报错&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;可以显著减少重复操作。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;4-提供清晰的状态反馈&#34;&gt;4. 提供清晰的状态反馈&lt;/h3&gt;&#xA;&lt;p&gt;在关键节点给予明确反馈：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;提交中状态提示&lt;/li&gt;&#xA;&lt;li&gt;成功或失败结果明确展示&lt;/li&gt;&#xA;&lt;li&gt;异常情况提供可操作指引&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;让用户始终清楚当前所处状态。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;工程实现层面的考虑&#34;&gt;工程实现层面的考虑&lt;/h2&gt;&#xA;&lt;p&gt;在实现层面，通常会关注：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;表单状态集中管理&lt;/li&gt;&#xA;&lt;li&gt;校验逻辑与 UI 解耦&lt;/li&gt;&#xA;&lt;li&gt;表单组件的可复用性&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这些实践有助于在多个业务场景中复用同一套表单能力。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;总结&lt;/h2&gt;&#xA;&lt;p&gt;复杂表单的设计并不依赖特定行业背景，而是对信息结构、交互节奏与用户认知的综合考量。&lt;/p&gt;&#xA;&lt;p&gt;通过合理拆分、清晰反馈与一致的交互规则，可以在不增加实现复杂度的前提下，显著提升整体使用体验。&lt;/p&gt;</description>
    </item>
    <item>
      <title>从 jQuery 到模块化：一次前端工程意识的转变</title>
      <link>http://localhost:1313/posts/2019-12-20-first-side-project-review/</link>
      <pubDate>Fri, 20 Dec 2019 00:00:00 +0000</pubDate><author>wuwenzen@outlook.com (wuwj)</author>
      <guid>http://localhost:1313/posts/2019-12-20-first-side-project-review/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;在较早阶段的前端开发中，常见技术栈以 &lt;strong&gt;jQuery + 传统页面结构&lt;/strong&gt; 为主。&lt;br&gt;&#xA;这种模式在页面数量有限、业务逻辑简单时，具备实现成本低、交付速度快的优势。&lt;/p&gt;&#xA;&lt;p&gt;但随着功能逐步增多、页面之间产生联动，代码结构问题开始显现，对可维护性提出了更高要求。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;传统写法暴露的问题&#34;&gt;传统写法暴露的问题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-全局作用域污染&#34;&gt;1. 全局作用域污染&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;list&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; [];&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;init&lt;/span&gt;() {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;render&lt;/span&gt;() {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;常见问题包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;变量与函数暴露在全局作用域&lt;/li&gt;&#xA;&lt;li&gt;多页面脚本容易互相覆盖&lt;/li&gt;&#xA;&lt;li&gt;问题定位与调试成本逐渐升高&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-文件职责混乱&#34;&gt;2. 文件职责混乱&lt;/h3&gt;&#xA;&lt;p&gt;在缺乏结构约束的情况下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;单个 JS 文件体积不断膨胀&lt;/li&gt;&#xA;&lt;li&gt;DOM 操作、业务逻辑、接口请求混杂&lt;/li&gt;&#xA;&lt;li&gt;修改局部逻辑时容易产生连锁影响&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;3-代码复用能力弱&#34;&gt;3. 代码复用能力弱&lt;/h3&gt;&#xA;&lt;p&gt;相似功能在不同页面中往往通过复制实现：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;复制后再做细微修改&lt;/li&gt;&#xA;&lt;li&gt;长期来看难以统一维护&lt;/li&gt;&#xA;&lt;li&gt;Bug 修复成本被成倍放大&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;引入模块化思路&#34;&gt;引入模块化思路&lt;/h2&gt;&#xA;&lt;p&gt;为缓解上述问题，开始尝试在不依赖复杂工具链的前提下，引入基础的模块化设计思想。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;1-按职责拆分代码结构&#34;&gt;1. 按职责拆分代码结构&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;js/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── api.js&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── render.js&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;├── event.js&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;└── main.js&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;通过人为约定实现基础分层：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;接口请求集中管理&lt;/li&gt;&#xA;&lt;li&gt;渲染逻辑独立拆分&lt;/li&gt;&#xA;&lt;li&gt;事件绑定避免分散在各处&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;即使不依赖构建工具，也能显著提升代码可读性。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;2-使用-iife-隔离作用域&#34;&gt;2. 使用 IIFE 隔离作用域&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; () {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;state&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;init&lt;/span&gt;() {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  window.&lt;span style=&#34;color:#a6e22e&#34;&gt;pageInit&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;init&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;})();&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这种方式在早期用于：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
