软件工程在计算机系的名声微妙:有人觉得它是「水的课」,有人被课程设计折磨过之后觉得它是「玄学的课」。我的体会是:它是唯一一门「不学必摔跟头」的课,摔得疼不疼取决于项目大小。这门课的讲义按「一个项目从想法到交付」的时间线推进,每个阶段配真实工具(git、CI、测试框架)的操作,把「听起来有道理」变成「手上会做」。
十章的地图:为什么需要(01)→ 怎么组织过程(02)→ 想清楚(03 需求)→ 设计(04 架构、05 模式、06 建模)→ 写好代码(07 质量)→ 验证(08 测试)→ 协作与交付(09、10):
先修:至少完整写过一个小项目(课程设计级别),被自己的烂代码折磨过的人学这门课有加成。教材配合:《构建之法》(邹欣)、《重构》(Martin Fowler)、《人月神话》(细读的时机放在工作一两年后)。