学径 LearnPath

软件工程

1 / 1 · ← → 翻页

阅读模式

第 13 课

软件工程

可分工 · 可检验 · 可演进。

玛格丽特·汉密尔顿与阿波罗导航软件清单
玛格丽特·汉密尔顿与阿波罗导航软件清单,1969年。原件:Draper Laboratory;Adam Cuerden 修复。来源:Wikimedia Commons,公有领域。

导言

课程目标

模块化与分层。

单元测试。

框架与版本管理。

现象

从脚本到工程

玛格丽特·汉密尔顿与阿波罗导航软件清单
玛格丽特·汉密尔顿与阿波罗导航软件清单,1969年。原件:Draper Laboratory;Adam Cuerden 修复。来源:Wikimedia Commons,公有领域。

能跑,还要别人接得住。

原理

模块化:拆开,再接上

按职责拆文件。

用接口交接。

改一处,别处尽量不碎。

原理

分层:谁可以叫谁

表现 · 业务 · 数据

上层依赖下层。

不是层数越多越好。

例证

B/S:浏览器与服务器

Browser:看见与点选。

Server:规则与保存。

边界写清,状态才靠得住。

原理

单元测试:契约可再跑

python
assert exterior_angle(4) == 90
assert exterior_angle(6) == 60
  • 合法输入的结果
  • 非法输入如何失败

强调:测小函数,不是看画布一眼。

辨析

框架:骨架先在

模块像工具箱。

框架像装配线。

主流程由它驱动,你填插槽。

原理

版本管理:可回退的快照

谁 · 何时 · 改了什么 · 为何

一次提交 = 一个说得清的意图。

人脑不是备份介质。

实践

本节练习

读数 1、2、3,平均值应为 2。

空列表 []:说明没有读数。

纸上完成即可。读数 1、2、3 时平均值应为 2;空列表 [] 时说明没有读数,不计算。

小结

本节要点

拆得开,测得了,回得去。

下一课:氛围编程的工具链。

下一课

下一课

从补全到 Agent。

效率上升时,风险也在上升。

已到最后一页。可按 ← 回顾,或切换回阅读模式。