VOL.01 / TEN DIMENSIONS 序章 00 软件工程即世界构建 Dimension 1: Philosophy - 定义世界的边界 01 本体论与命名 02 奥卡姆剃刀与 KISS 原则 03 熵增与技术债 04 第一性原理与架构决策 05 身份、角色、权限与所有权 06 事实建模与状态建模 07 什么时候应该抽象 08 命名即设计 09 练习:重构一个 User 模型 10 Dimension 1 速查表 Dimension 2: Epistemology - 验证世界是否为真 11 可验证性与测试 12 可观测性 13 可证伪性与假设驱动开发 14 反馈循环 15 不确定性与渐进式发布 16 把调试当作科学方法 17 契约与规格说明 18 事实来源 19 缓存失效与一致性 20 复盘与知识沉淀 21 Dimension 2 速查表 Dimension 3: Ethics - 系统应该允许什么 22 最小权限原则 23 隐私与数据最小化 24 安全与滥用防护 25 公平性与偏见 26 问责与可解释性 27 黑暗模式 28 安全默认值 29 人工干预与申诉机制 30 作为系统设计的伦理 31 Dimension 3 速查表 Dimension 4: Aesthetics - 系统如何保持优雅 32 简单性与简陋化 33 对称性与一致性 34 局部性 35 组合 36 概念完整性 37 节奏与流动 38 工程品味 39 为了优雅而重构 40 练习:为优雅而重构 41 Dimension 4 速查表 Dimension 5: Politics - 组织世界 42 康威定律 43 所有权 44 治理 45 平台与产品 46 API 即条约 47 决策权 48 激励 49 协调成本 50 练习:对齐所有权 51 Dimension 5 速查表 Dimension 6: Economics - 取舍世界 52 机会成本 53 复杂性的成本 54 工程工作的 ROI 55 边际思维 56 总拥有成本 57 自建还是购买 58 沉没成本 59 作为利息的技术债 60 练习:工程投资决策 61 Dimension 6 速查表 Dimension 7: Psychology - 理解人 62 认知负荷 63 工作记忆与分块 64 恐惧与习得性无助 65 过度自信 66 确认偏误 67 社会压力与评审动态 68 注意力与打断 69 顺应激励的系统 70 练习:课程访问权中的恐惧 71 Dimension 7 速查表 Dimension 8: Sociology - 理解群体 72 共享语言 73 规范与约定 74 新人融入与知识传递 75 Bus Factor 与英雄文化 76 集体记忆 77 工程仪式 78 实践的扩散 79 文化漂移 80 练习:从英雄团队到可传承团队 81 Dimension 8 速查表 Dimension 9: History - 理解时间 82 遗留系统 83 代码考古 84 路径依赖 85 向后兼容 86 迁移 87 废弃与删除 88 制度记忆 89 演化式架构 90 练习:从 User 迁移到 Account 91 Dimension 9 速查表 Dimension 10: Systems - 照看整体 92 软件不只是代码 93 系统边界 94 反馈与适应 95 涌现 96 控制与影响 97 韧性 98 杠杆点 99 工程师的守护责任 100 练习:把课程平台看作复杂系统 101 最终综合:软件工程世界地图 Course Contents 00 软件工程即世界构建 01 本体论与命名 02 奥卡姆剃刀与 KISS 原则 03 熵增与技术债 04 第一性原理与架构决策 05 身份、角色、权限与所有权 06 事实建模与状态建模 07 什么时候应该抽象 08 命名即设计 09 练习:重构一个 User 模型 10 Dimension 1 速查表 11 可验证性与测试 12 可观测性 13 可证伪性与假设驱动开发 14 反馈循环 15 不确定性与渐进式发布 16 把调试当作科学方法 17 契约与规格说明 18 事实来源 19 缓存失效与一致性 20 复盘与知识沉淀 21 Dimension 2 速查表 22 最小权限原则 23 隐私与数据最小化 24 安全与滥用防护 25 公平性与偏见 26 问责与可解释性 27 黑暗模式 28 安全默认值 29 人工干预与申诉机制 30 作为系统设计的伦理 31 Dimension 3 速查表 32 简单性与简陋化 33 对称性与一致性 34 局部性 35 组合 36 概念完整性 37 节奏与流动 38 工程品味 39 为了优雅而重构 40 练习:为优雅而重构 41 Dimension 4 速查表 42 康威定律 43 所有权 44 治理 45 平台与产品 46 API 即条约 47 决策权 48 激励 49 协调成本 50 练习:对齐所有权 51 Dimension 5 速查表 52 机会成本 53 复杂性的成本 54 工程工作的 ROI 55 边际思维 56 总拥有成本 57 自建还是购买 58 沉没成本 59 作为利息的技术债 60 练习:工程投资决策 61 Dimension 6 速查表 62 认知负荷 63 工作记忆与分块 64 恐惧与习得性无助 65 过度自信 66 确认偏误 67 社会压力与评审动态 68 注意力与打断 69 顺应激励的系统 70 练习:课程访问权中的恐惧 71 Dimension 7 速查表 72 共享语言 73 规范与约定 74 新人融入与知识传递 75 Bus Factor 与英雄文化 76 集体记忆 77 工程仪式 78 实践的扩散 79 文化漂移 80 练习:从英雄团队到可传承团队 81 Dimension 8 速查表 82 遗留系统 83 代码考古 84 路径依赖 85 向后兼容 86 迁移 87 废弃与删除 88 制度记忆 89 演化式架构 90 练习:从 User 迁移到 Account 91 Dimension 9 速查表 92 软件不只是代码 93 系统边界 94 反馈与适应 95 涌现 96 控制与影响 97 韧性 98 杠杆点 99 工程师的守护责任 100 练习:把课程平台看作复杂系统 101 最终综合:软件工程世界地图 Software Engineering Philosophy Dimension 10: Systems - 照看整体 99 工程师的守护责任 Mark complete 核心问题 工程师的最终责任是什么? 成熟工程师不是代码生产者,而是复杂系统的照看者。 要守护什么 可理解性 可验证性 安全性 可演化性 公平性 可靠性 可恢复性 可传承性 写功能只是其中一部分。更大的责任是让系统未来仍能被理解、改变和信任。 小结 工程师照看的不是代码,而是代码背后活着的世界。 Previous 杠杆点 Next 练习:把课程平台看作复杂系统