软件工程课程总笔记
课程笔记把需求、领域、架构、质量、交付、可靠性、安全和团队串成一条证据链。
关联:全课程
《软件工程》课程总笔记
一条贯穿全课的交付链
全课十二章依次为:从问题到可验证需求、领域建模与边界设计、架构、模块与接口契约、版本、配置与协作流、测试策略与TDD、评审、重构与代码质量、CI/CD与发布工程、可靠性与可观测性、安全、隐私与工程伦理、项目管理与团队协作、运维、发布与技术债治理、毕业团队项目:从立项到运营。不要把它们学成十二组名词。每次变化都沿同一条链追踪:用户或业务结果 → 需求与领域不变量 → 架构和接口契约 → 代码、配置与依赖 → 自动测试与评审 → 不可变制品 → 渐进发布 → SLI/SLO和日志追踪 → 事故、反馈与下一轮决策。链上任一环没有版本、负责人或验证证据,变化就可能在下一环失真。
需求与设计
需求先写问题、利益相关者、目标与非目标,再用正常、边界、权限和故障例形成验收。领域模型通过统一语言、实体/值对象、聚合、不变量和状态机稳定业务含义。架构只为高代价质量属性服务;ADR至少记录上下文、备选、决定、后果和复审触发。接口契约包含语义、模式、错误、幂等、版本和兼容演进。
质量与交付
测试按风险组合单元、集成、契约、端到端、性质与性能检查。TDD遵循红—绿—重构,红灯先确认失败原因。CI让每个小批量变更快速回到主干;同一签名制品逐环境提升。数据库与接口采用扩展—迁移—收缩,金丝雀按样本量、观察窗、通过阈值和停止阈值放量。回滚必须同时考虑数据、消息和外部副作用。
可靠性、安全与责任
SLI定义用户可感知的测量,SLO给目标,错误预算帮助安排变化风险。超时限制等待,重试只用于幂等的瞬态失败,指数退避加抖动避免同步风暴。安全从资产、威胁和信任边界开始;隐私坚持目的限定、数据最小化、保留与可删除。可达性、公平、滥用案例和人工救济属于产品质量,不是发布后的附录。
团队与长期维护
限制WIP、缩短批量、用历史吞吐给预测区间;重要决策用ADR异步共享。代码评审先看行为、风险与证据,再看风格。技术债写本金、利息、风险、所有者和退出条件。生产就绪包括容量、观测、值班、恢复、威胁和runbook。退役完成意味着流量、数据、基础设施、凭证、告警、文档与成本全部清零。
练习方法
每节先完成单选和多选辨清条件,再做计算预算,最后按公开量表写情境决策卡。错题标注断链位置:目标、边界、不变量、契约、测试、发布、观测、恢复或责任。一周后换一个领域重做,若仍能交出可验证制品才算迁移。阶段卷题池彼此独立;期中、期末与专项卷不复用题,检验的不是记答案,而是换场景后仍能沿证据链工作。