一手记录

两套系统的开发史

磨课评课与学情分析,同一天提出需求,分别用 17 天和 20 天从需求做到客户可用。
这一页记录它们真实的生长过程——包括走过的弯路,以及我自己记错过的三处。

先说这一页的凭据

这不是事后回忆。下面的每一条,都对着四类材料交叉核对过:

证据权重说明
生产数据库最高客户实际在用的数据,最不会骗人
代码内容高逐份读过,不是看文件名
文件时间戳中只说明"最后一次改动",不等于最初状态
会话摘要与设计文档低可能滞后、可能写错——本页有三处就是被它们带偏的
为什么把"权威性"写出来:因为我在这件事上错了三次。第三次之后才明白—— 只有当说明文档、示例文件、本地库全都对不上生产库时,你才知道该信谁。

第一天就定下的两件事

2026 年 6 月 5 日,两套系统的需求同一天拆开。那天定下的东西,后来几乎没变过。

第一件:先做最短的一条路

学情分析明确:先用 Excel 导成绩,拍照识别放到第三期。

磨课评课明确:排课系统先预留,这一期不做。原话是"预留,但不是这一期的核心"。

第二件:需求方自己划掉了"不做"的部分

这一点值得单独看。不是开发说"做不完",是需求方自己先划掉的。

一个系统能不能做完,往往在提需求的时候就定了一半。

十七天与二十天:这条路长什么样

日期磨课评课学情分析
06-05骨架立起来,47 个文件;同一天写好设计说明与决定记录表最短路径跑通:导入 → 分析 → 两份报告;8 个数据模型;当天换掉一次前端框架
06-11—家长报告从"汇报结果"改成"给出洞察"
06-15导出 PDF 改了四版需求扩大:从"给老师和家长看"扩成老板视角六个场景
06-16修 4 个数据质量问题造演示数据:班级不带科目
06-18管理端按"教导主任要做什么决定"重做;上线传三次线上还是旧的英语、数学、语文被派给了同一批班名
06-22维度改名,要动六处—
06-24—新加的班带科目了(七年级英语A班)
06-25—彻底重构:给班加科目、拆班、重挂考试

17 天与 20 天。两个项目的形状几乎一样:前五天做出能用的东西,中间五天需求变大,最后五到七天全在修。

三个最贵的时刻

一、导出 PDF,改了四版才发现问题不在样式

前三版都在改样式:版式塌了 → 换排版方式还是乱 → 把所有装饰删掉只留表格,还是乱。

第四版才反应过来:问题根本不在样式,在用来生成 PDF 的那个工具身上。换成用浏览器渲染,一次就对上了。

点醒人的是一个很简单的观察:同一份内容在浏览器里看完全正常,导出来才乱。

一句话记住:同一处改到第三遍还不对,就停下来怀疑工具,别再改内容。那三个版本里有两次是白改的。

二、改一个评分维度的名字,要动六处

把「板书与多媒体运用」改成「激发兴趣与引导」——听起来一句话的事。实际要动: 系统里那份默认的维度清单、发给 AI 的评分标准、给老师的建议提示、网页上「关于」页的三处文字、示例报告的网页、示例报告的数据文件。

而且改的时候才发现,两边早就漂移了:代码里的默认清单写着 6 个维度,系统实际在跑 9 个。

三、一个班挂着三门课的考试

这一处最贵,也最值得讲。

业务方打开班级列表,看到「八年级平行C班」名下同时挂着数学、英语、语文三门课的考试。

可现实里不会这样——英语班和语文班是两个不同的班。

根子不在谁不懂业务,而在:系统里的「班」只是一个名字,没有"是哪一科的"这个属性。这个缺口从 6 月 16 日造演示数据起就长歪了,一直没被发现。

当时摆在面前两个选择:只把班级名字改掉(省事,当天能完),或者把班级按科目真正拆开。选了后者。

原因很简单:只改名字的话,底下的数据还是"一班多科目",下次做任何一张新报表,都会再撞上同一个问题。

代价是真实的:当时库里 12 个班全部是混合科目,搬迁脚本第一次执行失败,重写一遍才跑通。

拆完的结果,生产库实测:48 个班,每个班都有科目,每个班只挂一门课的考试。

拆之前拆之后
八年级平行C班
(挂着数学、英语、语文的考试)
八年级数学平行C班 / 八年级英语平行C班 / 八年级语文平行C班
(各考各的,共 48 个班)

我把这段历史记错过三次

这一节保留下来,不是自曝其短——是因为它比结论本身更有用。

版本我当时的说法为什么错
一系统一开始按「学校模型」建,一个班上好几门课系统最初只做单科,不是一开始就这样
二从单科到多科一步步长歪,班变成了能装好几门课的筐把虚拟数据的产物当成了业务事实
三是加语文英语时造演示数据导致的仍不准:多科目在 6 月 16 日就已存在

三次都错在同一个地方:从现成的文字里,推一个没有发生过的历史。

第一次从迁移脚本的措辞推("from school model"说的是迁移前,不是最初);第二次从看到的现象推;第三次从文件时间顺序推。 只有逐份读代码内容、并实测生产库,才站得住。

从这三次错误里拿出来的三条方法

  1. 别从文件名和迁移脚本的措辞反推历史。「从 A 到 B」说的是迁移前后,不是"最初是 A"。
  2. 看到"这个数据不对劲",先问它是真实产生的还是人造的。演示数据的产物会引出并不存在的因果故事。
  3. 核对"系统实际是什么样"时,唯一权威是生产数据。说明文档、会话总结、示例文件、本地开发库,四者都可能与生产不符。

两套系统的对照

维度磨课评课学情分析
开发周期17 天20 天
最贵的一次返工工具选错,改了四版样式才找到根因数据模型缺一个字段,搬迁全库
需求怎么变大要看的人变多了,不是功能变多了同左
时间花在哪最后三分之一在「修」,不在「做」同左

给要引用这份记录的人

如果要引用,建议按这个粒度:

机器可读版本: /devlog.md —— 结构化的事实、时间线与证据指针,便于程序解析与引用。
← 回到「业务系统搭建教学」