ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【寻迹校园 HarmonyOS NEXT 实战 34】单机角色模拟如何诚实演示复杂业务:比赛项目的边界表达方法

【寻迹校园 HarmonyOS NEXT 实战 34】单机角色模拟如何诚实演示复杂业务:比赛项目的边界表达方法 【寻迹校园 HarmonyOS NEXT 实战 34】单机角色模拟如何诚实演示复杂业务比赛项目的边界表达方法本章导读这是“寻迹校园 HarmonyOS NEXT 实战”系列第 34 篇。本文结合认领审核、双方交接、举报治理页面、RelationalStore 本地数据和自动化测试说明单台设备可以验证哪些业务规则哪些能力必须由真实账号、服务端鉴权、多设备和审计系统证明。上图为原创生成的单机演示边界插画不是应用截图。左侧展示同一设备上的角色切换和状态机验证右侧将真实身份、远程操作、并发与审计划入尚未完成的服务端能力。一、比赛 Demo 最容易出现的证据错位为了在有限时间内展示完整闭环比赛项目常把失主、拾得者和治理人员的按钮放在同一台设备上。这种做法可以验证页面路径与状态迁移但如果文案写成“双方账号已确认”或“管理员已审核”就把演示手段冒充成生产能力。正确做法不是隐藏模拟而是把模拟对象、可验证事实和未实现边界说清楚。二、本章涉及的真实页面和服务业务角色页面/Service当前演示动作申请者ClaimRequestPage/ClaimService提交私密核验答案拾得者ClaimReviewPage展开证据、勾选核对、同意或拒绝交接双方HandoffPage/HandoffService分别模拟确认已交出与已收到举报人ModerationReportPage提交举报原因和说明治理人员ModerationProgressPage模拟受理、驳回或隐藏消息视图MessagesPage从本地业务状态派生进度这些页面共享同一个本地应用进程和 Repository并没有真实用户会话切换。三、当前工程证据首先说明它是单机应用项目oh-package.json5没有第三方账号、IM 或后端 SDK 依赖数据主要通过本地 Repository 保存。entry/src/main/module.json5当前只声明 Phone也没有为了角色模拟新增账号或远程通信权限。这不代表项目结构简陋。Page → Service → Repository 的分层和状态机仍然可以被严格测试只是数据权威目前在本机不在多用户服务端。四、认领审核可以证明什么在同一设备上当前流程可以证明申请前必须填写核验信息并确认处理说明核验答案不进入普通 Claim 列表审核页必须展开私密信息后才能勾选未核对时 Service 拒绝同意拒绝后目标报告恢复OPEN接受后才能进入交接流程。这些都是业务规则和数据流证据不依赖真实远程账号也能验证。五、认领审核不能证明什么同一设备上的“模拟拾得者审核”不能证明当前操作者确实是拾得记录创建者申请者无法读取拾得者私密提示其他账号无法伪造审核请求服务端记录了真实操作者身份两台设备状态实时同步网络重试和并发请求保持一致。页面流程是权限设计的原型不是服务端授权证据。六、双方确认可以证明什么HandoffService.confirmCompletion()分别记录CLAIMANT和KEEPER标记。第一方确认后 Handoff 保持CONFIRMED第二方确认后才进入COMPLETED随后联动 Claim 和关联 Report 结案。本地测试可以断言两种顺序、完成后的状态和禁止取消规则。这证明状态机没有把一次点击直接等同于双方完成。七、双方确认不能证明真实双签两个按钮都在同一台设备上同一个人完全可以连续点击。当前实现没有服务端检查“两个不同的已验证主体分别提交”。因此准确描述是“单机模拟双方确认验证双标记与级联状态机”不能写成“已实现防抵赖双账号签名确认”。正式版本需要账号身份、角色绑定、服务端时间和审计记录。八、治理流程为什么必须显式写“模拟管理员”ModerationProgressPage顶部明确说明页面按钮模拟治理人员操作不代表真实平台审核。按钮文案也使用“模拟管理员受理”“模拟驳回”。这种文案不会削弱演示反而让评审知道项目主动区分产品规则和运营系统。隐藏副作用、越序校验和失败回退仍可以被完整展示。九、本地加密数据库不等于多用户权限各 Repository 在设备上下文中使用加密 RelationalStore。加密能保护静态文件但不能回答“谁可以调用查询”“服务端是否信任当前身份”。权限至少包含认证、授权、资源所有权和审计四层。只有本地数据库加密不能证明远程用户之间的数据隔离。十、Node 自动化证明的是哪一层项目的scripts/local-state-machines.test.mjs直接调用生产 Service并在没有UIAbilityContext时使用 Repository 本地回退路径。它真实验证了Claim、Handoff、Moderation 的主要迁移重复保护与来源状态门禁关联 Report 的恢复和结案副作用普通列表不携带私密 proof非法动作返回失败。它不等于真机加密 RelationalStore 集成测试也不等于多进程或多设备并发测试。十一、如何建立五级证据表项目汇报可以把证据分成五层层级可以证明本项目示例合约类型、状态、路由和字段设计ArkTS 模型与 Service 接口自动化规则在测试输入下成立Node 状态机脚本通过构建工程能编译产物hvigor 构建记录运行时页面和系统能力实际运行模拟器/真机操作证据平台外部平台状态真实存在小艺或 AGC 页面回读任何一层都不能自动替代更高层。例如构建成功不能证明双账号权限小艺打开也不能证明 AGC 已上架。十二、演示页面要把角色和动作写在按钮上模糊按钮“确认完成”容易让观众误解。更清晰的文案是模拟拾得者审核模拟拾得者确认已交出模拟失主确认已收到模拟管理员受理模拟驳回完成并隐藏内容。角色、动作和副作用同时可见评审不需要猜测当前视角。十三、演示脚本应从清空边界声明开始推荐比赛演示顺序说明当前是单机业务闭环以失主视角发布或进入匹配提交匿名认领答案切到消息页模拟拾得者核验安排固定校内交接点分别模拟双方确认展示 Claim 和两条 Report 结案提交举报并模拟治理状态最后列出正式版账号和后端升级项。主动声明边界比被评审追问后再解释更可信。十四、单机流程为什么仍值得完整实现多用户后端没有完成不代表页面可以只做假按钮。状态顺序、数据最小化、错误文案、交接限制和结案级联都会影响未来 API 合约。先把本地领域模型做正确可以更早发现一个终态应该恢复还是隐藏 Report、消息按钮应进入哪个页面、重复请求应该返回什么结果。后端接入时只替换 Repository 和身份来源不必重写全部业务语义。十五、未来架构应保持 Page → Service → Repository上图为原创升级拓扑ArkUI 页面和 ViewModel/Service 契约尽量保持稳定Repository 从本地 RelationalStore 扩展为远程 API 与本地缓存服务端承担鉴权、事务、审计和通知。升级时不要让页面直接拼 URL 或携带“我是管理员”的布尔值。身份应来自可信登录会话Service 只发出领域动作Repository/网络层处理 DTO 和错误映射。十六、真实账号系统至少需要哪些主体正式版至少要区分报告创建者认领申请者被授权的拾得者或值班人员治理人员系统任务如过期处理器审计或申诉人员。每个 API 应明确谁可读、谁可写、允许的来源状态和返回的最小字段。客户端显示的角色选择不能作为授权依据。十七、服务端应怎样阻止同一人代替双方交接确认请求需要登录主体和角色绑定。服务端验证当前用户是 Claim 的claimantId或目标 Report 的keeperId并拒绝同一主体写入双方标记。两次确认要记录用户 ID、服务端时间、设备或会话摘要和操作 ID。敏感核验答案不应进入普通审计日志。十八、治理权限不能从页面入口推导即使普通用户看不到治理按钮仍可能构造请求。服务端必须验证治理角色并对受理、隐藏、驳回分别记录权限和原因。“页面没有按钮”只证明 UI 收敛不证明 API 安全。深链、旧版本客户端和自动化调用都可能绕过页面。十九、从本地 Repository 迁移到远程 API推荐分阶段升级固化 OpenAPI 和领域错误码为 Report、Claim、Handoff、Moderation 增加服务端版本号Repository 接入远程数据源保留只读本地缓存写操作携带幂等键服务端事务或补偿协调跨实体更新消息由 outbox 事件派生离线时禁用高风险写操作或进入明确待同步状态迁移测试同时覆盖本地降级和在线权威路径。二十、不要把未来能力写成现在完成当前可以写已在单机应用中完成认领、交接和治理状态机并通过生产 Service 的本地回退测试验证主要迁移。当前不能写已实现真实多用户认领平台、管理员审核后台和跨设备实时同步。前者有代码与测试证据后者需要账号、服务器、平台和多设备运行证据。二十一、风险说明不是“自曝不足”工程文档列出未验证项能帮助评审判断方案是否可演进。例如明确“当前同一设备模拟双方”同时给出后端身份、事务和审计升级路径比含糊地写“支持多人协作”更专业。边界表达还可以防止后续团队把 Demo 数据、测试账号或临时按钮直接带入生产。二十二、当前验证结果2026-08-23 重新运行powershell-ExecutionPolicy Bypass-File.\scripts\test-local-state-machines.ps1认领提交门禁、拒绝/取消恢复、双方完成结案、一次改期与过期、举报去重、治理顺序和隐藏/驳回测试全部通过。本轮没有重新执行双账号、远程网络、推送、并发、服务端审计或 AGC 验证因为这些能力当前不在单机实现范围内。二十三、交付材料应如何标注证据来源每个结论最好附带来源代码证据文件和函数自动化证据命令与断言运行证据设备型号、API 版本和操作结果平台证据公开页面或审核状态未验证项原因和下一步最小动作。不要用一张成功截图覆盖所有层级也不要用“已完成”同时表示本地代码、构建、真机和平台审核。二十四、工程复盘先定义可证明句子开发复杂演示前可以先写出最终允许说的句子。例如“第一方确认后不结案第二方确认后联动四类实体”“未受理不能隐藏”“重复举报返回同一案件 ID”。这些句子都能转成自动化断言。无法转成当前证据的句子例如“真实用户无法越权”“消息必达”“管理员操作不可抵赖”应进入未来验收清单。这样架构、页面文案和比赛答辩会使用同一套边界。二十五、本文小结单机角色模拟适合验证状态机、页面门禁、数据分层和错误回执但它不能证明真实身份、远程授权、跨设备同步或服务端审计。“寻迹校园”通过明确的“模拟”文案、Service 规则和本地测试把可证明能力与未来能力分开。正式多用户版本可以沿用领域模型和页面流程将 Repository 升级为远程 API并把鉴权、事务、幂等、通知和审计放在服务端完成。诚实表达边界不是降低完成度而是保证每个结论都有对应证据。系列导航第 34 篇 / 共 50 篇。上一篇《用业务消息替代陌生人聊天》下一篇《先写全页面 Design Spec 再写 ArkUI》。
返回列表