Nonmotor 开发手册
NONMOTOR / ENGINEERING GUIDE
围绕一次需求,组织项目介绍与现场演示更新于 2026.10.09

Nonmotor 前端开发入门:从需求到交付#

正式阅读稿见 Nonmotor 前端开发指南。本文件保留分享时长、演示安排和备课建议。

面向后端工程师的分享编排稿。目标:听完后能够定位代码、判断改动方式,并在评审支持下完成一个小型前端需求。

依据:用户提供的《admin后端开发流程》页面 HTML,以及 nonmotor_h5 当前工作区源码。核对日期:2026-10-09。本文是培训设计,示例需求尚未实施,本地启动和部署步骤尚未实跑。

1. 编排思路#

沿用参考文档的「项目介绍、环境搭建、开发流程、部署、配套工具」骨架,把最多时间放在一个需求如何完成。

建议采用两层材料:

开场可直接使用:

这次分享面向已经熟悉保险后端业务的同学。我们从一个投保页需求出发,看它如何落到 Journey 配置、React 页面、接口和数据流,再完成联调、自测和提测。学完之后,希望大家能够接下一个范围明确的小需求,并知道哪些地方需要进一步评审。

完成培训的可观察目标:给定市场、产品和页面 URL,学员能找到入口;能判断修改配置还是代码;能追踪一个字段从展示到请求的路径;能提交包含验证证据和发布物料的 MR。

2. 分享顺序与时间#

章节 时间 学员要回答的问题 推荐展示材料
认识业务与系统边界 5 分钟 nonmotor 在整条投保链路中负责什么? 产品详情 → 投保信息 → 确认 → 收银台的页面截图
从 URL 找到代码 7 分钟 我拿到页面后,第一份代码在哪里? 市场入口配置、index.tsx、App.tsx、一次接口调用
跑起目标页面 6 分钟 如何确保自己在改正确的市场、应用和环境? 一次启动演示、目标 URL、Network 面板
需求分析与方案选择 8 分钟 改配置、复用组件,还是新增能力? 需求分类表、字段与接口矩阵
一个小需求的完整实现 18 分钟 每一步具体改哪里,如何证明正确? Journey 前后差异、代码差异、请求体与页面效果
联调、自测与排障 7 分钟 页面有问题时如何逐层定位? Network、Console、配置与缓存检查
提测、发布与上线检查 5 分钟 除了代码,还有哪些东西要交付? MR、测试证据、翻译/图片/Journey 发布清单
AI 协作与第一个练习 4 分钟 如何借助现有工具接下一个需求? 完整输入示例、练习验收要求

3. 各章节展开方式#

3.1 认识业务与系统边界#

先展示一条目标产品的实际链路,讲清每页输入、输出与用户操作。以当前仓库已有的 Factory V2 路径为讲解候选:PDP → Purchase → Confirmation → Checkout;实际顺序和步骤以演示产品为准。

重点解释:

用后端熟悉的职责作对照,避免机械套用后端分层名称:

后端已有认知 前端需要建立的认知
请求入口 HTML entry / index.tsx 是页面启动入口,用户事件会触发后续处理
业务编排 App、业务组件和 Hook 组织页面状态及交互,不是一条只执行一次的请求链
下游客户端 service/model 封装接口,通过统一 request 发出请求
配置中心 PFC 和 Journey 等配置参与页面行为;Journey 还能决定页面有哪些区块与字段
请求上下文 props、state、Context 与页面缓存各有生命周期,不能当作同一种存储
服务日志 Console、Network、IDAP 与后端请求日志共同构成排查依据

3.2 从 URL 找到代码#

现场追踪一个市场的真实入口,例如 MY 的 purchase5:

  1. 在 config/nonmotor/my.json 找到 purchase5.html,通过 chunks 找到 entry。
  2. entry 指向 src/pages/factoryV2/purchase5/index.tsx。
  3. index.tsx 挂载 BaseComponent 和 App,并初始化页面埋点。
  4. App.tsx 请求 Journey,按 block/组件名组织页面与步骤。
  5. 沿 import 找到 model、组件、表单与缓存处理,再在 Network 核对实际响应。

只介绍日常定位需要的目录:

位置 什么时候查
config/nonmotor/{region}.json 找目标市场的页面入口、新增入口
src/pages/factory/、src/pages/factoryV2/ 找产品工厂页面与业务组件;以入口引用确定版本
src/pages/checkoutV2/ 查收银台相关实现
src/service/、页面内 model/ 或 service/ 查请求封装、类型和响应转换
src/common/request.ts 查公共请求行为
src/InsEntry/ 查动态表单、字段及校验能力
src/MoneeDesign/、src/components/ 查现有 UI 控件和业务组件
src/bridge/、src/locales/ 查宿主交互和国际化
runbooks/、docs/automation/ 查现有回归用例、执行规则和证据要求

注意:仓库仍包含历史 ins_h5 名称和其他业务目录,目录存在并不代表它属于当前 nonmotor 构建。以 APP_NAME、REGION 和入口配置共同确定范围。

3.3 跑起目标页面#

配套手册列明仓库权限、公司 npm 源、网络、测试账号、目标产品、有效页面参数以及本地联调方式。

已核对的入口:

现场要证明:页面能展示、接口请求打到预期环境、目标产品正确、登录态可用。需要 PFB 时还应验证请求确实进入目标后端分支;单纯设置前端 ENV 不足以证明后端 PFB 正确。

正式文档已补充 ZeroOmega → Whistle → 本地开发服务的代理链路、安装与证书步骤、市场规则和验收方式。分享时重点演示原业务域名加载本地代码,以及 API 经开发代理请求后端的区别;TH/SG/PH 的浏览器域名与源码 API 目标差异需实测确认。登录与 PFB 操作仍待补齐。浏览器演示之后,涉及 App 能力的需求仍需在目标 WebView 验证。

iOS 模拟器的安装步骤已补入正式文档第 2.10 节:安装 Xcode/runtime → 启动 Simulator → 获取对应市场的 Simulator App 包 → 解压安装 → 开启系统代理并配置信任证书 → 验证 App 内 H5。强调 Chrome 插件代理与模拟器系统代理的区别,以及调试后恢复代理设置。

3.4 拿到需求,先判断改动落点#

先确认市场、产品、入口、PRD、设计稿、接口协议、异常分支与验收标准。需求分析的交付物是一张影响清单。

需求类型 先检查 可能交付物
文案、图片、显隐和已有校验变化 Journey、翻译和已有组件是否支持 Journey / i18n / 图片资源及验证证据
已有字段或交互调整 当前字段配置、组件能力、缓存和接口映射 配置和必要代码改动
新业务区块或新交互能力 能否复用业务组件或 MoneeDesign;是否需要扩展表单能力 新增或扩展组件、配置接入与回归清单
新页面或新投保步骤 能否复用现有模板;入口、返回路径、状态传递是否完整 页面、入口配置、导航、缓存契约与埋点
接口字段变化 请求/响应类型、业务码、空值和展示规则 接口封装、数据转换与消费方调整

特别讲清:是否“只改配置”取决于现有能力。配置无法表达的新行为,需要代码支持;新增接口字段也可能同时影响确认页、报价和创单。

3.5 贯穿案例:投保信息新增一个字段#

这是教学案例,具体字段和产品待选择。优先挑已有产品中范围小、能体现校验与数据传递的改动。

按七步演示,每步都展示一份产物:

  1. 拆需求:字段何时显示、是否必填、是否预填、如何报错、确认页如何展示、后端如何接收。
  2. 查已有能力:找到该产品 Journey 与对应组件,判断配置是否足够。
  3. 列字段矩阵:对齐 UI 文案、entry name、field_name、缓存路径、请求字段、类型、空值策略和展示格式。
  4. 实现:先复用字段组件和校验;确需扩展时,说明组件、页面、service 各自负责什么。展示修改前后差异。
  5. 闭合数据流:输入 → 校验 → 当前步骤写缓存 → 下一页读缓存 → 确认展示 → 最终请求,逐点核对。
  6. 验证:正确输入、空值、错误格式、返回修改、接口异常,以及其他复用产品的影响。
  7. 交付:提交代码/配置差异、截图、请求核对结果、回归范围和发布依赖。

现场字段矩阵模板:

UI 字段 Journey 标识 表单字段 缓存路径 接口字段/类型 确认页展示 校验与空值策略
演示字段 从实际配置填写 从运行时表单核对 从步骤实现核对 从接口协议核对 从设计和 formatter 核对 从 PRD 和契约核对

当前 Journey 规范强调:Admin/O 端配置源是事实来源,可读 view 从它生成,本地 mock 从 view 生成;各步骤在本环节完成缓存读取、校验、转换和写回。正式讲稿应使用这一约定,避免把历史独立 mock 快照教成新的默认流程。

在这一步穿插最少的前端知识:TypeScript 对象和可选值、组件与 props、state 驱动渲染、事件、Effect 的依赖与清理、异步请求和 SCSS 布局。结合案例说明,不展开语言大全。

3.6 联调、自测与排障#

采用固定定位顺序:

  1. 页面入口是否正确:APP_NAME、REGION、HTML 与产品参数。
  2. 资源是否正常:页面加载、JS/CSS、Console 错误。
  3. 请求是否正确:实际 URL、参数、登录态、环境/PFB、HTTP 状态及业务码。
  4. 数据是否正确:响应、Journey、翻译、组件注册、显隐和校验依赖。
  5. 状态是否正确:表单值、缓存、上一步返回与再次进入。
  6. 宿主行为是否正确:App 返回、页面跳转、支付等目标运行环境行为。

给学员一张提交前检查表:目标市场构建、类型与定向 lint/格式检查、需求验收路径、失败状态、返回/重进、公共组件受影响产品、移动端视觉和埋点。按仓库约定,不把新增前端单测文件作为默认交付要求;保留并按需执行已有相关测试。

展示现有 Runbook 能提供的步骤和证据。执行自动化时按 runbooks/index.json 的 executionOwner 选择执行链,遵守各自 session 和产物边界。

3.7 提测、发布与上线检查#

复用后端同学熟悉的「代码 + 配套物料」表达,交付内容包括:

源码能确认 nonmotor 有独立部署模块,构建读取 REGION/环境,产物目录为 dist/nonmotor,部署入口使用 /nonmotor/。因此必须说明市场维度,不能照搬参考后端文档中的“按机房部署一次覆盖全部市场”。

团队已确认:Casement 建立 release-v1.x.xxx 迭代,本地在 dev-v1.x.xxx 分支开发、提交 commit 和自测;完成后提交 MR 合入同版本 release,合入并发布后到 Casement 部署对应版本。分享时用正式文档中的 Casement 截图展示应用、迭代、环境、Region、版本/PFB 与部署状态的核对。Reviewer、部署负责人和审批细则仍待补充。

3.8 AI 协作与上手练习#

将 AI 放在上述开发步骤中,演示如何提供充分上下文和核验结果。

推荐输入包含:市场、环境、应用、产品与页面、PRD/设计、接口契约、当前 Journey、可复用页面、验收标准和允许改动范围。输出要求包含:配置/代码判断、影响文件、实施结果、验证证据、剩余不确定项。

仓库已有需求分析、TD、代码生成、Journey 配置同步、UI 验证、mock、Runbook 和 Code Review 等 Skills。主讲时仅展示案例实际需要的能力,其余放工具索引。编码前需按 AGENTS.md 加载完整工程规范,AI 生成结果仍需开发者核验业务语义和运行效果。

建议逐级练习:

  1. 修改已有文案或受支持的字段配置,完成展示验证。
  2. 增加一个字段或简单交互,完成接口与回退路径验证。
  3. 承接一个小型业务区块,完成实现、回归、MR 与提测物料。

4. 正式文档目录建议#

  1. Nonmotor 业务范围与系统架构
  2. 项目环境搭建
  3. 项目启动与第一个页面
  4. 项目结构与代码定位
  5. 分支规范与需求开发流程
  6. 产品工厂 Journey 与配置开发
  7. 页面、组件和接口开发规范
  8. 需求实战:新增投保字段
  9. 联调、自测与问题排查
  10. 提测、部署与发布物料
  11. 常用平台与 AI 工具
  12. 前端基础知识速查和常见问题

5. 分享前需要补齐的材料#

6. 本次核对的依据#

本稿只创建培训编排文档,未修改源码,未执行发布或真实业务操作。

↑