CYBERSWAT / 开发部自由练习 · v0.4.1

开始前:让每次练习有一个可恢复的位置

你需要的是一份自己的副本,而不是直接在参考答案里改。下载本页的完整练习包,将解压后的 bootcamp 文件夹放到个人学习目录,名称可用 my-bootcamp,用编辑器打开它。下面“练习根目录”均指这个副本;课程原文件不受你的实验影响。

1. 先运行一个会失败的例子

按 手册 01 检查 Node 24.x,按 手册 11 理解模块和类型检查。在根目录终端执行 npm ci,再执行 npm run check。锁文件固定本次依赖,检查器版本不代表最新版本。若安装失败,保留错误并走官方/学校可用渠道;可先读代码和运行无依赖的 Node 测试,类型检查仍记未完成。

以 U03 为例,打开 u03/starter/model.ts,看到带类型的输入、输出与 TODO。类型说明函数应该接收什么,TODO 表示你还没有写行为。执行:

node tools/try.mjs u03
node tools/check.mjs u03

第一条读本单元 sample.json,调用指定函数;初次会显示 TODO。第二条检查不同输入,初次失败也正常。先完成一个函数,再运行同样命令,观察哪一项由失败变成通过。不要同时重写整个文件。

2. 四种文件分别看什么

文件 使用方法
uNN/starter/model.ts 你的练习位置;保留导出名、参数和返回类型
uNN/sample.json 一次可观察调用的 operation 与 args;可在副本改数据做预测
uNN/cases.test.mjs 行为约定;测试名说明正在证明什么,断言失败给出实际/预期
uNN/reference/model.ts 核心参考;先尝试再读,不能代表完整产品实现

若要核对参考,执行 node tools/try.mjs u03 --reference 或 node tools/check.mjs u03 --reference。比较差异并写下自己没想到的边界,再做不同数据的变式。只会复制参考不算独立理解。

3. 怎样把规则放进真实作品

照 统一启动与恢复手册 操作。v0.4 已提供现成接线代码、固定依赖、迁移与启动工具;不再要求在每节自行猜测如何搭 api/web 项目。每节“动手路线”指出具体编辑文件、命令与预期。

页面使用自己的模型编译结果;服务校验网络输入后调用模型并访问专用数据库;需要身份的单元用本机虚构账号夹具观察授权边界。源码中的教学账号不能当成正式认证方案。

错误映射仍需分别理解:非法输入400、未登录401、无权403或约定的隐藏存在性404、资源不存在404、冲突409、未知故障500。TODO 对应501,提示规则尚未实现。页面能打开不代替行为、类型与持久化检查。

4. 每一步都留下一个能继续的位置

在作品目录建立 Git,按 03 看差异后提交。完成一步,写下启动目录、命令、数据在哪里和当前输出;服务用 Ctrl+C 停止,下次按 README 重启。更改数据库前先说明迁移和恢复方式;读 24 完成独立实验库恢复,不删除原卷求“干净”。

检查时先用最小输入,再试失败条件。发生错误,先看本节定位表;仍不确定时记录错误原文、已做操作和预期。文字、账号和数据全用虚构资料,不需要真实姓名、警务信息或生产凭据。

5. 用 U03 练习做一张小项目计划

  • 问题与场景:一段合成 JSON 太难读;使用者想在本机页面检查结构。
  • 非目标:首版不做账户、云同步或工具市场。
  • 最小需求与验收:合法输入格式化;非法输入不丢原文并清空旧结果;恢复合法输入后错误消失。U03 中的对象、{ 和 false 是三个可复验例子。
  • 拆分和依赖:先写 formatJson / convertInput 并跑核心测试,再接页面事件与显示,最后才检查复制;前一步没过不把后一步勾成通过。
  • 里程碑与分工:M1 核心规则可测试,M2 页面三步可观察,M3 从新目录按 README 重做。自己负责实现与记录;如有人自愿复核,再如实记实际人员与结果,不预设支持者。
  • 风险与复盘:安装失败、误在旧目录运行、复制权限被拒分别记录;不覆盖输入或假报复制成功。把每一里程碑的版本、命令、结果、未完成项和下一步写进下方 LEARNING.md,而不是只写“做完了”。

6. 完成记录模板

单元 / 题面版本:
源文件 / 提交标识:
运行环境及实际启动命令:
类型检查:通过 / 未完成,附结果
核心测试:通过 / 失败,附用例
作品检查:逐项写真实操作与实际结果
独立变式:先预测、改动、结果
AI:用在何处、接受/拒绝什么、如何验证
未验证范围 / 暂停位置 / 下次动作:

完整作品按 README 在新目录重建一次;当前仅本人操作时记“本人自检”。没有人复核也可以继续学,不写成正式等级通过。