Python 模型与 JSON:保存和恢复订单|课前预习
这一页只有问题,没有答案。先去真实业务里看一眼,再带着技术上想不通的地方来上课。写下自己的初步判断和依据,不必提前学会全部新知识;不确定的地方留到课堂用代码验证。
第一部分|业务观察:历史成交记录与商品现价
先去这几个地方看看
具体怎么看(照着做)
- 阅读京东价格保护说明,找出“购买后价格变化”对应的处理流程。记录这是官方规则资料,不把文档例子写成你的消费经历。
- 在自己已有账号中,仅查看一笔历史订单的字段名称,再重新打开订单列表;没有可用订单时,改看有赞订单管理手册的详情截图。只记录字段、状态和重新打开后的观察,不抄录订单号或个人资料。
- 区分“商品当前展示信息”和“某次成交记录”。如果没遇到实际改价,就写“未观察到改价”,用官方说明提出待验证问题。
只看你自己账号能看到的页面,看到提交订单那一步就停。不用真的买、真的付款,也别去动商家的真订单。截图只留相关字段,把账号、电话、地址、订单号这些个人信息盖掉。
要记下这几点
历史订单字段清单+现价与成交信息的区分+实际来源。
记录时写清六项:平台或资料标题、链接或 App 页面路径、观察日期、实际看到的内容、自己的判断、还要验证什么。可以附一张去掉个人信息的截图,不附也行。进不去的时候就去读上面那份官方说明,注明“这条是看官方文档得到的”;还是没有依据的,就写“没观察到/待验证”,下次再补,别编。
再次打开还能看到昨天的订单,说明这笔成交记录被留下来了——这是业务上的硬要求:成交过的这张单,不能因为商品后来改了价就跟着变。至于平台用什么把这笔记录存下来,是今天技术预习要解决的问题。
业务上先想这几个问题
下面几个问题,是帮你把刚才看到的业务现象,转成业务上明确的要求。你自己的判断和推测请单独标注,别当成平台真发生过的事。
- 客服复核昨天订单时应使用哪个单价?为什么?
- 昨天明明有订单,今天程序却显示空列表,这一定表示没有业务发生吗?
这一段只负责把业务说清楚。 上面这些都是业务上真实存在的要求;至于怎么用技术把它们做出来,是下面第二部分「技术预习」和今天课堂要解决的事。
第二部分|技术相关:带着问题寻找解决办法
回看一下上次课你自己的项目和运行记录,先找出跟今天的业务场景有关的输入、处理和输出。下面这些词只是帮你认出课上要解决的问题,不用课前背下来。
技术上先想这几个问题
- 中文订单写入文件时,UTF-8、文本模式和 with 各解决什么问题?
- 为什么订单保存下单时的单价,而不是随时查商品现价?
- dataclass 是否自动校验类型与业务规则?
- 损坏 JSON 与从未创建文件应该如何区分?
写下你的预测、你的理由,还有一个到现在还没想明白的地方。装好环境的同学可以直接用现有代码验证;环境还没弄好的,先在纸上预测一下,不用为了预习专门去装不熟悉的依赖。
上课时要带上这些
- 一份真实、能追到来源的业务观察记录,把“看到的事实”“我的推断”“还没验证的”分开写。
- 一份技术问题的初步判断;动手跑过的,把输入和原始结果一起附上。
- 上完课后对着解答改一改你的判断,写清是哪一步验证让你改了想法。
你写下的业务和技术问题,会在课上对应的知识点里解答,并配合演示核对;复习时回到课堂中对应的小节核对。
带着本次项目变化预测
购物车有两行商品、共三件,len(cart)应该表示哪一个?恢复对象与原对象的==和is应分别怎样判断? 只写预测与理由,课堂运行后再修正。