docs: gongfa catalog - use full grade labels

This commit is contained in:
tradecatlabs
2026-10-12 17:56:45 +08:00
committed by GitHub
parent 46a00a6051
commit 44c586ec9a
8 changed files with 420 additions and 414 deletions
+1 -1
View File
@@ -262,7 +262,7 @@ git push origin develop
- `tools/faqi-catalog.md` - 法器品级、名称与详细解释的三列只读浏览表;解释合并重要性范围和分级依据,完整登记仍归`metadata/faqi.json`,资源原事实归资源YAML。
- `scripts/sync-faqi-catalog.py` / `test-faqi-catalog.py` - 离线总表生成、检查及行为契约;核来源、图SHA、对象映射和品级边界,保留真实命令/结果;不执行被审程序或联网补证。
- `metadata/gongfa/registry.json` - 活跃功法登记、等级、规则、来源、内容版本、人工初评及正式评级历史的唯一可编辑数据源;类型语义仍归本体主文;新范围追加批次
- `metadata/gongfa/catalog.md` / `catalog.xlsx` - 功法总表的生成视图;Markdown列品级、名称与详细解释:登记摘要/问题/机制及条件/限制/预期结果,候选原文/用途/理由,Solve机制/适用范围/前提/边界;完整原始数据仍归JSON;Excel保留完整字段;不手改、不自动注册/去重/评级
- `metadata/gongfa/catalog.md` / `catalog.xlsx` - 功法总表的生成视图;Markdown列品级、名称与详细解释;品级使用“天阶高级”等完整名称,不缩写。登记摘要/问题/机制及条件/限制/预期结果,候选原文/用途/理由,Solve机制/适用范围/前提/边界;完整原始数据仍归JSON;Excel保留完整字段;不手改、不自动注册/去重/评级
- `metadata/gongfa/catalog-sources.json` - 仅索引仓内不可变候选快照的路径/SHA/范围;历史材料不是第二可编辑登记,不依赖个人目录或临时工件
- `scripts/sync-gongfa-catalog.py` / `test-gongfa-catalog.py` - 离线总表生成、检查及行为契约;复用原登记校验与openpyxl,保留真实命令/结果
- `scripts/check-gongfa.py` - 功法JSON、来源、ID/版本、词表、人工初评与正式评级的离线校验;不联网、不执行原文、不计算品级;多批次用`--proposal-batch`显式选范围,表格标明批次,不把本批缺项报作全局未评
+1 -1
View File
@@ -5,7 +5,7 @@
- `registry.json`唯一拥有本子域活跃登记的等级字典、规则版本、来源、内容版本、人工初评批次与正式评级记录。
- `catalog-sources.json`仅索引不可变候选来源快照的路径、SHA和范围;`source-classified-candidates-*.json`保存旧限定选区与编者意见作为来源事实。
不是另一份可编辑登记,不自动注册候选、批准身份或产生正式评级;原著与许可证仍未核验,不默认授权公开再发行。
- `catalog.md`浏览品级、名称和解释;解释展开登记摘要/问题/机制及条件/限制/预期结果、候选原文与用途/理由、Solve机制/适用范围/前提/边界,不新增主张;完整来源和边界明细仍以JSON为准。`catalog.xlsx`保留完整总表字段。两者均由当前登记与候选快照生成;不要手工编辑。
- `catalog.md`浏览品级、名称和解释;品级使用“天阶高级”等完整名称,不用“天高”等缩写。解释展开登记摘要/问题/机制及条件/限制/预期结果、候选原文与用途/理由、Solve机制/适用范围/前提/边界,不新增主张;完整来源和边界明细仍以JSON为准。`catalog.xlsx`保留完整总表字段。两者均由当前登记与候选快照生成;不要手工编辑。
- `registry.schema.json`定义协议形态;`scripts/check-gongfa.py`补充来源/外键/顺序/历史链等跨字段约束。
- `source-*.txt`是原始Markdown/HTML快照,只供离线核对,不运行其中脚本、提示词或命令,不当成第二份正文。
仓内补收包括编程准则、数据服务、开发经验和工程反例等独立限定节;具体快照与锚点只在JSON登记,README列职责与范围。
+1 -1
View File
@@ -2,7 +2,7 @@
## 字多不看
- [功法总表](catalog.md)展示品级、名称和更完整的解释;解释展开登记摘要/问题/机制及条件/限制/预期结果、候选原文与用途/理由、Solve机制/适用范围/前提/边界,不新增主张;完整来源以JSON为准;[Excel完整视图](catalog.xlsx)保留全字段。
- [功法总表](catalog.md)展示品级、名称和更完整的解释;品级使用“天阶高级”等完整名称,不缩写。解释展开登记摘要/问题/机制及条件/限制/预期结果、候选原文与用途/理由、Solve机制/适用范围/前提/边界,不新增主张;完整来源以JSON为准;[Excel完整视图](catalog.xlsx)保留全字段。
- [registry.json](registry.json)仍是活跃登记唯一可编辑数据源;候选历史材料是不可变来源快照,不自动入库。
- 2026-10-07的两次入库轮次共79条:仓内62条+指定项目页面17条;另续收21条。拼好码于2026-10-11按用户指令由地阶中级暂定调整为天阶高级暂定,历史值与理由见文件末尾审计。
- 两批入库初评的原始分布为黄7、玄47、地25、天0;这是修订前历史记录,不代表当前分布,也不是效果实测。
+408 -408
View File
@@ -16,414 +16,414 @@
| 品级 | 功法名称 | 解释 |
|---|---|---|
| 天高 | 拼好码 | 在既有能力空间中匹配需求、选择方案并编排业务,用低自研成本获得可验证、可替换、可回滚的系统。 问题:如何平衡复用效率、业务差异与长期演化。 机制:需求→候选能力→选择→适配→编排→检验→更新;成熟组件承担通用复杂度,薄胶水表达领域差异,测试与CI提供经验检验。 条件:方案可识别、维护稳定、接口可隔离。 限制:供应链不可观测、依赖锁定或关键约束超出现有能力时,复用可能转化为系统性风险。 预期结果:需求匹配、方案选择与业务编排,以及可验证、可替换、可回滚的系统。 |
| 地高 | 第一性原理 | 审查结论的前提,区分事实、假设、偏好与惯例,从事实约束重推最小路径。 问题:经验惯例绑架需求,或复杂方案无法解释其必要性。 机制:写结论→审查前提→区分事实/假设/偏好/惯例→保留事实约束→重推路径。 条件:需求受经验做法影响,或需要核对默认方案是否成立。 预期结果:基于事实约束的最小可行路径。 |
| 地高 | 形式化方法(轻量形式化) | 原文用途:减少非法状态、约束模型输出、让行为可检查可累积。 问题:减少非法状态、约束模型输出、让行为可检查可累积。 机制:- **先规格**:类型 + schema + 不变式 + 错误集合(异常或 error object)+ 复杂度约束(可选) - **再检查器**:类型检查 + 运行时校验 + 断言/契约 + 性质测试 - **最后实现**:逐条映射规格(谁保证哪条约束) 预期结果:类型、schema、不变式与错误语义规格。;类型/运行时校验、契约和性质测试。;实现与规格的满足关系说明。 |
| 地高 | 方法论工具箱总体作业流 | 用现象卡片、规格、检查器、最小实现、反例与收敛重构组织工程交付。 问题:如何将探索组织为可检查、可证伪和可维护的工程产出。 机制:现象卡片→规格化→检查器→最小实现→反例驱动→收敛重构。 预期结果:现象/意图/情境/边界卡片、规格与检查器、最小实现、失败模式及维护后的稳定版本。 |
| 地中 | 胶水原则 | 成熟能力能以可接受代价可靠满足需求时默认复用,自研核心须证明合理性。 问题:何时复用、何时自研通用底层能力。 机制:先查现成能力,只写必要连接、编排、适配、隔离和业务表达。 条件:成熟方案能以可接受的成本、风险和复杂度可靠满足需求。 限制:自研不是默认选项,但可以成为有合理依据的例外。 |
| 地中 | 反事实推理(Counterfactuals) | 原文用途:系统性覆盖异常路径,降低线上事故。 问题:系统性覆盖异常路径,降低线上事故。 机制:- 问"如果 X 不成立会怎样":超时、乱序、重复、空值、弱网、权限缺失、时钟漂移 - 把反事实转成测试矩阵与降级策略 预期结果:异常条件的反事实场景矩阵。;风险对应的测试、降级与错误语义。 |
| 地中 | 溯因排错法(仓内操作版) | 原文用途:debug/性能退化时,比穷举更快定位"最可能原因"。 问题:debug/性能退化时,比穷举更快定位"最可能原因"。 机制:- 列候选原因 → 为每个原因写最便宜的区分性实验(日志点/开关/最小基准) - 用证据淘汰而不是凭感觉改代码 条件:适用情境:debug或性能退化的原因排查。 预期结果:候选原因及低成本、高区分度的实验与预期观察。;用证据淘汰原因的排查结果。 |
| 地中 | 错误认识论(Error epistemology) | 原文用途:系统化"我们会如何错",比事后补洞更省。 问题:系统化"我们会如何错",比事后补洞更省。 机制:- 先做失败模式清单(空值/乱序/重复/并发/权限/超时/编码/浮点等) - 每类至少一个测试;明确错误语义(raise / error object / log+metric) 预期结果:按风险排序的失败模式清单及对应测试。;统一错误模型与示例响应/异常层级。 |
| 地中 | 实验哲学(x-phi) | 原文用途:交互与默认策略别靠直觉,用数据决定。 问题:交互与默认策略别靠直觉,用数据决定。 机制:- 把争议点改成可测实验(A/B 默认值、错误文案、重试策略) - 指标:误用率、重试率、成功率、工单率、完成时间 条件:适用情境:交互与默认策略存在设计争议,可将争议改成可测实验。 预期结果:实验分组、指标、样本、持续时间与判定阈值方案。;埋点字段与分析方法。 |
| 地中 | 固定点收敛系统 | 以分层闭环控制,将意图转成可执行、可验证的目标状态,并按失效层级调整行动、策略或目标。 问题:动态环境下,如何对趋近目标的过程实施可验证控制。 机制:观察→差距识别→行动→验证→修正;行动失效则升级策略,策略失效则复审目标,目标不可确定则回退需求或交由人工裁决。 条件:目标可识别、状态可观测、验证准则一致,策略空间中存在有效控制路径。 限制:缺乏稳定性或充分反馈时,“收敛”只能作为架构期望。 预期结果:可执行、可验证且受变更约束的目标状态,以及现实与目标偏差的持续缩小。 |
| 地中 | 最小先验条件下的代理增强型任务求解 | 在陌生领域固定完成条件、约束与验收标准,以外部知识、成熟能力、PoC与代理降低求解成本。 问题:有限认知与成本下,如何设计可校验、可复用、可更新的任务求解机制。 机制:任务定义→外部知识检索→能力复用→模型选择→关键假设PoC→实现→验证与确认→经验更新 条件:外部知识源质量、工具可调用性、接口可集成性及关键假设的可识别性。 限制:信息欠决定、外推失效或权限扩大时,可能放大系统性误差与操作风险。 预期结果:需求覆盖下的任务求解方案、关键假设PoC、实现与验证确认;选型、实验、Runbook及失败记录用于更新。 |
| 地中 | 问题界定与求解闭环(仓内体系版) | 用目标、现状、差距与标准界定问题,在目标/约束/对象下选择路径,再用反馈修正。 问题:如何避免解错问题,并让求解过程通过结果反馈趋近目标。 机制:定义目标/现状/差距/标准→按目标、约束和对象构造路径→执行→比较结果与目标→修正→再执行。 条件:问题定义的目标、现状、差距和标准须清楚;路径需考虑时间、资源、成本、风险、规则、能力上限与环境。 限制:四项定义不清,努力可能是在解错题;没有约束的方案往往只是空想。 预期结果:明确的问题定义、受约束的求解路径及经反馈修正的结果。 |
| 地中 | 6.2 契约式设计 | 6.2 契约式设计 — 契约式设计用前置条件、后置条件和不变式明确调用双方责任 前置条件由调用方负责;后置条件由被调用方负责;面向对象场景还包含类不变式。外部用户输入先由调用方做合法性验证;断言用于暴露程序员预想之外的错误。书中要求断言表达式避免副作用,并把断言定位为开发/维护阶段工具。视觉时序图明确展示“外部输入验证 → 前置条件 → 函数处理 → 后置条件 → 返回结果”。适用判断:函数之间需要明确合法输入、结果保证和对象状态约束时行动:把契约写清并用断言检查程序员错误,违约时尽早失败理由:责任边界明确能简化函数内部并更早暴露理解偏差 用途/任务族:跨模块责任与不变式约束 初评说明:输入验证、前后条件及不变式区分责任,预计在困难接口组合中较有力减少状态与调用错误。 |
| 地中 | 性能工程“医生”闭环 | EPUB第27–33节 · 03-导读:专栏是怎么设计的?需要哪些知识? 核心思想:性能工程师应像医生一样:先收集症状和数据,再测试与诊断根因,最后实施治疗并复检;这要求横跨软硬件和组织协作。 关键框架 性能工程“医生”闭环性能工程知识矩阵 行动要点 性能问题通常跨软件、OS、CPU、内存、存储和网络。搜索和经验只能辅助定位,最终要靠数据与实验确认。复杂问题往往需要跨团队推动。 医生式诊断闭环 性能工作应从现象到证据、从根因到验证形成闭环。 先观察用户和系统症状。设计测试收集可重复证据。定位瓶颈与根因。实施优化后重新测量。 用途/任务族:跨软硬件困难性能诊断 初评说明:症状、可重复测试、根因与复测结合,预计在复杂资源交互任务中较有力减少错误治疗。 |
| 地中 | 七步性能测试闭环 | EPUB第75–84节 · 10-性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢? 核心思想:可靠性能测试遵循七步闭环:对象→指标→度量→期望→规划→执行→分析;后三步需要反复迭代。 关键框架 七步性能测试闭环 行动要点 负载发生器自身不能成为瓶颈。指标应覆盖响应时间、吞吐和资源使用。测试环境和流量必须可复现,结果不满意时回到前序步骤。 七步流程 测试的前四步先定义“测什么、如何判定”。 确定SUT。确定性能指标。确定统计度量。确定期望/阈值。 迭代执行 规划、执行和分析是持续迭代部分。 负载和数据要接近目标场景。先短测再长测、逐步加压。分析结果后可回退修改计划再测。 用途/任务族:复杂性能测试设计与判定 初评说明:对象、指标、度量、阈值到可复现执行分析,且限制发生器瓶颈,预计在困难测试中较有力减少无效结果。 |
| 地初 | 奥卡姆剃刀 | 在相同解释、验收及关键约束下优先选择更少假设、结构、依赖和状态的方案。 问题:多个满足同一目标的方案如何取舍。 机制:在不牺牲关键约束的前提下少引入不必要实体。 条件:能解释同一现象、满足同一验收标准。;不牺牲关键约束。 限制:不是无条件的“越简单越好”。 |
| 地初 | 状态空间思维模型 | 状态空间思维模型把“状态、变化、序列、决策树、多元宇宙”整合在一起,用来分析一个系统从当前状态可能走向哪些未来状态。 问题:系统从当前状态可沿哪些动作进入哪些未来状态,哪些路径可逆或可回滚。 机制:描述当前状态→列出动作→展开后续状态→标记不可逆/高风险/可回滚路径→选择保留选择权且接近目标的路径→建立检查点与回退手段。 预期结果:当前状态、可行动作与可能后续状态的描述。;不可逆、高风险、可回滚路径标记及检查点选择。 |
| 地初 | 可证伪主义(波普尔) | 原文用途:把"看起来对"变成"暂时无法证伪";显著降低隐藏 bug。 问题:把"看起来对"变成"暂时无法证伪";显著降低隐藏 bug。 机制:- 每个关键断言都要配一个能让它失败的测试(边界/随机/反例) - 优先性质测试而非只写示例测试 预期结果:关键断言对应的可失败测试,优先性质测试。 |
| 地初 | 系统论/整体论(边界与反馈回路) | 原文用途:复杂系统容易在耦合点失控;缩短反馈回路提效最大。 问题:复杂系统容易在耦合点失控;缩短反馈回路提效最大。 机制:- 先画数据流/依赖边界:I/O 放边缘,核心逻辑保持纯函数 - 优先解耦高耦合点;把慢依赖换成桩/模拟以加速测试 预期结果:数据流、依赖边界与高耦合点分析。;可测试纯函数核心及I/O适配方案。 |
| 地初 | 机制解释(Mechanistic explanation) | 原文用途:把"能跑"变成"可解释可维护";降低未来修改风险。 问题:把"能跑"变成"可解释可维护";降低未来修改风险。 机制:- 要求输出数据流:输入 → 中间状态 → 输出 - 对中间状态写不变式/断言;把解释与代码结构对齐 预期结果:输入、中间状态、输出的数据流机制说明。;中间状态的不变量及断言或类型保证。 |
| 地初 | 计算哲学(Computational philosophy) | 原文用途:复杂状态与规则用"可运行模型/仿真/搜索"代替纯讨论。 问题:复杂状态与规则用"可运行模型/仿真/搜索"代替纯讨论。 机制:- reference 实现(慢但清晰)作为 oracle - optimized 实现(快/工程化)用差分测试锁死行为 - 用仿真/生成器自动探索边界 条件:适用情境:复杂状态与规则需要用可运行模型、仿真或搜索探索。 预期结果:清晰的reference实现与优化实现。;差分、仿真、生成器或状态机测试的反例。 |
| 地初 | 近端因果机制 | 区分上游背景、传导环节与直接作用项,用干预、时序和反事实证据检验结果末端的生成机制。 问题:复杂生成过程中,什么层级的机制对特定结果最有解释相关性。 机制:结果界定→近邻原因识别→机制推演→经验检验→因果更新 条件:因果结构具有足够可识别性,关键中介未被遗漏。 限制:存在共同原因、反馈回路或多重充分路径时,近端解释可能欠决定,也难直接外推至更远层级。 预期结果:解释结果在何种局部条件下被即时产生 |
| 地初 | 分而治之 | 把复杂整体拆成相对独立的小问题,分别求解,再集成为完整结果。 问题:如何将难以理解、实现和测试的复杂问题分解为可管理单元。 机制:按问题边界拆分→分别解决子问题→通过清晰接口集成。 条件:拆分尽量高内聚、低耦合,模块职责集中,通过清晰接口协作。 限制:边界不合理会造成耦合严重、接口混乱与集成困难。 预期结果:更清晰、易测试与维护的子问题,以及集成后的完整系统。 |
| 地初 | 规约先于实现 | 先明确行为,再确定结构,最后落实代码。 问题:实现前如何安排规约、结构与代码的先后。 机制:行为先于结构,结构先于代码;源文将程序称为规约的影子。 |
| 地初 | 故障可控与恢复优先 | 稳定不是永不出错,而是故障能够被发现、定位、隔离和恢复。 问题:有故障时系统怎样保持可控。 机制:围绕发现、定位、隔离、恢复组织稳定性能力,日志、监控、告警、追踪、降级、限流、回滚是其中部分。 限制:稳定不依赖永远不出问题。 预期结果:出问题时能够被发现、被定位、被隔离、被恢复。 |
| 地初 | Dataset First 数据服务范式 | 稳定数据集服务优先按 dataset 分边界,先定契约、区分数据层、共享控制面并显式隔离 legacy。 问题:核心交付物为稳定数据集的服务怎样组织。 机制:顶层按 dataset 划分,先定义落表、字段语义、主键、时间与分区/刷新策略;数据层分开,控制面统一,legacy 只兼容转发。 条件:核心交付物是稳定数据集,而不是页面、接口或一次性脚本。;适用于事实/事件采集、周期快照、事件流与时间桶并存,以及长期补数、巡检、血缘和质量治理的数据服务。 限制:纯 API 网关、纯 Web 应用、纯交易执行服务、一次性脚本及不产出稳定 dataset 的临时任务不适合直接照抄。;迁移期 legacy 壳只能兼容转发,新逻辑不得回流旧路径。 |
| 地初 | 新建数据服务作业流 | 先定数据集清单与契约,再建控制面,逐个实现数据集,最后补文档、验证和血缘。 问题:怎样新建数据服务。 机制:清单 -> contract -> registry/config/service_entry/runtime -> contract、writer、collect、backfill、validate、repair -> README、AGENTS、verify/CI、资源目录、血缘、smoke。 |
| 地初 | 缓存生命周期与隔离约束 | 缓存必须审查对象、状态版本、容量、隔离、失效和观测,不假定本地缓存自动共享或全局一致。 问题:怎样避免缓存的正确性、隔离和成本误用。 机制:约束副作用与外部状态缓存,要求合理 key、容量上限、敏感数据隔离、失效策略及命中率观测;核对多进程和分布式语义。 条件:原文针对带外部状态、用户级敏感数据、大型返回值及多进程/分布式缓存场景提出相应约束。 限制:不应缓存带副作用函数或会频繁变化的数据。;单机或本地缓存不自动全局一致或进程共享。;避免计算不能以更高的内存和一致性成本为代价。 |
| 地初 | 3.5 效应局部化 | 3.5 效应局部化 — 效应局部化要求相关行为和数据靠近,让修改影响尽量停留在小范围 适用判断:一次修改容易波及许多模块时行动:把共同变化的代码聚集,建立清晰边界并缩小依赖范围理由:影响面越小,理解、测试和修改越安全 用途/任务族:高传播变更的边界设计 初评说明:共同变化聚集并缩小依赖,预计在复杂联动修改中仍能压低遗漏和回归面。 |
| 地初 | 3.10 变动率 | 3.10 变动率 — 变动率要求按照变化原因与速度组织代码,让一起变化的内容靠近、不同步变化的内容分开 适用判断:一个模块内的内容因不同原因以不同频率变化时行动:依据变化原因拆分职责,把同节奏变化的元素放在一起理由:不同变化轴混在一起会造成不必要的联动修改 用途/任务族:多变化轴模块划分 初评说明:按变化原因与速度组织结构,预计在多类需求迁移中持续减少无关联动修改。 |
| 地初 | 3.11 软件架构基本技法 | 3.11 软件架构基本技法 — 软件架构基本技法是一组通过边界、抽象和分解来控制复杂性的通用工具 本组十项基本技法:抽象、封装、信息隐藏、打包、关注点分离、充足性/完整性/原始性、策略与实现分离、接口与实现分离、单一引用点、分治。适用判断:需要设计模块、接口和依赖结构时行动:综合使用抽象、封装、信息隐藏、分离和分治等技法理由:结构化控制复杂性可以限制变化传播并提升理解能力 用途/任务族:复杂系统模块与接口设计 初评说明:综合边界、分离和组合技法,预计帮助处理困难的依赖与集成任务;集合数量不构成评级理由。 |
| 地初 | 3.14 信息隐藏 | 3.14 信息隐藏 — 信息隐藏要求主动隐藏可能变化的设计决策,只暴露稳定事实 适用判断:某项内部选择可能变化且不应影响调用者时行动:把易变决策放在模块内部,用稳定接口隔离调用方理由:隐藏变化点能把未来修改限制在局部 用途/任务族:易变决策隔离 初评说明:隐藏易变选择并暴露稳定事实,预计在困难的技术替换和需求迁移中仍限制修改传播。 |
| 地初 | 3.16 关注点分离 | 3.16 关注点分离 — 关注点分离要求把不同问题域或责任拆开处理,避免相互纠缠 适用判断:一个模块同时处理多个独立关注点时行动:识别不同关注点并为其建立独立结构或层理由:分离后每个部分更容易理解、替换和测试 用途/任务族:交织职责的分离 初评说明:分离独立关注点预计在复杂替换和局部验证任务中仍提高可控性。 |
| 地初 | 3.21 分治 | 3.21 分治 — 分治把复杂问题拆成较小、边界清晰的问题分别解决再组合 适用判断:问题规模超过一次性理解和处理能力时行动:沿职责、数据或流程边界分解,再定义清楚的组合方式理由:小问题更易理解、验证和复用,整体复杂度更可控 用途/任务族:复杂问题分解与再集成 初评说明:明确较小边界并定义组合方式,预计困难任务中仍降低单次理解负担;拆完未集成不算达标。 |
| 地初 | 3.22 软件架构的非功能需求 | 3.22 软件架构的非功能需求 — 非功能需求从易变性、互操作性、效率、可靠性、可测试性和可复用性等维度约束架构质量 本书展开的非功能维度:易变性、互操作性、效率性、可靠性、可测试性、可复用性。3.22同时讨论安全性的保密性、完整性、可用性(CIA)视角。适用判断:方案功能正确但仍需评价长期质量时行动:逐项检查关键非功能属性,并根据语境权衡冲突理由:系统质量由功能之外的结构属性共同决定 用途/任务族:困难架构质量权衡 初评说明:同时审查非功能维度与CIA,预计在功能正确但质量冲突的任务中减少遗漏。 |
| 地初 | 3.26 可靠性 | 3.26 可靠性 — 可靠性要求软件在预期条件下持续给出正确结果,并能控制故障影响 适用判断:错误可能造成较大业务或数据损失时行动:通过简单结构、检查、测试和故障隔离提高确定性理由:可靠性来自对错误和变化传播的持续控制 用途/任务族:高损失故障影响控制 初评说明:简单结构、检查与隔离预计在困难异常场景中仍约束错误传播;不是不故障保证。 |
| 地初 | 3.27 可测试性 | 3.27 可测试性 — 可测试性要求设计让行为能被独立观察、输入可控、结果可验证 适用判断:测试难以编写或故障只能靠集成环境复现时行动:降低隐藏依赖,拆分职责并提供可控接口理由:可测试结构能更早发现回归并支持安全修改 用途/任务族:难观察和难复现行为设计 初评说明:可控输入、独立观察与显式接口预计在困难回归和迁移任务中仍改善验证能力。 |
| 地初 | 3.36 安全原理 | 3.36 安全原理 — 安全原理要求面对异常与误用时限制损害,并把失败尽早暴露 适用判断:输入不可信、状态可能异常或错误代价高时行动:验证边界、隔离风险并在异常状态下安全失败理由:控制错误传播可以保护数据和后续处理 用途/任务族:不可信输入与高代价异常 初评说明:边界验证、隔离与安全失败预计在困难异常任务中仍保护数据与后续处理。 |
| 地初 | 3.37 UNIX思想 | 3.37 UNIX思想 — UNIX思想以模块化、组合、清晰和简单等原则构造可协作工具生态 UNIX思想的十七项原则依次覆盖模块化、清晰、组合、分离、简单、简约、透明、健壮、表达/表示、最小意外、沉默、修复、经济、生成、优化、多样性、可扩展性。适用判断:设计命令行工具、服务或可组合模块时行动:优先小模块、文本/标准接口与可组合性理由:独立小工具通过清晰协议组合,整体更灵活 用途/任务族:可组合工具生态设计 初评说明:透明小模块和清晰协议预计在异构工具集成中仍减少联动故障与重复实现。 |
| 地初 | 3.44 透明性原则 | 3.44 透明性原则 — 透明性原则要求系统的行为和状态可被观察,便于理解与诊断 适用判断:错误难以定位或运行机制过于隐蔽时行动:让关键状态、数据流和行为可检查理由:可见性让问题更容易理解和修复 用途/任务族:隐藏状态的困难诊断 初评说明:关键状态与数据流可检查,预计在跨模块异常中仍缩短候选根因定位范围。 |
| 地初 | 3.49 修复原则 | 3.49 修复原则 — 修复原则要求失败应显著且尽可能早,错误信息要帮助定位原因 适用判断:程序无法可靠继续运行或输入严重异常时行动:显式报告并尽早终止或隔离,避免悄悄带错运行理由:延迟和隐蔽失败会扩大损害并增加排查难度 用途/任务族:错误早暴露与隔离 初评说明:显著且早期的失败预计在困难异常链中减少带错继续运行及损害扩大。 |
| 地初 | 3.55 UNIX哲学 | 3.55 UNIX哲学 — UNIX哲学把小程序、单一职责、文本数据、组合与过滤器连接成工作方式 UNIX哲学的实践条目包括:小就是美、一件事做好、尽早原型、可移植性优先、文本数据、软件杠杆、shell脚本、避免交互式接口、过滤器化。适用判断:构建可复用工具链或自动化环境时行动:让工具小而专一,以文本/管道连接,并优先组合现有能力理由:统一简单接口使工具之间产生杠杆效应 用途/任务族:异构自动化工具链构建 初评说明:专一工具通过简单接口组合,预计在困难工具链重组中仍能复用与局部替换。 |
| 地初 | 3.61 充分利用软件的杠杆效应 | 3.61 充分利用软件的杠杆效应 — 软件杠杆效应来自复用既有程序与自动化,让少量代码驱动大量工作 适用判断:已有工具能够完成部分任务时行动:先搜索并组合现有能力,再补最少的新代码理由:复用成熟工具可以用更低成本获得更大产出 用途/任务族:成熟能力复用与业务编排 初评说明:复用已有工具再补必要代码,预计在困难集成任务中仍降低自研核心的维护投入。 |
| 地初 | 4.2 耦合度 | 4.2 耦合度 — 耦合度衡量模块之间依赖,应减少强耦合并让依赖指向更稳定的部分 耦合类型从更强/更差到更弱/更好包括:内容、公共、外部、控制、标记、数据;书中还提醒关注混合耦合。除耦合种类外,还要看依赖数量、方向以及依赖目标的稳定性。视觉图示展示多种模块依赖形态,已纳入视觉复核。适用判断:一个模块了解或控制另一个模块过多内部细节时行动:降低内容/公共/控制等强耦合,优先简单数据接口和稳定依赖理由:较弱耦合能限制变化传播并提高独立性 用途/任务族:复杂依赖关系与稳定性治理 初评说明:同时看类型、数量、方向和稳定目标,预计在困难依赖迁移中仍缩小传播面。 |
| 地初 | 5.3 性能调优的箴言 | 5.3 性能调优的箴言 — 性能调优的核心是避免过早优化,用测量驱动针对热点的改进 调优流程:先证明有性能需求 → 测量并找热点 → 优化热点 → 再次测量 → 验证正确性。涉及架构级性能约束时应尽早做测量性实验,避免把“不要过早优化”误解为完全不考虑性能。适用判断:性能问题被明确提出或指标不达标时行动:证明需要、测量定位、优化热点、再次测量并验证正确性理由:大多数性能收益集中在少数热点,盲目优化会损害清晰度 用途/任务族:困难性能问题测量与复测 初评说明:明确需求、热点、复测及正确性形成闭环,预计在困难优化任务中仍抑制错误收益判断。 |
| 地初 | 5.5 一步一步走 | 5.5 一步一步走 — 一步一步走要求一次只做一个小变更并立即验证,再继续下一步 适用判断:重构、排错或替换工作范围很大时行动:拆成可回滚的小步,每步完成后测试或确认理由:小步能缩小故障来源并保持系统始终接近可工作状态 用途/任务族:高风险重构的增量验证 初评说明:小变更、立即验证和回滚余地预计在困难替换任务中仍减小故障定位与恢复范围。 |
| 地初 | 6.1 曳光弹 | 6.1 曳光弹 — 曳光弹用可运行的最小端到端骨架获取真实反馈,并持续演化为最终系统 曳光弹代码会留在最终系统并持续充实;一次性原型的目标主要是学习,验证后可以丢弃。适用判断:架构路径、集成链路或需求理解存在不确定性时行动:尽快打通一条真实端到端路径,再沿骨架逐步充实理由:真实环境反馈能早暴露接口和集成问题 用途/任务族:集成不确定性下的演化骨架 初评说明:真实端到端路径持续演化,预计在困难集成任务中更早暴露边界错误;一条路径不代表全部验收。 |
| 地初 | 6.3 防御性编程 | 6.3 防御性编程 — 防御性编程把不可信输入挡在边界外,并区分可预期错误与代码缺陷 外部数据错误属于“预想之内”,使用错误处理;内部参数违约属于“预想之外”,用断言暴露。“路障战术”在脏区与干净区之间建立验证/消毒边界,视觉图示已核验。错误处理策略可包括无害值、跳过无效数据、保留旧值、近似值、日志、返回错误、集中处理或明确提示;选择取决于软件目标。书中区分“正确性”与“健壮性”的取舍,强调依据系统用途决定失败策略。适用判断:系统接收用户、文件、网络或其他外部数据时行动:在边界验证和净化数据;预期错误做错误处理,内部不可能状态用断言暴露理由:早期隔离错误可防止损害向系统深处传播 用途/任务族:不可信数据与内部缺陷隔离 初评说明:脏净边界和错误类型分开预计在困难异常输入中仍降低传播风险;错误策略须服从真实业务合同。 |
| 地初 | 7.8 重新发明车轮 | 7.8 重新发明车轮 — 重新发明车轮提醒先利用已有标准、库和协议,仅在差异化、控制权或学习价值足够时自建 适用判断:准备实现已有成熟解决方案能覆盖的能力时行动:先调查现有方案,再基于真实缺口决定是否自建理由:重复造轮会承担设计、测试和维护成熟组件已付过的成本 用途/任务族:成熟方案与自研边界 初评说明:先调查标准方案并按真实缺口自建,预计在困难工程选型中降低重复承担的验证与维护成本。 |
| 地初 | 健壮设计流程 | 标准化组件、可替换连接、增量组装、逐步测试形成可并行且可演化的系统。 使用:从零设计或大规模重构系统时 用途/任务族:组件增量组装与演化 初评说明:标准件、可替换连接及逐步测试预计在困难集成中仍缩小返工;不把任意分割视作可并行。 |
| 地初 | 根因与不复发 | 修复目标应达到问题不再反复需要关注,并用可维护测试保护结果。 使用:修复重复故障与遗留问题时 用途/任务族:反复故障根因修复 初评说明:不复发目标与可维护测试保护预计在困难遗留缺陷中减少重复关注和返工。 |
| 地初 | 测试即获取有效知识 | 测试通过断言、边界、假设和实验,为系统行为提供可验证知识。 使用:选择测试类型、构造测试套件和评估测试价值时 用途/任务族:困难测试目标与oracle审查 初评说明:断言、边界与假设对应可验证知识,预计在困难验证任务中仍减少无信息的绿灯。 |
| 地初 | 阿姆达尔定律 | 阿姆达尔定律 若可优化部分占比为P、加速N倍,则新运行时间为(1-P)+P/N。 总体加速比为1/((1-P)+P/N)。当P有限时,继续提高N会出现明显收益递减。 用途/任务族:优化上界与并行收益判断 初评说明:公式可预测未优化部分对总收益的约束,预计在困难资源取舍中减少高估;只限模型前提成立。 |
| 地初 | 利特尔法则 | 利特尔法则 稳定系统的在途量N等于到达/吞吐率X乘以平均停留时间W。 N=XW可把并发、QPS和响应时间联系起来。容量不足时可从降低W或提升处理能力两端思考。 用途/任务族:稳定系统并发与平均容量核对 初评说明:同边界平均在途量、吞吐和停留时间关系预计在困难容量判断中发现口径矛盾;不换算P99或失稳瞬时量。 |
| 地初 | 数据分析陷阱清单 | 分析边界 数据分析结论需要机制验证。 相关性不能直接证明因果。脏数据会制造虚假模式。指标名称相同也可能因系统机制不同而含义不同。 用途/任务族:脏数据与跨系统指标语义审查 初评说明:相关非因果及同名指标未必同义的约束,预计在困难迁移分析中仍减少虚假根因。 |
| 地初 | 九条性能测试经验 | EPUB第96–101节 · 12-九条性能测试的经验和教训:如何保证测试结果可靠且可重复? 核心思想:可重复性能测试依赖九条经验:规划阶段记录环境、快速复位、准备足够负载;执行阶段控制日志、稳定环境、理解单参数调优局限;分析阶段由易到难、多法验证、对照生产。 关键框架 九条性能测试经验 行动要点 每次测试都应可追溯到完整环境与配置。一次只调一个参数有利于解释,但可能错过参数交互和全局最优。根因结论最好由不同测试或生产数据交叉验证。 规划三条 测试前的工程化准备决定结果是否可信。 详细记录环境和过程。快速复位配置与缓存。准备足够而多样的负载请求和数据。 执行与分析六条 执行控制和结果解释同样重要。 日志适量输出,避免监控本身扰动。环境要稳定。参数调节要理解交互。根因由易到难。多种测试互相验证。最终与生产行为比较。 用途/任务族:困难性能实验的重复与解释 初评说明:环境记录、复位、扰动控制与多法验证预计在困难复测和迁移中保留可比性。 |
| 地初 | 持续性能工程集成模型 | EPUB第102–107节 · 13-性能测试的工程集成:如何与产品开发和运维业务有机集成? 核心思想:性能测试应从独立、人工、一次性的活动演化为与CI/CD和运维监控集成的持续性能工程。 关键框架 持续性能工程集成模型 行动要点 性能回归应进入持续集成流水线。上线后的监控、诊断和自动化优化需要统一数据基础。AIOps的前提是持续、可信的数据采集。 与开发集成 持续测试使性能回归更早暴露。 构建/提交后自动执行关键性能检查。阈值不满足时可阻止发布或触发回滚。 与运维集成 生产监控将一次性测试扩展为持续反馈。 自动采集指标。自动检测异常。条件成熟时可自动诊断和建议优化。 用途/任务族:性能回归的持续反馈 初评说明:关键检查与运维数据持续接入预计在长期变化和迁移任务中更早发现性能退化。 |
| 地初 | 瓶颈分层分析 | 瓶颈分层 根因定位从“哪里受限”逐步缩小到具体资源和机制。 先找可疑服务/节点。再区分CPU、内存、存储、网络等资源。继续研究资源内部行为和相互作用。 用途/任务族:困难跨资源瓶颈缩小 初评说明:从服务节点到资源再到内部机制,预计复杂问题中仍减少盲目调参和定位范围。 |
| 地初 | 网络分层诊断 | EPUB第140–148节 · 18-网络篇:如何步步拆解处理复杂的网络性能问题? 核心思想:网络性能要分层看连通性、延迟、带宽/吞吐与利用率,从单机协议栈、数据中心拓扑到互联网/CDN逐层定位。 关键框架 网络分层诊断CDN边缘缓存流程 行动要点 跨机架/数据中心链路存在超订,聊天型服务尽量近距离部署。TCP丢包会显著降低吞吐。CDN用DNS导向边缘,未命中回源,命中直接返回。 网络三维指标 连接是否可用、传输延迟和有效带宽构成基本诊断入口。 单机关注协议栈和网卡。数据中心关注拓扑和超订。互联网关注路由距离和丢包。 用途/任务族:复杂跨域网络性能诊断 初评说明:单机、数据中心和互联网分层预计在困难端到端路径中仍减少层间误归因。 |
| 地初 | 性能优化六原则 | EPUB第149–154节 · 19-性能优化六大原则:三要三不要,快速有效地进行优化 核心思想:优化前先遵循“三要三不要”:要抓最大瓶颈、确诊根因、考虑多场景与全局;不要过度优化、过早优化、肤浅调参。 关键框架 性能优化六原则 行动要点 优化收益要与成本和风险比较。根因未确认时直接调参容易把问题转移或暂时掩盖。单一场景最优不等于系统全局最优。 三个要 有效优化先确定价值、根因和边界。 优先最大的瓶颈。确诊问题根因。考虑各种场景和权衡。 三个不要 材料要求避免三类常见误区。 不要反常态地过度优化。不要在缺乏数据时过早优化。不要停留在表面参数微调。 用途/任务族:多场景困难性能优化取舍 初评说明:确诊根因并考虑全局与成本预计在困难场景迁移中仍抑制局部最优和表面调参。 |
| 地初 | 性能优化十大策略 | EPUB第155–162节 · 20-性能优化十大策略:如何系统地有层次地优化性能问题? 核心思想:十大优化策略可以按五对互补思想组织:时空转换、提前/延后、并行/异步、缓存/批量、算法/数据结构。 关键框架 性能优化十大策略 行动要点 策略选择取决于瓶颈机制,不能机械套用。每种策略都可能把成本转移到另一种资源或阶段。算法和数据结构仍是基础性的高杠杆优化。 五对策略 十种策略分别改变资源、时间或执行组织。 时间换空间 / 空间换时间。预先处理 / 惰性处理。并行 / 异步。缓存 / 批量合并。先进算法 / 高效数据结构。 工程取舍 优化不是无代价加速。 预取可能污染缓存。缓存占用空间且引入一致性问题。并行增加同步与竞争。批量提高吞吐但可能增加单请求等待。 用途/任务族:复杂资源瓶颈的策略权衡 初评说明:互补策略同时说明污染、一致性、同步和等待代价,预计困难资源取舍中仍能减少错用。 |
| 地初 | 跨层STW根因链 | EPUB第183–190节 · 24-跨层案例:如何优化程序、OS和存储系统的交互? 核心思想:跨层性能问题必须沿应用→JVM→OS→文件系统→存储追踪;案例中长STW的根因是GC日志write()被OS写回和I/O压力阻塞,而非GC算法本身。 关键框架 跨层STW根因链 行动要点 STW总时长可以包含GC之外的同步日志阻塞。对照实验用150MB/s后台I/O复现了问题。解决方案需通过分离/异步日志等方式后重新测量。 根因链 JVM暂停表象最终落到操作系统和存储交互。 GC期间同步写日志。OS脏页写回与文件系统日志产生I/O压力。write()阻塞被计入STW。 解决方案 可减少或隔离GC日志路径的同步I/O风险。 使用异步GC日志会有丢失尾部日志的风险。降低其他后台I/O。把GC日志放到独立/更快存储或tmpfs。材料验证中,分离到SSD后大暂停显著消失。 用途/任务族:困难跨层暂停根因追踪 初评说明:沿应用、JVM、OS、文件系统和存储核链并复测,预计困难交互故障中仍避免只改GC算法。 |
| 地初 | 容量规划闭环 | 容量规划流程 规划输入包括单位容量、业务增长、预算和约束。 容量测试确定单机/单位能力。历史/类比/主观有据推测用于需求预测。预算限制可改变需求或触发追加申请。最终形成订购计划并持续迭代。 用途/任务族:困难需求预算下的容量规划 初评说明:单位能力测量、需求预测与预算约束迭代预计困难规划中仍能减少错订;计划不等于已到货可用容量。 |
| 地初 | 信息隐藏 | 让每项重要设计知识尽量由一个模块拥有,减少跨模块依赖。 适用:划分模块职责与数据表示时 用途/任务族:跨模块知识重复与联动变更 初评说明:预计在多调用者、多变化点的困难维护中仍能约束扩散;不是已测迁移结果。 |
| 地初 | 提示注入分层防御 | 来源标记、角色隔离、输入清洗作为上下文防线,并由权限/沙盒/审批兜底。 适用:处理网页、邮件、文档等不可信外部内容时 用途/任务族:不可信仓库材料的提示注入防御 初评说明:预计在复杂检索和工具链中仍能用不同层的约束控制越权;未做攻击实验。 |
| 地初 | 状态栏代码维护原则 | 确定性状态优先由代码增量维护,避免让 LLM 一次性重读长历史做统计。 适用:状态可由结构化事件准确计算时 用途/任务族:长历史下确定性计数与状态维护 初评说明:预计在长轨迹和重复事件条件下比让LLM重数更稳;输入事件必须准确。 |
| 地初 | 评估集六原则 | 精确任务描述、复杂度分层、可验证性、分布覆盖、质量控制与持续迭代。 适用:制作能指导产品改进的评估数据集时 用途/任务族:困难及迁移开发任务的评估集审查 初评说明:预计在复杂任务族中仍能检查评估代表性;不是方法效果已达地阶。 |
| 地初 | 最小复现 | 用途/任务族:复杂可复现程序故障的失败输入缩减;机制:逐步缩减触发条件但保持同一故障,形成可重复检查的案例。;适用:失败复杂、依赖多或难以定位首个无效节点。;不适用:移除步骤会改变故障类别或问题不可重复。;前提:失败复杂、依赖多或难以定位首个无效节点。;边界:源文的最小与自动不是已实现自动化,也不证明全局最小案例。 |
| 地初 | 性质测试 | 用途/任务族:可声明性质的软件接口边界与组合检验;机制:按允许输入域生成多样案例,检查与实现无关的性质并缩减反例。;适用:行为可表达为跨多输入成立的性质或不变量。;不适用:性质本身含糊或生成输入会触发不可逆外部副作用。;前提:性质、输入生成域和安全执行边界已定义。;边界:有限生成样例通过不证明所有输入满足性质。 |
| 地初 | 模糊测试 | 用途/任务族:解析器与接口的大输入空间异常发现;机制:在隔离和稳定oracle下探索大输入空间,保存可重放失败。;适用:输入空间大、边界复杂且有可自动判定的异常。;不适用:目标有不可控副作用、无执行隔离或没有稳定 oracle。;前提:输入空间大、边界复杂且有可自动判定的异常。;边界:源文的攻击是方法描述,不是目标权限;通用成功字段没有给出充分覆盖阈值。 |
| 地初 | 不变量检查 | 用途/任务族:多步状态流的权限、数据与一致性检查;机制:在关键转移前后检查明确不变量,不只看最终状态。;适用:系统有跨步骤必须保持的性质。;不适用:性质本身不稳定或只能靠主观判断。;前提:状态和不变量表达式已定义。;边界:执行路径检查不证明未执行路径安全;形式验证是条件性选项而非已有回执。 |
| 地初 | 风险驱动测试 | 用途/任务族:有限预算下高影响失效路径的验证安排;机制:把有限测试预算优先用于重要失败路径,保留覆盖缺口与剩余风险。;适用:验证预算有限且系统存在不同严重度的失败路径。;不适用:所有路径风险和代价相同且已有穷尽证明。;前提:风险项、质量目标和测试资源已声明。;边界:预算与优先级一致不等于风险已降低或正确性已证明。 |
| 地初 | 事故复盘 | 用途/任务族:有可保全证据的事故根因与复发治理;机制:从真实事故证据建立触发、根因、检测缺口和放大器,再形成可验收行动。;适用:发生生产、验证或协作事故且有可保全证据。;不适用:只有无证据的主观猜测,无法形成因果链。;前提:日志、版本、变更和影响范围可被保全。;边界:行动项关闭与复发率下降分开验收;不能从结果倒推出唯一根因。 |
| 地初 | 预注册 | 用途/任务族:模型或方法晋升中的确认性评估;机制:留下不能事后改写的计划版本,区分预设判断与探索发现。;适用:结果会影响科学结论、模型晋升或资源决策。;不适用:纯探索草稿且明确不作确认性声明。;前提:问题、设计、主要结果和版本保存方式已定义。;边界:单个文件时间戳不自动证明观察先后;需可信版本与执行时间线。 |
| 地初 | 重复研究 | 用途/任务族:软件方法与模型效果的独立重复评估;机制:换有意义的执行者、数据、环境或实现,对照效应、误差与失败边界。;适用:结论需要被独立验证或作为高影响决策依据。;不适用:只是一次性探索且没有可复用声明。;前提:原研究的输入、方法、结果和关键主张可获得。;边界:本轮没有执行重复研究,也没有独立执行者回执。 |
| 地初 | 代理指标—真实目标对齐审计 | 用途/任务族:模型评分、测试通过率与真实验收目标的失配审计;机制:用独立目标观测核对指标变化,保留代理改善但目标失败的反例。;适用:决策依赖代理指标、评分、模型或文档,且真实目标及其观察边界可明确。;不适用:没有明确目标,无法确定代理究竟代表什么。;只能重复观察同一代理而无法提供任何独立目标证据;此时只能登记待验证假设。;前提:真实目标、代理定义、使用场景和不可违反契约已声明。;有目标观测或可定位反例;缺少时必须保留 inconclusive,不伪造真值。;边界:源版本0.1.0且evaluation_status=not-run;古文标题与例子不证明实测效果。 |
| 地初 | 后悔与鲁棒决策 | 用途/任务族:概率不稳且损失不对称的软件方案选择;机制:在不确定情景中比较最坏后悔和可接受阈值,而非只追点估计最优。;适用:概率、偏好或模型存在显著不确定性,且失败代价不对称。;不适用:状态和概率已经可靠且错误代价对称。;前提:行动、状态、损失和可接受风险阈值已定义。;边界:仅覆盖选定情景;未知情景和共同模型错误不能由一条曲线消除。 |
| 玄高 | 多阶思维 | 多阶思维继承二阶思维,但不止停在“行动之后会发生什么”,而是继续追踪后续反应、反馈、反身性和系统性连锁。 问题:行动后果、参与者行为、反馈与反身性如何继续改变系统及原策略。 机制:分析直接结果→追踪间接后果→判断参与者行为变化→分析反身性反馈→调整策略、门禁或回滚路径。 条件:平台规则、社区治理、开源协作、SEO/GEO、激励机制。;任何会让参与者根据结果调整行为的系统。 预期结果:直接、间接、行为变化和反身性影响的多阶分析。;策略调整、门禁或回滚路径判断。 |
| 玄高 | 奥卡姆剃刀(工具箱操作版) | 原文用途:避免模型引入不必要框架/抽象;提升可维护性与迭代速度。 问题:避免模型引入不必要框架/抽象;提升可维护性与迭代速度。 机制:- 要求两套方案:常规版 vs 简化版;以测试为准删复杂度 - 优先标准库、减少依赖、减少可变状态、减少层级 条件:简化必须满足全部测试与验收;以测试为准删复杂度。 预期结果:常规与简化方案的对照。;保持测试与验收约束的简化实现及删减理由。 |
| 玄高 | 决策论/机会成本(可逆优先) | 原文用途:避免过早做不可逆技术决策(换框架/改数据模型)。 问题:避免过早做不可逆技术决策(换框架/改数据模型)。 机制:- 标注决策:可逆 vs 不可逆;优先做可逆高价值项 - 先写接口+测试桩+适配层,延后绑定外部系统 条件:适用情境:面临换框架、改数据模型等不可逆技术决策。 预期结果:可逆/不可逆决策清单。;可逆高价值路径的接口、测试桩、适配层和MVP。 |
| 玄高 | 贝叶斯式信念更新(与溯因配合) | 原文用途:在不确定下理性分配排查时间。 问题:在不确定下理性分配排查时间。 机制:- 给假设先验(高/中/低)→ 实验后更新后验排序 - 只对后验最高的 1-2 个假设投入修改成本 条件:适用情境:在不确定条件下分配排查时间。 预期结果:假设先验、证据与后验排序记录。;按更新排序选择的下一步实验或修改方向。 |
| 玄高 | 概念分析 / 概念工程 | 原文用途:防止术语漂移导致返工;把领域概念固化进代码。 问题:防止术语漂移导致返工;把领域概念固化进代码。 机制:- 概念表:术语/定义/边界/不变量/转换关系 - 概念工程:用 Enum/Literal/NewType/dataclass(frozen) 与 schema 固化边界;禁止混用 预期结果:术语、定义、边界、不变量和转换关系概念表。;对应的类型与schema,以及应拒绝的反例测试。 |
| 玄高 | 视角三角测量(Triangulation) | 原文用途:减少单一证据的误判;提升结论可靠性。 问题:减少单一证据的误判;提升结论可靠性。 机制:- 同一结论至少两种证据:单测/性质测试 + 日志/指标;或差分测试 + fuzz 预期结果:至少两种独立验证方式、各自盲区及互补说明。 |
| 玄高 | 解空间 | 用候选解及其组织关系界定答案的可能范围,以约束、目标评价和搜索更新探索可行解。 问题:有限表征与计算资源下,哪些解可被定义、识别并有效发现。 机制:问题表征→约束编码→候选生成→可行性筛选→目标评价→搜索更新;可行域、目标函数与搜索策略共同限定可达性与优劣结构。 条件:问题边界、约束和评价准则可形式化。 限制:不可识别性、欠决定性、组合爆炸或目标错设会限制搜索与外推。 预期结果:界定答案可能存在的范围 |
| 玄高 | 目的导向的行动选择 | 在需求与约束下生成、筛选并检验候选行动路径,用反馈修正目标、模型与搜索策略。 问题:有限认知主体如何建立可辩护的选择准则,使行动有效性与目标结构一致。 机制:需求识别→目标形式化→候选路径生成→约束筛选→方案推演→经验检验→结果更新。 条件:路径进入候选空间需满足基本可行性;优越性依赖评价函数、资源约束、环境状态及目标表征。 限制:目标含混、评价尺度冲突或信息不足时,选择可能欠决定、欠识别或外推失效。 预期结果:经约束筛选、评价和经验检验的候选行动路径及后续更新。 |
| 玄高 | 自顶向下系统设计 | 从整体目标与核心业务开始,逐层拆成子系统、模块、类、函数与代码。 问题:如何在需求相对清楚的系统中先确定整体结构与边界。 机制:明确系统目标/核心业务/整体架构→拆子系统与模块→细化功能、类和函数→实现代码。 条件:需求相对清楚、业务边界比较稳定;原文举银行核心、ERP、政务与基础设施等大型系统。 限制:开始时理解需求不准确会使高层设计偏离,后续细节实现频繁返工。 预期结果:全局结构、架构边界与模块关系的规划,以及向具体代码的逐层落实。 |
| 玄高 | 状态时间与责任追踪 | 从时间展开角度检查状态由谁持有、何时变化、由谁触发。 问题:设计中如何明确状态持有者、变化时机与触发者。 机制:依次询问状态归属、变化时间和触发来源。 |
| 玄高 | 高内聚 | 让相关内容靠近、不相关内容隔离,以单一职责作为内聚核心。 问题:如何按相关性与职责组织代码。 机制:相关的靠近,不相关的隔离;单一职责是内聚核心。 |
| 玄高 | 低耦合 | 模块之间应可预测而不互相束缚,优先减少依赖。 问题:模块之间如何保持较少束缚。 机制:以依赖更少作为模块关系的取舍方向。 预期结果:原文把依赖减少与更长生命及自由相联系;这是方向性主张。 |
| 玄高 | 稳定接口与可变实现 | API 是契约,实现是细节,变化不应破坏契约。 问题:实现变化时如何对接口契约负责。 机制:区分契约与实现细节,保持契约不被破坏。 |
| 玄高 | 显式依赖优先 | 依赖表达优先显式和透明,警惕隐藏依赖。 问题:如何取舍依赖关系的表达方式。 机制:显式优于隐式,透明优于优雅。 限制:原文警示隐式依赖是腐败的起点;未给普适证明。 |
| 玄高 | 不变式与明确约束 | 把不变式视为程序的法则,通过明确约束建立秩序。 问题:如何以明确约束建立程序秩序。 机制:强调不变式及明确约束。 预期结果:原文将明确约束与创造秩序相联系。 |
| 玄高 | 真实使用验证抽象 | 抽象需要承担成本,错误抽象可能比适度重复更糟,应由真实使用检验。 问题:如何取舍重复代码与抽象。 机制:区分减少复杂性的好抽象和制造复杂性的坏抽象,警惕未被真实使用验证的抽象。 限制:抽象有代价,过早抽象可能比适度重复更糟。 预期结果:好的抽象减少复杂性。 |
| 玄高 | 技术债显式登记 | 技术债可以借,但须被看见、记录、评估并知道数量、利息和偿还时间。 问题:如何对现实交付折衷及后续偿还负责。 机制:显式记录并评估技术债,说明借了多少、利息是什么、什么时候还。 条件:为了赶进度牺牲质量有时是现实选择。 限制:只有“以后再重构”的承诺通常不会落实。 |
| 玄高 | 性能定位以测量为准 | 性能问题应靠监控、profiling、压测和真实数据定位,而不是凭感觉。 问题:性能问题如何定位。 机制:用监控、profiling、压测及真实数据定位;原文还提出先跑起来、再正确、最后快的次序。 限制:原文警示过早优化,不能只靠猜测定位多数性能问题。 |
| 玄高 | 外部源码数据集化接入 | 先按真实数据对象反向整理外部脚本,再抽出公共能力并隔离 legacy。 问题:怎样把外部源码接入数据服务结构。 机制:盘点实际数据对象,不先搬代码;脚本映射为 dataset;client/auth/限流/storage/retry-backoff 抽至公共层、runtime 或 writer;legacy 只做兼容转发。 限制:legacy 壳不能承载新逻辑,只允许兼容转发。 |
| 玄高 | 共享资源与并发安全约束 | 并发设计应识别共享资源、避免竞争、必要时使用同步,并区分并发与异步。 问题:共享资源怎样避免数据竞争。 机制:清晰区分共享资源,必要时加锁或使用线程安全结构,区分并发处理与异步处理。 预期结果:避免数据竞争。 |
| 玄高 | 输入规模与复杂度约束 | 选择算法前检查输入规模、最坏复杂度、容器操作、复制及被调用函数成本。 问题:怎样避免只看循环表面而误判复杂度。 机制:要求考虑输入规模、循环体/helper 成本、list 线性操作、切片复制、排序、dict/set 最坏成本、递归重复子问题,以及常数和内存。 限制:两层循环不必然不可接受,单层循环不必然高性能。;dict/set 的平均 O(1) 不免除最坏情况和内存成本审查。 |
| 玄高 | 2.1 KISS原则 | 2.1 KISS原则 — KISS要求持续删除非必要复杂度,只保留当前价值所需的简单结构 适用判断:新增技术、未来功能或程序员自行扩张需求时行动:先问哪些要素真正必不可少,删除过剩结构与代码理由:更少的职责和关系更容易理解、测试与修改 用途/任务族:删除无价值复杂度 初评说明:先审必要性再删过剩结构,预计在同任务族产生较明显的理解和维护收益;不删除必要保护。 |
| 玄高 | 2.2 DRY | 2.2 DRY — DRY要求一个知识或事实只有一个权威表达,重复应通过抽象或自动生成消除 重复对象包括逻辑、常量、说明性信息和手工开发作业。无法直接消除的跨抽象失配,可采用“单一来源 + 自动生成”控制重复。WET 与 DRY相反;OFOP强调数据库事实唯一;OAOO强调语法层面只出现一次。书中把“没有测试程序的代码”称为遗留代码,并建议先建立测试保护再改善。适用判断:相同逻辑、数据或作业在多处重复时行动:抽象公共逻辑、集中数据定义,必要时从单一来源自动生成其他表示理由:重复会导致遗漏修改、不一致和维护成本上升 用途/任务族:重复知识一致性维护 初评说明:单一来源与生成机制直接针对遗漏同步,预计降低多处变更的不一致和维护投入。 |
| 玄高 | 2.3 YAGNI | 2.3 YAGNI — YAGNI要求只为当前已知需求写最低限度的代码 适用判断:想以“以后可能用到”为理由预先设计功能时行动:推迟未被当前需求证明的功能与抽象,等真正需要时再实现理由:未来难以准确预测,预写代码会增加当前复杂度和维护负担 用途/任务族:需求与抽象范围控制 初评说明:推迟没有当前需求依据的代码,预计较明显减少废弃功能和后续维护负担。 |
| 玄高 | 2.6 OCP | 2.6 OCP — OCP要求在预期变化点用稳定接口隔离变化,使新增行为尽量不改旧代码 “开放”指可新增行为;“关闭”指已有代码尽量不因扩展而修改。书中提醒不要为了假想变化过度抽象;先观察真正变化,再保护稳定的变化点。适用判断:变化模式已经出现且扩展会频繁发生时行动:围绕变化点建立接口或抽象,通过新增实现扩展行为理由:减少对已验证代码的改动可以降低连锁影响和回归风险 用途/任务族:已出现变化点的扩展 初评说明:在真实变化点稳定接口,预计减少扩展对已验证代码的连锁修改;不保护猜测的变化。 |
| 玄高 | 3.3 简洁 | 3.3 简洁 — 简洁强调减少偶发复杂性,但不能以牺牲可交流性为代价追求极端短小 适用判断:实现方式越来越复杂或技巧化时行动:删除不必要结构,选择更直接、容易说明的方案理由:复杂度越高,理解、修改和故障排查成本越高 用途/任务族:复杂实现简化 初评说明:明确不以晦涩短小牺牲交流性,预计有效减少偶发复杂度及常规维护成本。 |
| 玄高 | 3.7 逻辑与数据的一体化 | 3.7 逻辑与数据的一体化 — 逻辑与数据的一体化要求共同变化的处理逻辑与相关数据靠近 适用判断:数据结构改变时总要跨多个位置同步修改逻辑时行动:让处理规则与其操作的数据在同一修改边界内理由:共同变化内容分散会扩大影响面和遗漏风险 用途/任务族:数据与处理的变更边界 初评说明:共同变化的处理与数据靠近,预计较明显缩小相关修改和遗漏同步风险。 |
| 玄高 | 3.12 抽象 | 3.12 抽象 — 抽象通过命名共同本质来隐藏不重要差异,让人能在更高层思考 适用判断:重复细节妨碍理解或多个实例共享本质时行动:提取稳定共性并赋予清晰名称,同时保留必要差异理由:抽象压缩信息,使复杂系统可在有限认知范围内处理 用途/任务族:稳定共性抽取 初评说明:提取共同本质且保留必要差异,预计较明显减少重复理解和同类修改投入。 |
| 玄高 | 3.13 封装 | 3.13 封装 — 封装把数据与相关操作放在边界内,并限制外部直接干预内部状态 适用判断:模块内部细节频繁被外部依赖时行动:通过接口暴露必要能力,把内部数据和实现封在边界内理由:减少外部依赖可降低修改传播和误用风险 用途/任务族:内部状态误用控制 初评说明:以接口限制外部干预,预计减少误用和实现替换的联动修改。 |
| 玄高 | 3.17 充足性、完整性、原始性 | 3.17 充足性、完整性、原始性 — 充足性、完整性、原始性要求接口功能够用、覆盖必要能力且不重复提供可由其他操作组合出的能力 适用判断:设计公共接口或模块能力集合时行动:提供必要且完整的原始操作,避免冗余便捷接口无限膨胀理由:更小且完备的原语集合更一致、更容易维护 用途/任务族:公共接口能力集合设计 初评说明:够用且不冗余的原语集合预计减少误用与长期API维护投入;不机械禁止便利接口。 |
| 玄高 | 3.18 策略和实现的分离 | 3.18 策略和实现的分离 — 策略和实现分离要求把“做什么/为何做”的决策与“具体怎样做”的机制解耦 适用判断:业务策略经常变化而底层机制相对稳定时行动:把策略表达放在独立层,通过接口调用实现机制理由:策略变化可避免侵入稳定实现,机制也能被复用 用途/任务族:策略变化隔离 初评说明:将经常变化的策略与稳定机制分离,预计显著减少规则变化侵入底层实现。 |
| 玄高 | 3.19 接口与实现的分离 | 3.19 接口与实现的分离 — 接口与实现分离要求调用方依赖公开契约,内部实现可以独立替换 适用判断:需要允许模块内部重构或多种实现并存时行动:稳定接口并隐藏实现细节,调用方只依赖契约理由:实现替换不会迫使调用代码同步修改 用途/任务族:契约兼容下的实现替换 初评说明:调用者依赖公开契约,预计降低内部重构的联动回归;不借A088补入契约检查步骤。 |
| 玄高 | 3.20 单一引用点 | 3.20 单一引用点 — 单一引用点要求同一事实从一个权威位置读取或修改 适用判断:配置、常量或规则在多处定义并可能产生差异时行动:确定唯一权威来源,让其他位置引用它理由:单点变更可以避免数据和行为不一致 用途/任务族:配置与事实一致性 初评说明:唯一权威读取位置预计较明显减少多副本漂移和变更遗漏。 |
| 玄高 | 3.23 易变性 | 3.23 易变性 — 易变性要求结构能承受需求和环境变化,将高变化区域隔离在稳定边界后 适用判断:预期需求、平台或规则会变化时行动:识别变化热点并通过接口、配置或模块边界隔离理由:隔离变化可减少未来修改的范围和成本 用途/任务族:变化热点隔离 初评说明:定位高变化区域并隔离,预计减少常规需求与平台调整的联动成本。 |
| 玄高 | 3.24 互操作性 | 3.24 互操作性 — 互操作性要求软件能通过明确协议与其他系统交换数据和协同工作 适用判断:系统需要连接外部服务、工具或平台时行动:采用清晰、稳定且必要时标准化的接口和数据形式理由:互操作边界决定系统能否在更大生态中协作 用途/任务族:跨系统协议协作 初评说明:明确稳定数据和协议边界,预计降低常规对接歧义和替换成本;标准化不证明语义兼容。 |
| 玄高 | 3.25 效率性 | 3.25 效率性 — 效率性关注时间与资源成本,但优化必须以真实瓶颈和需求为依据 适用判断:性能或资源使用成为明确约束时行动:先测量,再针对热点改进并验证收益与正确性理由:无依据优化会牺牲可读性且可能优化错位置 用途/任务族:有明确性能约束的优化 初评说明:测量热点后验证收益与正确性,预计减少优化错位置的成本;未据本条推断跨负载迁移。 |
| 玄高 | 3.30 简单性原理 | 3.30 简单性原理 — 简单性原理要求设计中不存在与目的无关的结构和信息 适用判断:方案可用多种复杂度实现时行动:选能满足需求的最简单结构并持续删除多余部分理由:简单结构更容易理解、验证和修改 用途/任务族:目的无关结构清理 初评说明:删除与目的无关的结构预计较明显减少理解和改动负担,保留必要约束。 |
| 玄高 | 3.33 层次原理 | 3.33 层次原理 — 层次原理用分层控制复杂性,每层只处理本层概念并通过清晰边界联系上下层 适用判断:高层目标与底层细节纠缠在同一结构时行动:建立合适层次并限制跨层依赖理由:分层使读者可逐步深入而无需同时处理所有细节 用途/任务族:高低层次依赖控制 初评说明:清晰层次与跨层限制预计显著减少常规阅读负担和无关修改传播。 |
| 玄高 | 3.38 模块化原则 | 3.38 模块化原则 — 模块化原则要求编写边界清楚、接口简单的小模块 适用判断:模块变大并承担多种职责时行动:拆成职责单一且接口明确的模块理由:小模块更容易理解、替换和组合 用途/任务族:大模块职责分解 初评说明:明确单一职责和简单接口预计显著改善同族模块的理解与替换成本。 |
| 玄高 | 3.40 组合原则 | 3.40 组合原则 — 组合原则要求程序能与其他程序连接并协同,而非形成封闭孤岛 适用判断:能力可以通过多个工具串联完成时行动:提供清晰输入输出和可组合接口理由:组合可复用现有能力并减少重复实现 用途/任务族:已有工具能力组合 初评说明:清晰输入输出预计减少封闭实现和重复造轮成本;组合不免除端到端验证。 |
| 玄高 | 3.41 分离原则 | 3.41 分离原则 — 分离原则要求机制与策略分开,让接口与引擎彼此独立演进 适用判断:用户界面、策略和底层机制相互纠缠时行动:拆分独立部分并用协议连接理由:分离能减少改一处牵动全局的风险 用途/任务族:界面策略与引擎独立演进 初评说明:通过协议拆开变化轴,预计降低常规策略或界面变更的底层回归面。 |
| 玄高 | 3.42 简单原则 | 3.42 简单原则 — 简单原则要求通过清晰的小设计降低整体复杂度 适用判断:方案逐渐出现层层特殊处理时行动:回到最直接的模型,删去不必要机制理由:复杂性是软件故障和维护困难的重要来源 用途/任务族:特殊处理膨胀控制 初评说明:回到直接模型并删无用机制,预计明显改善维护与定位成本。 |
| 玄高 | 3.45 健壮性原则 | 3.45 健壮性原则 — 健壮性原则强调透明和简单带来的抗错误能力,而非堆叠复杂防护 适用判断:系统需要在变化和异常下稳定运行时行动:减少隐藏状态和脆弱依赖,保持结构清楚理由:易理解的系统更容易预测和修复异常行为 用途/任务族:脆弱依赖与隐藏状态治理 初评说明:透明与简单预计减少不可预测异常和修复投入;不能替代具体错误处理。 |
| 玄高 | 3.50 经济原则 | 3.50 经济原则 — 经济原则要求在可行时优先机器自动化,减少昂贵的人工作业 适用判断:重复工作可以由程序可靠完成时行动:把重复、可规则化的工作交给机器理由:自动化降低人工成本和离散错误 用途/任务族:可规则化重复作业自动化 初评说明:可靠机器替代重复人工预计较明显减少离散错误和重复投入;需计入自动化维护成本。 |
| 玄高 | 3.51 生成原则 | 3.51 生成原则 — 生成原则要求用程序生成可机械推导的代码或数据 适用判断:同类结构可从更高层描述自动得到时行动:维护单一高层来源并自动生成派生产物理由:生成能消除重复并保证多个表示一致 用途/任务族:多表示机械派生 初评说明:单一高层来源生成产物预计减少表示漂移与重复维护;不声称生成内容必然正确。 |
| 玄高 | 3.52 优化原则 | 3.52 优化原则 — 优化原则要求先让系统正确和清晰,再依据测量结果优化热点 适用判断:没有性能证据却想提前微优化时行动:推迟优化,先测量真实瓶颈再局部改进理由:过早优化常增加复杂性并错过真正热点 用途/任务族:无证据微优化筛除 初评说明:先正确清楚再测热点,预计减少错误优化和无收益投入;不延期必要架构测量。 |
| 玄高 | 3.54 可扩展性原则 | 3.54 可扩展性原则 — 可扩展性原则要求协议和格式允许在兼容前提下增加新能力 适用判断:接口未来可能增加字段、命令或实现时行动:设计可扩展边界并避免把当前枚举假设写死理由:兼容扩展可降低升级对现有用户的破坏 用途/任务族:协议兼容扩展 初评说明:在兼容前提下留扩展边界,预计降低常规升级对已有消费者的破坏。 |
| 玄高 | 3.58 尽早创建原型 | 3.58 尽早创建原型 — 尽早创建原型要求尽快做低成本实验以验证理解和风险 适用判断:需求、技术或交互存在高不确定性时行动:快速做可丢弃原型获取反馈,再据结果决定正式设计理由:早期学习比在错误假设上完善大系统成本更低 用途/任务族:高不确定性学习实验 初评说明:可丢弃低成本原型预计更早证伪需求或技术假设并减少无效实现,不当成交付系统证据。 |
| 玄高 | 3.63 避开交互式用户接口 | 3.63 避开交互式用户接口 — 避开交互式用户接口强调工具应能被非交互方式调用以便自动化 适用判断:核心能力只能靠人工点击操作时行动:提供命令、参数或可脚本化接口理由:可自动调用的工具更容易组合、测试和批处理 用途/任务族:核心能力非交互调用 初评说明:可脚本接口预计较明显降低批处理和组合的人工介入成本;不取消用户需要的交互入口。 |
| 玄高 | 3.64 过滤器化 | 3.64 过滤器化 — 过滤器化要求程序从标准化输入读取、只做一种转换、输出可继续被处理的结果 本节还列出UNIX式经验:环境可定制、小内核、简短名称、沉默、并行思考、组件协同、90%目标、“更差就是更好”等,用于说明过滤器生态的文化背景。适用判断:数据处理能拆成连续转换步骤时行动:把各步做成独立过滤器并用统一数据流连接理由:过滤器结构支持重组、复用和并行思考 用途/任务族:流水式数据转换组合 初评说明:统一输入输出的过滤器预计提高同族任务重组和复用效率,不借此批准源经验中的任意简化。 |
| 玄高 | 4.1 内聚度 | 4.1 内聚度 — 内聚度衡量模块内部功能的关联强度,应尽量接近单一、完整的功能目的 内聚度七级由低到高:巧合、逻辑、时间、流程、通信、信息、功能。功能内聚最纯粹;信息内聚在实际模块设计中也有较高价值。视觉图示逐级展示模块内部功能与数据关系,已纳入视觉复核。适用判断:模块包含彼此关系很弱的处理时行动:提高内聚度,优先功能内聚或合理的信息内聚理由:内部关联越强,模块越容易理解、维护和复用 用途/任务族:模块内部关联诊断 初评说明:内聚分类及功能目的可辅助定位职责混杂,预计较明显改善常规模块维护;旧图示未复核。 |
| 玄高 | 4.3 正交性 | 4.3 正交性 — 正交性要求各组件尽可能独立,一个变化不应无关地影响其他组件 正交设计追求组件独立,但分层也可能带来性能和级联修改成本,需要结合语境权衡。适用判断:修改一项功能会迫使多个无关部分联动时行动:分离职责、减少全局状态并建立清晰层次理由:独立性降低组合复杂度并使测试和替换更容易 用途/任务族:组件独立变更 初评说明:独立职责、少全局状态预计减少无关联动修改,且源文承认层次与性能代价。 |
| 玄高 | 4.4 可逆性 | 4.4 可逆性 — 可逆性要求重要技术与架构选择保留替换和回退余地 适用判断:外部技术、框架或策略存在不确定性时行动:隔离技术边界,避免让不可逆决定渗透全系统理由:未来变化难以预测,保留选择权能降低迁移风险 用途/任务族:不确定技术选择的替换余地 初评说明:隔离技术边界预计降低常规替换损失;接口存在不证明数据与副作用可真实回退。 |
| 玄高 | 4.6 技术负债 | 4.6 技术负债 — 技术负债是为短期速度牺牲结构质量形成的未来成本,需要被识别、记录和偿还 技术负债来源包括经验不足、期限压力、低可读性、过度专用或复杂设计以及不良团队文化。偿债宜采用小步重构并用测试保护;暂时无法处理的债务要被明确记录和管理。适用判断:为了期限采用临时方案或代码质量持续下降时行动:明确债务、尽快用小步且有测试的重构偿还理由:债务会产生“利息”,拖得越久修改成本越高 用途/任务族:临时方案债务治理 初评说明:显式记录并以有测试的小步偿还,预计减少隐性债务造成的反复返工。 |
| 玄高 | 6.6 语境 | 6.6 语境 — 语境要求所有原则和技术都结合目的、限制、历史和周围关系来判断 语境用于两类工作:给代码阅读者提供上下文,以及把问题放进更大的系统关系中思考。高手的优势在于知道模式“何时、为何”适用;规则脱离语境会失效。工作委托也应根据人员熟练度提供合适层级的目标与语境。书中以“着眼大局,着手小局”概括先整体构想、再小步实践。适用判断:规则之间冲突、方案取舍困难或代码缺乏可理解背景时行动:先获取整体语境,再从大局形成构想并小步实施理由:脱离语境的绝对规则容易把局部正确做成整体错误 用途/任务族:有冲突规则的情境取舍 初评说明:先整体语境再小步实施,预计减少脱离目的与约束套规则的错误。 |
| 玄高 | 7.1 布鲁克斯法则 | 7.1 布鲁克斯法则 — 布鲁克斯法则指出给已经延期的软件项目后期加人常会让项目更晚 后期增员新增沟通、任务依赖和培训成本,因此“人月”不能简单互换。推荐处理方式是重排时间表、明确功能优先级并分阶段发布。视觉图示展示人员增加导致沟通路径快速增长,已纳入视觉复核。适用判断:项目已落后且有人提议靠大量增员追赶时行动:重新制定时间表、调整优先级和分阶段交付,谨慎评估新增沟通与培训成本理由:任务依赖、沟通路径和新人培训会吃掉新增人力 用途/任务族:延期项目增员与范围决策 初评说明:识别培训、沟通和依赖成本并调整交付,预计较明显减少人月线性估算误判;不禁止一切增员。 |
| 玄高 | 7.5 80-10-10原则 | 7.5 80-10-10原则 — 80-10-10原则提醒工具都有适用域:大部分问题容易解决,边缘问题成本陡增,最后一部分可能不适合该工具 原则也可与80/20式热点思考结合:少数部分常决定大多数性能、缺陷或成本。适用判断:选择框架、平台或工具解决问题时行动:在采用前用真实难题做实验,确认边界和“最后10%”成本理由:工具能力并非线性覆盖全部需求,尾部问题可能主导总成本 用途/任务族:工具尾部适用性试验 初评说明:采用前用真实难题验证边界,预计较明显减少尾部不适配造成的沉没成本;不相信固定80/10/10比例。 |
| 玄高 | 7.7 第二系统综合征 | 7.7 第二系统综合征 — 第二系统综合征指出第二版常因过度自信和补偿心理塞入过多功能 限制功能膨胀的办法包括明确用户、核心目标和“说不”的边界;附加能力可考虑插件或扩展机制。适用判断:重写或开发第二代系统时行动:明确真正用户与核心目标,限制功能膨胀,必要时把附加能力做成扩展理由:“这次什么都做”会让系统失去简洁和可控性 用途/任务族:重写与第二代功能膨胀 初评说明:核心用户、目标和拒绝边界预计显著减少重写超范围;不按第几代推定失败。 |
| 玄高 | 7.9 给牦牛剃毛 | 7.9 给牦牛剃毛 — 给牦牛剃毛描述为解决原问题不断陷入前置问题的链式偏航,应及时回看最初目标 若前置问题必须继续处理,书中建议把问题像栈一样记录并逐项解决;复杂阅读/修改过程也应保留笔记。适用判断:处理任务时前置问题一层层增加并远离原目标时行动:停下来重述目标,评估替代路径;若必须继续则记录问题栈并逐个解决理由:无意识追逐前置问题会耗尽时间却没有推进真正目标 用途/任务族:多层前置问题的任务回正 初评说明:重述目标、评估替代路径并记录必要问题栈,预计较明显减少支线偏航和无效投入。 |
| 玄高 | 软件设计两原则 | 维护成本优先于实现成本;维护成本随复杂度增加。 使用:评价任何长期设计取舍时 用途/任务族:长期设计成本取舍 初评说明:维护成本而非仅实现成本进入判断,预计明显减少短期便捷导致的反复返工。 |
| 玄高 | API 承诺与兼容性 | 发布 API 等于做出交互承诺;破坏承诺会向生态转嫁复杂度。 使用:发布、版本化或淘汰公共 API 时 用途/任务族:公共API兼容与弃用 初评说明:把发布视作交互承诺预计减少向消费者转嫁变更成本;不永久冻结偶然缺陷。 |
| 玄高 | 严格性—简约—可用性取舍 | 更严格的输入输出约束通常让实现更简单,同时要控制对用户可用性的影响。 使用:设计输入校验、协议和公共接口时 用途/任务族:输入约束与可用性权衡 初评说明:同时考虑实现简约与用户负担,预计明显减少宽严两端的常规误用。 |
| 玄高 | 调试四步法 | 熟悉正常行为、承认未知、追踪证据、修复根因。 使用:定位任何可观察软件异常时 用途/任务族:可观察异常排查 初评说明:从正常行为到证据再到根因,预计较明显减少猜测式修复;卡片缺具体区分实验,不借旧方法补齐。 |
| 玄高 | 产出物效率模型 | 开发效率围绕实际产出及其对用户的帮助衡量。 使用:设计个人、团队或效能指标时 用途/任务族:开发效能指标选择 初评说明:围绕产出与用户帮助预计减少用活动量替代结果的优化误判。 |
| 玄高 | 特性服务型重构 | 重构与业务功能协同推进,让代码改善速度高于退化速度。 使用:在遗留代码上持续交付时 用途/任务族:功能交付中的持续重构 初评说明:改善与业务功能同步预计减少遗留系统持续退化和独立重写返工。 |
| 玄高 | 隐私帮助—伤害权衡 | 从空间隐私/信息隐私出发,以真实帮助、伤害、风险与控制权决定信息策略。 使用:设计数据收集、共享和默认设置时 用途/任务族:数据收集与共享的隐私取舍 初评说明:以帮助、伤害与控制权判断预计减少常规隐私设计的单指标误判;不替代同意与权限要求。 |
| 玄高 | 简约安全模型 | 减少入口数量、简化入口能力、限制单次攻破的损失。 使用:设计安全边界与攻击面时 用途/任务族:攻击面与损失边界设计 初评说明:减少入口并限制单次损失预计改善同族安全边界设计;不得借简约删除鉴权、审计或恢复。 |
| 玄高 | ODA 观察循环 | 观察→决策→行动反复迭代,开发效率受反馈速度、完整性和准确性影响。 使用:设计开发、测试、发布和学习反馈回路时 用途/任务族:开发与学习反馈回路 初评说明:观察决策行动及反馈准确性预计改善同族迭代判断,不声称一般收敛。 |
| 玄高 | 设计拒绝门 | 明确拒绝增加复杂度、缺乏用户价值或无法解决已知问题的方案。 使用:评审功能提案与架构方案时 用途/任务族:复杂度与价值提案筛选 初评说明:明确拒绝无价值方案预计明显减少无效范围与维护负担,但需保留必要约束。 |
| 玄高 | 杰出软件三条件 | 按用户要求执行、符合用户合理预期、让用户容易表达意图。 使用:评价产品设计和用户体验时 用途/任务族:产品行为与意图表达验收 初评说明:用户要求、合理预期及易表达意图共同检查,预计减少常规可用性遗漏。 |
| 玄高 | 规则情境化 | 编程规则只适合特定情境,必须由真实运行与问题上下文校准。 适用:规则与实际现象冲突时 用途/任务族:规则适用域校准 初评说明:真实运行与上下文校准预计明显减少机械套规则的错误;不把运行一次当有效校准。 |
| 玄高 | 抽象模型不完备 | 任何系统图、数据表或意识形态模型都只能覆盖复杂现实的一部分。 适用:解释模型、指标和架构图时 用途/任务族:模型结论适用范围审查 初评说明:有限覆盖提醒预计减少图表、指标或架构模型的过度推广,适用明确对象和映射的审查。 |
| 玄高 | 多快好省四维性能观 | EPUB第13–18节 · 01-程序员为什么要关心代码性能? 核心思想:“性能好”需要同时看吞吐率、响应时间/延迟、可扩展性和资源使用;不同资历的工程师都要理解自己代码的性能后果。 关键框架 多快好省四维性能观 行动要点 不能只以“功能正确”判断代码质量。性能问题可能从单段代码扩散到整条服务链。越高级的工程角色越需要考虑全局性能与成本。 四维性能观 材料用多维指标界定性能,而不是只看单个速度数字。 “多”对应吞吐/处理量。“快”对应响应时间或延迟。“好”包含稳定性和可扩展性。“省”强调资源与成本效率。 不同角色的性能责任 从入门程序员到架构师,性能责任的范围逐级扩大。 初级开发需要避免明显低效实现。资深工程师要理解模块交互和系统瓶颈。架构师需要把服务性能与公司资源成本联系起来。 用途/任务族:多维性能目标选择 初评说明:吞吐、延迟、稳定扩展与资源共同看预计明显减少单一速度指标误判;正确性仍先行。 |
| 玄高 | 帕累托法则 | 帕累托法则 性能工作应把主要精力放在影响最大的热点上。 80/20是近似经验,不是固定比例。热点需要通过测量确认。 用途/任务族:测量确认热点后的投入分配 初评说明:主要热点优先且不迷信80/20,预计明显减少无效性能投入。 |
| 玄高 | 性能统计工具箱 | 统计描述 材料强调对性能样本同时观察位置、尾部和离散程度。 平均数反映整体中心但可能掩盖长尾。P95/P99刻画高分位体验。置信区间表达估计的不确定范围。 用途/任务族:中心与长尾性能描述 初评说明:同时看尾部、离散与估计不确定性预计明显减少平均值掩盖问题;统计模型条件另核。 |
| 玄高 | 性能数据分析五类目标 | EPUB第47–54节 · 06-性能数据的分析:如何从大量数据中看出想要的信号? 核心思想:性能数据分析的目的包括判定正常/异常、比较回归、寻找相关与根因、预测趋势;必须防止把相关性当因果以及被脏数据和指标语义误导。 关键框架 性能数据分析五类目标数据分析陷阱清单 行动要点 先明确分析问题,再选统计/机器学习方法。时间趋势有时比绝对值更有诊断价值。Linux等系统指标必须理解内部语义后再解释。 单序列与多序列分析 不同问题对应不同方法。 单序列可看均值、高分位、趋势和异常。多序列可用相关/协方差研究同步变化。线性回归、分类、聚类、决策树可用于不同预测或分组任务。 用途/任务族:性能分析问题与工具匹配 初评说明:先明确异常、回归、根因和预测目标预计减少分析方法错用及指标误读。 |
| 玄高 | 性能测试六维分类 | 六维分类 先从六个维度定义测试,能避免“同名不同测”。 目的:速度、容量、稳定性、瓶颈等。环境:生产或实验。负载:真实、合成、稳定、尖峰等。对象与数据决定测试边界。黑盒/白盒决定可见内部程度。 用途/任务族:性能测试对象与场景合同 初评说明:先定义多维测试边界预计明显减少同名测试的不可比;维度数不决定等级。 |
| 玄高 | 性能测试工具五模块 | EPUB第85–95节 · 11-性能测试的工具:七大测试场景如何选择高质量的测试工具? 核心思想:高质量性能测试工具通常包含负载生成、数据采集、分析展示、资源监控和集中控制,并应按Web、系统、数据库、存储、网络、移动等场景选择。 关键框架 性能测试工具五模块 行动要点 工具选择先看测试目标和协议支持,再看可扩展性与数据能力。JMeter/LoadRunner、fio、Iperf/Netperf、Appium等服务于不同层。任何工具都不能替代正确的测试设计。 工具五模块 完整工具链需要贯穿“施压—采集—观察—分析—控制”。 负载生成器负责构造请求。数据与资源监控负责记录结果与SUT状态。分析展示与控制中心负责汇总和自动化。 按场景选工具 材料分别讨论Web、系统、数据库、文件I/O、网络和移动测试工具。 协议、采样精度和并发模型必须匹配测试对象。工具本身也要做容量评估,避免成为瓶颈。 用途/任务族:性能工具链适配 初评说明:施压、采集、资源监控与控制的配合预计减少工具与协议错配;工具齐全不等于测试有效。 |
| 玄高 | 外部性能三指标 | 外部三指标 用户性能和系统能力可由三组外部指标共同观察。 延迟描述请求等待。吞吐率描述单位时间处理量。资源使用率描述容量消耗和余量。 用途/任务族:服务性能观察边界 初评说明:延迟、吞吐和资源共同观察预计明显减少单指标容量误判,但均值不能代替尾延迟合同。 |
| 玄高 | CPU资源诊断模型 | EPUB第115–121节 · 15-CPU篇:如何让CPU的运行不受阻碍? 核心思想:CPU分析要同时理解多插槽NUMA、多核缓存、超线程、频率,以及利用率、IPC/CPI、上下文切换等指标;CPU利用率与服务吞吐并非简单线性关系。 关键框架 CPU资源诊断模型 行动要点 NUMA让本地和远端内存访问代价不同。IPC低可能意味着流水线停顿、缓存未命中等效率问题。top、mpstat、pidstat、vmstat、perf可从不同层观察CPU。 CPU结构 硬件拓扑决定软件可获得的实际计算能力。 多插槽带来NUMA。多核共享/私有缓存影响数据局部性。SMT/超线程共享部分核心资源。 CPU指标 仅看总体利用率容易漏掉结构性瓶颈。 关注频率与Turbo。关注IPC/CPI和MIPS。关注中断、上下文切换、调度和核间不均衡。 用途/任务族:CPU结构性瓶颈诊断 初评说明:拓扑、IPC、频率与调度共同观察预计明显减少只看总CPU利用率的错判。 |
| 玄高 | 内存层级与局部性模型 | EPUB第122–130节 · 16-内存篇:如何减少延迟提升内存分配效率? 核心思想:内存性能由缓存命中、带宽、延迟、分配/碎片和NUMA共同决定;应提高局部性、复用内存并让访问尽量落在本地NUMA节点。 关键框架 内存层级与局部性模型NUMA亲和策略 行动要点 小幅缓存未命中也会显著拉高平均访问时间。内存池通过预分配与复用减少分配成本和碎片。内存带宽接近饱和时,延迟会陡增。 缓存命中 多级缓存的巨大延迟差使命中率成为核心指标。 课程示例:L1为3周期、L2为12周期时,90% L1命中会把平均时间拉到3.9周期。缓存一致性协议会引入额外通信和失效。 NUMA与分配 内存位置和分配方式都会影响性能。 让共享数据的线程尽量位于同一NUMA节点。必要时做CPU/内存绑定。通过内存池减少频繁分配和碎片。 用途/任务族:同族内存访问性能分析 初评说明:缓存、带宽、分配与NUMA关系预计减少内存平均量误判;示例周期不当当前通用参数。 |
| 玄高 | 存储三指标 | EPUB第131–139节 · 17-存储篇:如何根据性能优缺点选择最合适的存储系统? 核心思想:存储系统用IOPS、访问延迟和吞吐衡量;HDD受机械寻道与旋转限制,SSD受页/块、GC、写放大和磨损均衡机制影响,软件设计应针对介质特征。 关键框架 存储三指标SSD内部页块模型 行动要点 吞吐约等于IOPS×I/O大小。适度队列深度可通过重排/合并提高吞吐,但会影响延迟。SSD不能简单当作更快的HDD。 用途/任务族:存储负载与介质选择 初评说明:IOPS、延迟、吞吐及I/O大小共同看预计明显减少错误介质和队列深度判断。 |
| 玄高 | LLC未命中优化三策 | EPUB第163–168节 · 21-CPU案例:如何提高LLC(最后一级缓存)的命中率? 核心思想:LLC不命中可通过紧凑数据结构、软件预取和消除伪共享降低,但三种方法都必须以硬件计数器证据和具体访问模式为前提。 关键框架 LLC未命中优化三策 行动要点 perf的LLC-loads/LLC-load-misses等PMU事件可量化问题。软件预取只在真正存在内存停顿时值得使用。伪共享来自不同线程修改同一缓存行内不同变量。 三种优化 围绕数据局部性和缓存行行为采取三策。 压紧数据结构,提高同一缓存行有效数据比例。提前预取即将访问的数据。通过对齐/填充把独立热写变量分到不同缓存行。 预取边界 软件预取有明显副作用。 预取指令本身消耗CPU。过早/过多预取会驱逐有用缓存。长循环可尝试提前2–3次迭代;短循环可在进入前预取。 用途/任务族:有PMU证据的LLC优化 初评说明:访问模式对应紧凑布局、预取或伪共享隔离,预计在同族热点有较明显增益;不外推预取迭代参数。 |
| 玄高 | iTLB优化流水线 | EPUB第169–175节 · 22-系统案例:如何提高iTLB(指令地址映射)的命中率? 核心思想:iTLB优化把“生产Profiling→热代码布局/链接→大页面加载”连成流水线,目标是减少指令地址转换未命中。 关键框架 iTLB优化流水线 行动要点 iTLB miss代价可比命中高10–100倍。FDO/HFSort等可把热文本聚集,提高iTLB覆盖率。2MB/1GB大页面用更少TLB项覆盖更多代码。 热代码布局 生产画像能识别真正的热指令区。 perf与LBR等工具提供采样。链接阶段按热度重排文本,减少工作集跨页。 大页面部署 热文本与大页面结合可进一步降低iTLB miss。 THP自动性强但不保证目标映射。显式预留大页面控制更强但运维成本更高。材料生产案例报告iTLB miss约减半、CPU下降5–10%、吞吐提高约15%;这是特定环境结果。 用途/任务族:有指令画像的iTLB优化 初评说明:画像、热布局和页映射预计在相近热代码任务中有明显收益;案例数字未独立复现,不预计普遍迁移。 |
| 玄高 | SSD写放大与Trim调优 | EPUB第176–182节 · 23-存储案例:如何降低SSD峰值延迟? 核心思想:降低SSD写放大需要保留空闲空间并合理使用Trim;持续discard可能因FTL更新阻塞前台I/O,必须控制Trim粒度或改为计划式fstrim。 关键框架 SSD写放大与Trim调优 行动要点 写放大系数=物理写入量/逻辑写入量。材料建议避免SSD过满,示例目标使用率约80–85%。Trim本身可能制造尾延迟,需要用高分位延迟验证。 降低写放大 给SSD留出空闲块能降低GC搬运和写放大。 空间越满,释放空闲块需要搬动的数据越多。Trim让设备知道哪些逻辑块已无效。 控制Trim峰值 Trim不应只以“释放空间”评价。 在线discard可能阻塞读写。可调小discard_max_bytes降低单次影响。也可按计划/事件运行fstrim,并监测尾延迟。 用途/任务族:SSD尾延迟与Trim策略 初评说明:空闲空间和Trim粒度一起复测预计减少同族GC峰值问题;80至85%不是通用阈值。 |
| 玄高 | RedLiner生产容量测试 | EPUB第191–196节 · 25-如何在生产环境中进行真实的容量测试? 核心思想:RedLiner用真实生产流量逐步加压单个SUT,并用实时客户性能阈值闭环调节重定向比例,以非侵入方式测出单位服务容量。 关键框架 RedLiner生产容量测试五条线上容量测试原则 行动要点 线上容量测试比合成流量更接近真实业务分布。必须实时监测用户性能,一旦越过阈值立即减压/停止。步距和每步稳定时间共同决定测试速度与安全性。 五条设计原则 线上测试必须兼顾准确性和客户保护。 使用实时流量。实时监测和反馈。规则和阈值可定制。自动终止并复位。支持日历/事件触发调度。 四组件架构 RedLiner由LiveRedliner、TrafficRedirector、PerfCollector、PerfAnalyzer协同。 控制器负责调度。流量重定向器改变SUT负载。采集器收集系统/服务指标并可通过Kafka传输。分析器根据规则决定继续加压还是减压。 闭环步进 测试从历史容量附近开始,按步距迭代。 每个重定向比例示例固定3分钟以稳定数据。达到延迟/错误率阈值后停止加压。课程示例中高负载触及40ms客户等待阈值后逐步降载。 用途/任务族:经授权的真实流量容量测量 初评说明:步进加压、客户阈值反馈和停止复位预计改善同族容量估计;不视为无侵入或安全已证。 |
| 玄高 | 五条线上容量测试原则 | 五条设计原则 线上测试必须兼顾准确性和客户保护。 使用实时流量。实时监测和反馈。规则和阈值可定制。自动终止并复位。支持日历/事件触发调度。 用途/任务族:线上容量测量客户保护 初评说明:实时反馈、可定制阈值和终止复位预计减少同族测量损害;不与D039重复计算效果证据。 |
| 玄高 | 数据库复制三变量模型 | EPUB第197–203节 · 26-怎么规划和控制数据库的复制延迟大小? 核心思想:数据库复制可建模为无限缓冲FIFO排队系统;用ARIMA预测周流量、季节指数下钻到小时,再用数值计算和二分搜索求复制延迟、容量、增长空间和SLA。 关键框架 数据库复制三变量模型两步时间序列预测容量二分搜索 行动要点 三变量是输入流量、复制处理能力和复制延迟,给定两者可求第三者。长期预测先聚合到周,减少ARIMA数据点,再用168小时季节指数分配。预测误差必须以业务后果和资源成本决定安全裕量。 三变量模型 容量规划围绕流量、处理能力、延迟相互求解。 可预测复制延迟。可反推需要的复制容量。可求当前容量支持的最大流量。可据此讨论延迟SLA。 用途/任务族:复制流量容量延迟的模型判断 初评说明:在FIFO与缓冲近似成立时预计显著改善同族容量推算;真实有限缓冲和非平稳误差须另核。 |
| 玄高 | Java多任务干扰三层机制 | EPUB第204–210节 · 27-多任务环境中的Java性能问题,怎样才能不让程序互相干扰? 核心思想:多Java应用共存时,JVM堆分配、Linux直接回收/交换和THP拆分-聚合会互相放大;通过堆预触碰、控制交换和动态THP策略可降低干扰。 关键框架 Java多任务干扰三层机制三元素干扰治理 行动要点 -Xms/-Xmx并不等于启动时已经拿到全部物理页。内存严重不足会触发前台直接回收,冻结申请内存的应用。THP在内存压力下反复拆分与聚合可能造成大量CPU开销。 启动干扰 第二个大JVM逐步分配物理页时可能触发直接回收。 kswapd先做后台回收。压力继续增大后进入同步直接回收。课程实验峰值每秒扫描约48K页(约200MB),GC暂停显著升高。 运行干扰 稳定JVM的堆页被换出后,GC会因page-in而变慢。 材料实验出现约55秒超大暂停。THP拆分/聚合进一步烧CPU并放大问题。 用途/任务族:同平台Java资源干扰解释 初评说明:物理页、回收与THP交互预计减少同族暂停误归因;旧实验量不直接外推版本。 |
| 玄高 | SSD友好七原则 | EPUB第217–221节 · 29-如何彻底发挥SSD的潜力? 核心思想:SSD友好软件要从数据结构、I/O处理和线程并发三方面重新设计,利用SSD随机访问和内部并行特性,同时降低GC、写放大和磨损。 关键框架 SSD友好七原则 行动要点 SSD友好设计可同时提升应用性能、I/O效率和寿命。小I/O宜多线程利用内部并行,大I/O线程过多反而会竞争。空间使用率越高,GC搬移有效数据越多。 七原则:数据结构 三条数据结构原则改变传统HDD假设。 避免为HDD设计的就地更新执念。分离热/冷数据,减少无效页访问。采用紧凑数据结构,减少4KB页级读写和写放大。 七原则:I/O 两条I/O原则减少前台GC。 避免长时间繁重持续写。避免SSD存储过满;80%使用率释放1块约需压缩5块,95%时约20块。 七原则:线程 线程数要匹配I/O大小和SSD内部并行度。 10KB小I/O实验中多线程显著提升吞吐。10MB大I/O实验中2–4线程足够,8线程反而下降。课程给出的“小I/O”启发阈值≈页大小×内部并行度。 用途/任务族:目标SSD负载的软件适配 初评说明:结构、写入与并发共同权衡预计减少同族介质错配;案例线程数和使用率不能照抄。 |
| 玄高 | 服务器五阶段验证路线 | 五阶段路线 服务器硬件在量产前逐级提高真实性和规模。 Pre-EVT做模块基准。EVT验证完整设计。DVT在数据中心做负载/规格验证。PVT验证真实生产流程。MP进入批量生产。 用途/任务族:硬件验证真实性递进 初评说明:逐级提升规模和真实性预计减少常规量产前遗漏;阶段名称不等于已经完成验证。 |
| 玄高 | 容量规划六挑战 | 六大挑战 材料总结六类容量规划约束。 容量供应不仅是钱,还受建设/供应周期限制。地域容量不能任意互换。服务器类型与代际性能会改变单位容量。季节峰值需要提前部署。灾备要求给剩余容量留负载空间。上下游服务负载会互相传导。 用途/任务族:容量规划的供给与地域约束 初评说明:周期、异质性、峰值、灾备和上下游检查预计明显减少常规只按钱与总量的误判。 |
| 玄高 | 需求控制五模块 | 五模块框架 需求控制同时管理“新增需求”和“存量使用”。 入口控制:审核请求。分布式产品组治理。宏观增长配额。微观实时监测。持续提升用户资源效率。 用途/任务族:新增与存量资源需求控制 初评说明:入口、配额、监测和效率联动预计明显改善同族资源治理,不能以配额替代正确性与授权。 |
| 玄高 | 指标—成本映射可见性与更新 | 成本可见性 让内部客户看到“指标→成本”的映射有助于优先级决策。 例如把TB、QPS等业务/技术指标映射到服务总成本。映射需要随服务增长、硬件和效率变化定期更新。 用途/任务族:资源指标与成本决策对齐 初评说明:透明且更新的成本映射预计明显减少用户选择与公司成本脱节;不抵消正确性、隐私和保留要求。 |
| 玄高 | 深模块 | 用简单接口提供强大功能,把实现复杂性隐藏在模块内部。 适用:设计类、服务或子系统边界时 用途/任务族:类与服务边界设计 初评说明:预计显著降低调用者认知负担;不是按接口行数评优。 |
| 玄高 | 适度通用的模块 | 从当前需求提炼更稳定的通用机制,同时把专用策略留在合适层级。 适用:多个相关用例共享同一机制时 用途/任务族:相关用例的机制与策略分离 初评说明:预计兼顾复用与专用策略,减少错误抽象。 |
| 玄高 | 下沉复杂性 | 把不可避免且与模块职责相关的复杂性放入模块内部,以换取更简单的外部接口。 适用:复杂性必须落在接口或实现一侧时 用途/任务族:模块复杂性归属取舍 初评说明:预计减少重复调用方逻辑和接口负担。 |
| 玄高 | 基于复杂性的拆分/组合 | 按信息共享、接口深度和依赖性决定功能应放一起还是分开。 适用:确定类、方法或服务边界时 用途/任务族:类、方法与服务拆分评审 初评说明:预计比按大小机械拆分更稳定保留知识局部性。 |
| 玄高 | 通过定义来规避错误 | 重定义语义以减少错误状态,再用屏蔽和聚合减少异常处理点。 适用:接口存在大量特殊情况或异常时 用途/任务族:接口特殊情况与异常语义设计 初评说明:预计能减少错误状态和散落异常分支。 |
| 玄高 | 设计两次 | 为重要设计决策构思多个差异明显的备选方案并比较。 适用:重大接口、实现或系统分解决策前 用途/任务族:重要接口及系统方案选择 初评说明:预计暴露第一方案遗漏并改善取舍;不保证全局最优。 |
| 玄高 | 重要性最小化与强调 | 减少必须被关注的概念,并让真正重要的约束在接口、名称和结构中突出。 适用:确定抽象重点、配置或关键路径时 用途/任务族:关键接口与配置重点表达 初评说明:预计提升AI及人工审查对关键合同的可见性。 |
| 玄高 | 大模型安全十九项控制 | 从隐私、隔离、备份、审计、鲁棒性到身份、最小权限、供应链、响应计划构成防线。 适用:理解、评估或应用这一结构时 用途/任务族:带模型与工具的软件威胁审查 初评说明:预计减少单靠提示词保护造成的明显防护空缺。 |
| 玄高 | 提示工程实践清单 | 任务分析、领域知识、上下文、清晰指令、格式约束、版本控制与迭代共同构成工程化实践。 适用:理解、评估或应用这一结构时 用途/任务族:可复现开发提示维护 初评说明:预计减少一次性提示与不可追踪修改。 |
| 玄高 | 语义完整切块 | 文本或代码分块要适应 token 限制,同时尽量保持语义与函数完整。 适用:理解、评估或应用这一结构时 用途/任务族:代码及文档检索分块 初评说明:预计减少断裂代码片段导致的生成误解。 |
| 玄高 | 智能体权限边界 | 具备工具能力的 Agent 应遵循最小权限、审批、高风险操作确认和审计。 适用:理解、评估或应用这一结构时 用途/任务族:工程代理高风险工具授权 初评说明:预计减少能力存在即被当作授权的错误。 |
| 玄高 | 用户故事 + GWT | 用户故事表达角色—能力—价值,Given-When-Then 把验收标准变成可执行条件。 适用:理解、评估或应用这一结构时 用途/任务族:需求到可执行验收的转换 初评说明:预计降低AI实现对含混需求的自我解释。 |
| 玄高 | 组件库约束生成 | 把设计系统、组件规范和已有代码作为上下文,提高生成 UI 的一致性与可维护性。 适用:理解、评估或应用这一结构时 用途/任务族:AI UI代码与设计系统对齐 初评说明:预计降低风格漂移和重复组件维护。 |
| 玄高 | 大模型时代的 UTDD | 围绕单元行为先生成/完善测试,再生成或修正实现,通过执行反馈迭代。 适用:理解、评估或应用这一结构时 用途/任务族:单元行为测试先行的AI实现迭代 初评说明:预计减少只凭生成代码外观判完成。 |
| 玄高 | 大模型时代的 ATDD | 从业务验收标准出发生成端到端验收测试与实现,把业务语言连接到代码。 适用:理解、评估或应用这一结构时 用途/任务族:跨组件业务验收实现 初评说明:预计提高需求与实际业务路径的一致性。 |
| 玄高 | 运维自愈边界 | 自动生成/执行修复需要权限控制、风险分级与人工确认。 适用:理解、评估或应用这一结构时 用途/任务族:自动运维修复权限控制 初评说明:预计减少自动诊断直接变成不可逆修复的风险。 |
| 玄高 | 生命周期阶段评估问题集 | 框架 05 每一阶段用容量、延迟、质量、模式、成本、SLA 和下游用途等问题约束设计。 适用设计新管道或排查生命周期瓶颈时首次单元u02 用途/任务族:AI生成数据管道的分阶段设计审查 初评说明:预计减少只看代码而漏掉上下游服务合同。 |
| 玄高 | 源系统评估框架 | 框架 13 理解源数据生成方式、写入模式、模式变化、时间语义、性能影响、质量和数据契约。 适用接入任何新源系统前首次单元u05 用途/任务族:外部源数据接入前合同审查 初评说明:预计提前暴露源模式漂移和责任缺口。 |
| 玄高 | 事件与时间语义 | 框架 14 区分消息、流、事件时间、摄取时间和处理时间,并把顺序与投递语义视作显式约束。 适用设计实时、CDC 或 IoT 数据流时首次单元u05 用途/任务族:日志、CDC与事件管道时间合同 初评说明:预计减少迟到数据和处理时刻混用。 |
| 玄高 | 流式摄取可靠性框架 | 框架 20 模式演进、迟到、乱序/重复、回放、TTL、消息大小和死信队列共同决定流式可靠性。 适用建设可恢复的事件摄取平台时首次单元u07 用途/任务族:流式摄取可靠性风险审查 初评说明:预计提升异常输入和失败恢复的审查覆盖。 |
| 玄高 | 查询生命周期与优化闭环 | 框架 21 编译解析、优化器、执行计划、资源指标和查询重构构成性能优化闭环。 适用分析慢查询或数据库成本时首次单元u08 用途/任务族:AI生成查询的性能诊断 初评说明:预计比凭SQL表面写法更准确定位瓶颈。 |
| 玄高 | 语义层与指标层 | 框架 32 把业务定义与指标逻辑集中维护并复用,降低 ETL 与报表逻辑重复和漂移。 适用组织需要统一指标定义和查询逻辑时首次单元u09 用途/任务族:报表与评估指标语义单点维护 初评说明:预计减少多份SQL、报表和AI评估口径漂移。 |
| 玄高 | 概念完整性 | 系统应呈现统一、连贯、可预测的概念模型。 使用场景 · 评审体系结构、接口和功能一致性时 用途/任务族:多轮AI生成的系统概念一致性 初评说明:预计减少局部实现彼此冲突的接口和职责。 |
| 玄高 | 规格传播与解释闭环 | 权威规格、多种表达、持续问答和修订记录共同维持一致理解。 使用场景 · 体系结构要被多个实现团队执行时 用途/任务族:规格在开发与审查间传播 初评说明:预计减少多轮会话使用过时需求造成的返工。 |
| 玄高 | 独立产品测试 | 由独立测试组织依据规格检验产品,提供技术监督。 使用场景 · 需要降低开发团队自证偏差时 用途/任务族:降低实现者自证偏差的产品测试 初评说明:预计较好发现共同实现假设遗漏;组织独立不保证oracle独立。 |
| 玄高 | 规格外部审查 | 在编码前让外部视角审查规格的完整性与一致性。 使用场景 · 需要早发现定义缺陷时 用途/任务族:编码前的需求与规格缺陷审查 初评说明:预计减少把错误规格实现得很精确的浪费。 |
| 玄高 | 具体可度量的里程碑 | 里程碑必须是可客观判定、可清晰定义的事件。 使用场景 · 建立可控制的项目进度表时 用途/任务族:AI长任务进度与交付判定 初评说明:预计减少以写了、调用了或感觉完成当状态真相。 |
| 玄高 | 计划日期与当前估计分离 | 保留原计划,同时独立更新当前完成估计,以显示偏差而不改写历史。 使用场景 · 跟踪进度并需要早期预警时 用途/任务族:计划偏差与恢复估计跟踪 初评说明:预计阻止靠改日期抹去延期和副作用历史。 |
| 玄高 | 输入—执行—输出三层护栏 | 在请求进入、工具执行、结果返回三个位置布置专门防线。 适用:做 Agent 安全威胁建模时 用途/任务族:工程Agent输入到输出的防线布置 初评说明:预计减少只清洗输入却放任危险执行和输出的单点防护。 |
| 玄高 | Human in the Loop | 超过失败阈值或遇到高风险不可逆操作时升级人工。 适用:早期上线或高风险动作审批 用途/任务族:高风险或反复失败的人工升级 初评说明:预计减少无限自动重试与越权继续。 |
| 玄高 | 业务规则可执行化 | 把分类、阈值、金额、例外写到模型可直接执行的精度。 适用:Agent 涉及计费、退款、合规等业务规则时 用途/任务族:AI业务规则精度与例外表达 初评说明:预计减少金额、阈值和例外的自由解释。 |
| 玄高 | Skills 三层渐进式披露 | 元数据负责路由,SKILL.md 提供核心流程,子文档/脚本按需深入。 适用:领域能力很多且不适合全部常驻上下文时 用途/任务族:大量Skill的按需上下文装载 初评说明:预计减少常驻噪声和无关指令,同时保需用内容可达。 |
| 玄高 | Skill 路由条件设计 | description 要表达 Use when / Don’t use when,并加入反例约束误触发。 适用:编写或优化 Skill 元数据时 用途/任务族:Skill元数据的适用域表达 初评说明:预计减少相近能力的错误召回。 |
| 玄高 | Context Distillation | 把长轨迹中需反复归纳的隐式状态提前算成可直接检索的结构化结论。 适用:模型在计数、状态跟踪和规则归纳上反复消耗思考时 用途/任务族:长任务的可检索状态摘要 初评说明:预计减少反复重读长历史的统计和归纳误差。 |
| 玄高 | 五层生产压缩 | 工具结果预算→删除噪声→API 微压缩→归档式摘要→全量压缩逐级升级。 适用:设计生产级上下文生命周期时 用途/任务族:开发会话上下文增长的压缩治理 初评说明:预计避免过早全量摘要造成不必要丢失。 |
| 玄高 | 记忆整理三层 | 重要性筛选→相似记忆聚类→抽象泛化,并用版本化处理冲突。 适用:长期记忆规模持续增长时 用途/任务族:开发知识与长期记忆去重整理 初评说明:预计降低膨胀与互相矛盾记忆的调用负担。 |
| 玄高 | ACI 防呆设计 | 命名、参数、示例、边界和错误反馈都面向 Agent 可理解性设计。 适用:模型工具调用准确率低时 用途/任务族:模型可正确使用的工具接口设计 初评说明:预计减少参数误用和错误后继续假成功。 |
| 玄高 | 提议者—审核者 | 执行前审批或执行后验证由独立视角审查,避免模型过早完成或危险操作。 适用:高风险动作和需要 artifact 验证的任务 用途/任务族:危险提议与交付产物审查 初评说明:预计改善过早完成和危险提议识别。 |
| 玄高 | 幂等性与预检—确认 | 可幂等操作用唯一 key/先查后改安全重试;不可幂等操作分成预检和一次确认执行。 适用:异步任务超时、取消或重试可能产生重复副作用时 用途/任务族:超时与重试下重复副作用防护 初评说明:预计减少不确定完成状态下的重复写入。 |
| 玄高 | 异步任务生命周期 | 启动返回 task_id,随后可查询状态、取消、收取完成事件,把同步模型与长时世界解耦。 适用:设计长运行工具和可打断 Agent 时 用途/任务族:长运行开发工具的异步控制 初评说明:预计把模型调用周期与真实长任务状态分离。 |
| 玄高 | 离线—在线评估双轨 | 离线用可控样本检查修改,在线用真实用户与遥测验证价值。 适用时当改进 LLM 应用质量时 用途/任务族:提示及Agent产品改进的双环境验证 初评说明:预计减少只优化离线分数的局部改进。 |
| 玄高 | 黄金标准—功能测试—LLM 评估 | 按任务可验证性选择精确/部分匹配、功能执行或模型评审。 适用时当需要自动判定大量输出时 用途/任务族:AI输出的验证机制选择 初评说明:预计减少用弱评分替代可执行行为验证。 |
| 玄高 | 多通道滤波 | 通过彼此独立的通道交叉验证同一信息,削弱系统性干扰。 适用 单一路径可能有共同偏差时 用途/任务族:代码结论与外部信息的独立交叉核验 初评说明:预计改善单源错误识别;独立性必须真实核查。 |
| 玄高 | 通用五步衡量法 | 定义决策与不确定性 → 量化当前知识 → 计算信息价值 → 衡量高价值不确定性 → 决策并循环。 用途/任务族:架构与调试中的测量投入选择 初评说明:预计把测量成本集中到会改变实际选择的问题。 |
| 玄高 | 门槛导向抽样 | 围绕会改变决策的门槛设计样本量和停止条件,而非追求抽象的最大精度。 用途/任务族:开发验证采样与测量停止取舍 初评说明:预计减少不影响选择的额外精度开销。 |
| 玄高 | 手段—目的分析 | 用途/任务族:可度量目标差距的长任务子目标选择;机制:按影响与可达性找差距,建立可满足动作前提的子目标,再观察目标差距。;适用:当前状态和目标状态都能部分描述,且差异可比较。;不适用:目标不可观察或差异没有稳定度量。;前提:已定义当前状态、目标和至少一个差异指标。;边界:差距度量必须对应真实目标;不把差距单调缩小写成一般收敛保证。 |
| 玄高 | 构造性见证 | 用途/任务族:工程可行性与具体交付见证;机制:把可行性主张落实为受约束的最小候选,再交给检查者验证。;适用:主张可以由样例、原型、证明对象或测试输入见证。;不适用:当前只允许存在性推断且没有可构造对象。;前提:目标、约束和最小验收标准已定义。;边界:有效的非构造数学存在证明不因此失效;这里只在合同需要具体见证时使用。 |
| 玄高 | 元认知监控 | 用途/任务族:有限预算的多轮求解与停止选择;机制:在检查点比较进展、剩余未知与成本,按停止规则控制路线。;适用:任务包含多轮策略、有限预算或不确定结果。;不适用:单次确定性查询且无需选择路径。;前提:存在可观察进展指标、预算和策略切换规则。;边界:监控指标与停止阈值未校准时不能假定控制有效。 |
| 玄高 | 二分调试 | 用途/任务族:单调、可复现的有序回归区间定位;机制:利用有序、可靠且符合单调要求的故障判定缩小候选区间。;适用:候选空间有序且存在可靠通过/失败判定。;不适用:故障非单调、flaky 或各候选无法独立复现。;前提:候选空间有序且存在可靠通过/失败判定。;边界:不得仅因有序就推断单调;也不据此执行Git回退或破坏性操作。 |
| 玄高 | 差分测试 | 用途/任务族:重构与替换的行为保持检查;机制:固定输入、版本与容忍规则,比对输出、错误和副作用。;适用:存在参考实现、旧版本或可接受的多实现比较。;不适用:两侧语义不同且没有可比输出契约。;前提:比较对象、输入集合和等价/容忍规则已声明。;边界:规范化仅按合同比较,不删除决定性差异。 |
| 玄高 | 依赖图 | 用途/任务族:多组件变更的依赖建模与下游可达集分析;机制:从边来源建立版本化有向图,求变更下游与验证边界。;适用:系统由多个有依赖关系的对象组成。;不适用:对象彼此独立且无共享状态。;前提:节点和依赖边可以从源码、契约或记录中提取。;边界:没有边不证明没有依赖;语义依赖图不等于锁等待图。 |
| 玄高 | 接口契约 | 用途/任务族:组件接口合同制定与边界检验;机制:明确组件交互承诺,并用正常、边界和错误输入检验。;适用:多个组件通过接口交换数据或控制。;不适用:同一局部表达式且没有独立边界。;前提:接口边界和调用场景可识别。;边界:Schema相同不证明语义兼容;源文适配建议不成为自动增设兼容壳的要求。 |
| 玄高 | 影响分析 | 用途/任务族:跨模块变更的影响与验证范围选择;机制:以具体变更为起点定位受影响面,再安排验证。;适用:变更触及公共接口、共享状态或多模块依赖。;不适用:依赖图完全未知且没有可观察调用或数据流证据。;前提:变更触及公共接口、共享状态或多模块依赖。;边界:初评是该源条目的意见,不表示应创建第二个相近功法身份。 |
| 玄高 | 架构权衡 | 用途/任务族:满足硬约束的多候选架构比较;机制:在满足底线的候选架构间比较延迟、成本与可靠性等冲突属性。;适用:存在两个以上可行架构且质量属性冲突。;不适用:候选不满足基本正确性或安全底线。;前提:存在两个以上可行架构且质量属性冲突。;边界:多指标不能暗中平均;本条不提供普遍最佳架构。 |
| 玄高 | 增量开发 | 用途/任务族:可切片系统变更的集成风险控制;机制:缩小一次变更范围,让每个切片有运行、验证与回滚依据。;适用:变更可被拆成独立验证的小切片。;不适用:拆分会留下不可运行中间态或破坏不可分割迁移。;前提:变更可被拆成独立验证的小切片。;边界:原文实现→测试只是保存的源顺序,不覆盖本项目测试先行要求;切片小不等于可以删关键验证。 |
| 玄高 | 来源批判 | 用途/任务族:外部资料支持具体工程或评估主张的可信范围审查;机制:将具体主张绑定原始来源、方法与适用域,再判断支持力度。;适用:来源质量、版本或适用范围会改变结论。;不适用:事实来自可验证的稳定机器接口且无需解释。;前提:来源可定位且存在待支持的具体主张。;边界:本轮仅核对包内引用键存在,未核验外部原典;稳定机器接口也不是无条件可信。 |
| 玄高 | 失败预演 | 用途/任务族:上线与迁移前的失败机制预演及验证规划;机制:从冻结方案的失败判据倒推可检验路径,留下证据请求与开放风险。;适用:已有方案、可观察失败判据、执行时间范围和有限风险验证预算。;不适用:问题仍没有方案或无法定义何为失败。;需要调查已发生事故的真实原因,此时应使用事故复盘和证据诊断。;前提:方案、依赖、成功/失败判据、时间窗口和风险预算可读。;所引用条目已装载;任务已定框时直接复用该定框结果,不重复追问。;预演产生假设与计划;模型、工具、故障注入和部署权限仍由宿主裁决。;边界:来源版本0.1.0、composition_only且evaluation_status=not-run;不调用其完整风险测试方法,不执行故障注入或部署。 |
| 玄中 | 组合描述模型 | 以对象、状态、快照、序列、过程、变换、同一、差异及关系解释变化中的连续性。 问题:如何追踪变化中的对象,并描述其连续性、差异与关系。 机制:对象与状态可被记录为快照和序列,变换使过程展开,同一/差异判定置于关系网络中。 |
| 玄中 | 思想实验 | 在现实执行之前,先构造一个简化但关键约束完整的假想场景,用来检验概念、规则、边界和后果。 问题:如何在现实执行前检验概念、规则、边界和后果,尤其在试错成本高时。 机制:设定最小场景→保留关键约束、去掉无关细节→推演正常/边界/极端路径→检查自洽性与反例。 条件:方案还没写代码,但要判断是否会崩。;现实试错成本高。;需要测试一个原则在极端情况下是否仍成立。 预期结果:最小假想场景及正常、边界、极端路径的推演。;自洽性判断及发现的反例。 |
| 玄中 | 逆向思维 | 从失败、反例、风险和终局倒推当前行动,先问“怎样一定会失败”,再反推避免失败的约束。 问题:如何从失败、反例、风险与最坏终局倒推出当前可检测、可阻断的约束。 机制:写出最坏结果→列出失败路径→识别提前检测/阻断环节→将阻断点固化为测试、CI、脚本、schema、清单或人工复核。 条件:做质量门禁。;做架构风险分析。;判断一个计划是否只是看起来完整。 预期结果:最坏结果及导致失败的路径清单。;提前检测或阻断点及对应测试、脚本、清单或复核。 |
| 玄中 | 现象学还原(悬置假设) | 原文用途:需求含糊、模型脑补、Bug难复现时,先把"解释/偏好"清零,回到可观察事实与可复现结构。 问题:需求含糊、模型脑补、Bug难复现时,先把"解释/偏好"清零,回到可观察事实与可复现结构。 机制:- 先写四件套:现象(实际) / 意图(期望) / 情境(环境约束) / 边界(明确不做) - 输出最小可复现体 MRE:最小输入 + 最小脚本 + 复现步骤 + 预期vs实际 - 把抽象词降维:快/稳/好用 → 指标&验收用例 条件:适用情境:需求含糊、模型脑补或Bug难复现。 预期结果:现象、意图、情境与边界记录。;最小可复现体(MRE)及预期/实际对照。;抽象需求对应的指标与验收用例。 |
| 玄中 | 正反合(三段迭代) | 原文用途:把一次性"写到完美"替换为可控三轮:快速可用 → 反例打脸 → 收敛为工程版本。 问题:把一次性"写到完美"替换为可控三轮:快速可用 → 反例打脸 → 收敛为工程版本。 机制:- **正**:只做 main path,让它跑通 - **反**:列失败模式(边界/空值/并发/权限/超时/性能),用测试与基准逼出反例 - **合**:重构接口/收敛依赖/补文档与回归,形成下一轮稳定起点 预期结果:可运行主路径的最小实现。;失败模式、反例测试与基准。;收敛接口、依赖、文档与回归后的稳定起点。 |
| 玄中 | 实用主义(以指标为准) | 原文用途:避免"优化方向漂移";每轮明确一个可量化目标。 问题:避免"优化方向漂移";每轮明确一个可量化目标。 机制:- 先定义成功指标(P95延迟/错误率/成本/内存/可维护性) - 每轮只优化一个指标;其余保持不退化(用基准/回归锁住) 条件:先定义成功指标、验收阈值与测量方法;每轮优化一个指标,其他指标以基准/回归约束不退化。 预期结果:成功指标、验收阈值与测量方法。;本轮指定指标的优化及其他指标不退化的回归约束。 |
| 玄中 | 诠释学(语境澄清) | 原文用途:需求文本有歧义,模型与人对同一词理解不同。 问题:需求文本有歧义,模型与人对同一词理解不同。 机制:- 先复述需求 + 歧义清单 + 默认选择(必须显式) - 默认选择写入 docstring/README/类型定义 条件:适用情境:需求文本有歧义,模型与人对同一词理解不同。 预期结果:需求复述、歧义清单及显式默认选择。;进入文档、类型或schema的默认策略。 |
| 玄中 | 反思平衡(Reflective equilibrium) | 原文用途:当用例、原则、约束冲突时收敛规范(尤其 API 语义、错误处理、兼容性)。 问题:当用例、原则、约束冲突时收敛规范(尤其 API 语义、错误处理、兼容性)。 机制:- 三层对齐:具体用例 ↔ 一般原则 ↔ 系统约束 - 用测试固化:回归用例(具体判断)+ 性质测试(原则) 条件:适用情境:用例、原则与约束冲突,需要收敛规范,尤其API语义、错误处理与兼容性。 预期结果:用例、原则、约束三集及冲突点。;调整方案与回归/性质测试。 |
| 玄中 | 贝叶斯认识论(Bayesian epistemology) | 原文用途:在多个方案/原因间理性分配注意力与试错预算。 问题:在多个方案/原因间理性分配注意力与试错预算。 机制:- 先验 → 实验 → 后验 → 下一步;把排查变成序列决策问题 条件:适用情境:需要在多个方案或原因间分配注意力与试错预算。 预期结果:先验排序、信息增益实验、后验与后续行动计划。 |
| 玄中 | 有限样本生成推断 | 有限样本生成推断是一种在受限假设空间中,由少量观测识别潜在生成规律的方法。 问题:有限信息在什么约束下能够支持对潜在无限结构的可靠推断。 机制:有限实例形成经验约束→构造候选假设→按归纳偏置、复杂度与解释能力选择→演绎新实例/预测→用新增证据判别、修正与更新。 条件:推断位于受限假设空间内,并依赖假设空间与选择准则。 限制:有限样本通常存在欠决定性,同一组事实可对应多种规律。 预期结果:候选生成规律及通过演绎得到的新实例或预测,随后由新增证据判别、修正和更新。 |
| 玄中 | AI-native | 判断哪些人的认知、决策与执行环节可转交AI,并动态配置人机控制权、回退与更新机制。 问题:哪些由人承担的认知、决策与执行可转交AI,以及人机行动权、控制权和责任如何配置。 机制:任务→能力抽象→权限委派→自主推演→结果检验→反馈更新 条件:依赖模型能力、结果可验证性、过程可审计性与责任边界。 限制:目标欠定义、异常难识别、责任不可转移或外推风险较高时,减少人工介入可能放大系统性错误。 预期结果:判断哪些原由人承担的认知、决策与执行环节可转交AI |
| 玄中 | 受约束的状态变换 | 在规则、资源与风险约束内搜索可行状态转移路径,以评价函数排序,并用经验反馈更新假设空间。 问题:哪些状态转移具有可能性、可控性与价值,有限认知主体如何发现并改进这些路径。 机制:状态表征→变换假设→组合搜索→模型选择→结果推演→经验检验→反馈更新 条件:状态、变换与目标具有足够可识别性。 限制:因果结构欠决定、约束不可观测或环境分布漂移时,外推与优化可能失效。 预期结果:约束集内的可行变换路径及经检验、反馈更新的选择。 |
| 玄中 | Projection 表示转换 | 在任务约束下选择更可观察、可计算的表示,保留任务相关信息和结构,并检验损失与转换成本。 问题:如何在可计算性、信息充分性与结构忠实度之间形成任务相关权衡。 机制:对象→任务结构→表示选择→推演→检验→更新 条件:对象有可提取结构;映射保存任务相关信息;表示运算与原关系可靠对应;信息损失与转换成本可控。 限制:否则可能结构失真、欠识别、过度压缩或外推失效。 预期结果:尽量保留任务相关结构的可观察、可计算表示。 |
| 玄中 | 状态分类工具 | 将系统演化表示为始态、暂态与终态,分析时间序列位置、状态转移条件和结果判定。 问题:如何用有限状态空间表征连续演化,形成可检验、可更新且具外推能力的转移模型。 机制:状态识别→类型归属→转移推演→结果判定→经验检验→分类更新 条件:状态边界可定义,转移规则相对稳定,观测信息足以支持状态识别。 限制:路径依赖、状态重叠、不可观测变量或开放系统扰动,可能导致欠识别与结果欠决定。 预期结果:刻画对象在时间序列中的结构位置及状态转移条件 |
| 玄中 | 自底向上系统构建 | 先建设确定的基础能力与组件,再将稳定组件组合为业务功能和完整系统。 问题:如何利用既有技术平台或确定性较高的基础能力支撑演化中的业务。 机制:建设基础能力/组件/工具模块→组件逐渐稳定→组合业务模块→形成完整系统。 条件:适合已有技术平台、组件库或框架体系的团队,也适合业务需求仍在演化的项目。 限制:只关注底层而缺乏整体目标,可能出现“组件很多,但系统拼不起来”,整体架构不统一。 预期结果:可复用基础组件、由组件组合的业务模块与完整系统。 |
| 玄中 | 控制论与科学方法论(仓内工程解释版) | 以信息、约束和反馈在可能性空间中选择行动,用模型预测与现实输出的差异修正模型。 问题:如何用可检验目标与反馈把一次性生成改成持续求解和工程验收。 机制:源文以“实践→理论→实践”描述负反馈:比较模型预测与现实输出修正模型,并限定相对孤立系统;AI编程用测试、日志、反馈、约束与迭代检验。 条件:获得足够信息并建立有限问题边界;源文认为认识反馈的收敛取决于可证伪性、反馈速度/幅度及结果的可靠判别。 限制:工具与方法有能力上限;正反馈可能形成增长、崩溃或恶性循环;复杂因果可能是概率关系、反馈环或网络。 预期结果:可检验目标状态、模型修订与可验收结果。 |
| 玄中 | 可推理性优先 | 强调人可推理的程序,以少变量、浅分支、明状态和平逻辑支持可理解性。 问题:程序怎样更容易被人脑推理。 机制:优先可预测性;变量少、分支浅、状态明、逻辑平。 预期结果:原文把可推理性与可维护性相等同;这是来源主张。 |
| 玄中 | 最小惊讶原则 | 代码行为应符合常识并减少惊讶,强调可预测性。 问题:怎样让代码行为不使使用者惊讶。 机制:以符合常识和可预测性作为取舍方向。 预期结果:原文将不惊讶与用户体验、可预测性与信任相联系。 |
| 玄中 | 文档记录设计理由 | 文档不是装饰,尤其应解释当时为什么这样选择。 问题:怎样减少他人对设计背景的猜测。 机制:文档解释选择理由,代码说明系统当前怎样运行,二者承担不同说明功能。 预期结果:让别人少猜,解释当时为什么做出选择。 |
| 玄中 | 输入输出与状态变换分离 | 区分消费端、生产端、状态和变换,独立管理输入处理输出环节。 问题:系统行为怎样按输入、输出、状态和处理逻辑划分。 机制:消费端接收外部数据,生产端生成结果,状态存储系统信息,变换处理状态;输入、处理、输出独立管理。 |
| 玄中 | DRY 逻辑复用准则 | 用函数、类、模块复用逻辑,而不是复制粘贴。 问题:重复逻辑怎样取舍。 机制:使用函数、类、模块复用逻辑。 |
| 玄中 | 1.1 编程没有银弹 | 1.1 编程没有银弹 — 软件的本质困难无法被单一技术消除,复杂性只能被持续控制 材料列出软件本质困难:复杂性、协同性/一致性约束、可变性、不可见性。自动化和工具主要压低偶发困难;对本质困难只能持续理解、分解和管理。适用判断:面对“某项新技术能一劳永逸解决软件问题”的承诺时行动:区分本质复杂性与偶发复杂性,优先减少和管理复杂性理由:复杂性、协调变化与不可见结构会长期存在 用途/任务族:评审技术万能承诺 初评说明:区分本质与偶发困难,预计能减少工具替代问题理解的误判;仍只是判断框架。 |
| 玄中 | 1.2 代码即设计文档 | 1.2 代码即设计文档 — 代码本身承担核心设计文档的角色,编程活动本质上包含设计 适用判断:需要理解、维护或交接系统设计时行动:让代码清楚表达设计,并用辅助文档记录动机、构建测试和架构线索理由:可执行代码最接近真实设计,脱离代码的文档容易失真 用途/任务族:代码设计理解与交接 初评说明:代码表达设计并以辅助文档保存动机,预计降低实现与描述失配的理解成本。 |
| 玄中 | 1.3 代码必然被修改 | 1.3 代码必然被修改 — 代码必然持续变化,因此可读性和可修改性是长期质量基础 适用判断:设计可能被修复、扩展或适配的代码时行动:把“以后能安全修改”作为结构和命名的重要判断标准理由:修改是常态,难改的代码会放大维护成本与风险 用途/任务族:可维护代码设计 初评说明:把未来安全修改纳入结构判断,预计减少常规变更的理解与修改成本。 |
| 玄中 | 2.4 PIE | 2.4 PIE — PIE要求代码直接表达程序员的意图,阅读者应能从结构和命名看出目的 适用判断:代码实现正确却难以理解其意图时行动:优先可读命名、结构和“为什么”的说明,让代码服务于人类阅读理由:代码主要由人维护,清楚表达意图能降低理解与修改成本 用途/任务族:代码意图表达 初评说明:让结构和名称直接表达目的,预计改善维护者的常规理解准确性与耗时。 |
| 玄中 | 2.5 SLAP | 2.5 SLAP — SLAP要求同一段代码保持统一抽象层次,用分层组合隐藏低层细节 适用判断:函数或模块同时夹杂业务步骤与实现细节时行动:把低层细节下沉到独立函数,让高层代码只描述同一层级的步骤理由:混杂抽象层次会打断阅读者的思维并提高认知负担 用途/任务族:混合抽象层次重构 初评说明:统一层级可减少阅读时的上下文切换,预计有中段理解收益;不按函数行数机械拆分。 |
| 玄中 | 2.7 名字很重要 | 2.7 名字很重要 — 命名是代码的用户界面,名称要准确、可搜索并能表达目的和副作用 适用判断:变量、函数或模块需要被他人理解和检索时行动:先想清用途再命名,选信息量高、无歧义、可发音和可搜索的名字理由:好名称减少脑内映射,让阅读者更快形成正确模型 用途/任务族:名称检索与语义理解 初评说明:准确且可搜索的名称预计减少脑内映射和误用,但不能代替行为合同。 |
| 玄中 | 3.1 编程理论 | 3.1 编程理论 — 编程理论用“交流、简洁、灵活性”三种思想指导技术选择,并以六个原则连接到代码 三项核心思想:交流、简洁、灵活性。六个桥梁原则:效应局部化、重复最少化、逻辑与数据一体化、对称性、声明式表达、变动率。思想之间可能互补也可能冲突,优秀方案来自对视点的平衡。适用判断:面对多种技术与实现方式需要取舍时行动:以三种思想为判断基准,再用局部化、少重复、逻辑数据一体、对称、声明式和变动率检查方案理由:技术只有与目的和问题语境匹配时才有价值 用途/任务族:实现方式取舍 初评说明:三思想与桥梁原则提供多视角检查,预计减少单一维度决策;本条不保证最优选择。 |
| 玄中 | 3.2 交流 | 3.2 交流 — 交流要求把代码视为程序员之间持续传递意图的信息媒介 适用判断:编写需要被未来自己或他人阅读的代码时行动:从阅读者视角组织代码,使结构、名称和约定清楚传达意图理由:维护成本很大部分来自理解与沟通 用途/任务族:团队代码阅读 初评说明:从阅读者视角表达意图,预计减少日常交接与维护的理解偏差。 |
| 玄中 | 3.4 灵活性 | 3.4 灵活性 — 灵活性让代码能适应变化,同时过度灵活本身也会制造复杂性 适用判断:需求存在变化可能且需要选择抽象程度时行动:先保持简单和可测试,只在变化证据充分时引入灵活结构理由:未被需要的灵活机制会增加理解与维护负担 用途/任务族:抽象灵活度选择 初评说明:仅在变化证据充分时增加灵活性,预计减少未使用机制的维护负担。 |
| 玄中 | 3.6 重复最少化 | 3.6 重复最少化 — 重复最少化把DRY提升为结构思想:把重复知识集中为一个可维护位置 适用判断:多个位置表达同一事实或规则时行动:识别共同部分并抽象为单一来源理由:单点维护能避免不一致并降低修改成本 用途/任务族:重复规则集中维护 初评说明:集中同一事实预计减少遗漏同步;本条不像A005展开测试与生成安排,不借其补齐。 |
| 玄中 | 3.8 对称性 | 3.8 对称性 — 对称性要求相同概念用相同形式表达,让结构具备可预测性 适用判断:同类操作或成对行为写法不一致时行动:统一命名、结构和控制方式,并保持成对操作相互对应理由:对称结构便于推断,也更容易发现缺失和重复 用途/任务族:同类与成对行为一致性 初评说明:统一表达形式预计降低预测和审查成本,并使缺项更容易被发现。 |
| 玄中 | 3.9 声明式表 | 3.9 声明式表 — 声明式表达优先说明“想要什么”和约束,把步骤细节交给更低层实现 适用判断:大量命令式步骤掩盖真正目标时行动:用表、规则、配置或声明性接口表达意图和约束理由:目标直接可见能减少细节噪声和修改范围 用途/任务族:目标与约束表达 初评说明:声明式表达使目标可见,预计减少重复步骤细节;不能消除底层执行语义。 |
| 玄中 | 3.15 打包 | 3.15 打包 — 打包通过有意义的聚合建立更高层单位,使相关内容作为整体被理解和使用 适用判断:零散函数、数据或文件缺乏清晰归属时行动:按共同职责或变化原因组织成包、模块或组件理由:有边界的聚合减少认知对象数量并明确所有权 用途/任务族:零散内容职责归属 初评说明:有意义的聚合预计降低认知对象数和所有权模糊;包本身不证明良好模块边界。 |
| 玄中 | 3.28 可复用性 | 3.28 可复用性 — 可复用性要求组件边界清晰、依赖较少且职责稳定,才能在其他语境再次使用 适用判断:相似能力可能被多个功能或系统共享时行动:先提高独立性和通用边界,再在确有共性时复用理由:强耦合和过度专用会使“复用”转化为搬运成本 用途/任务族:已出现共性的组件复用 初评说明:独立边界与少依赖预计减少同族重复实现;不为猜测复用预造通用框架。 |
| 玄中 | 3.29 七个设计原理 | 3.29 七个设计原理 — 七个设计原理用简单、同构、对称、层次、线性、清晰和安全七个角度检查设计 七个设计原理:简单性、同构、对称、层次、线性、清晰、安全。适用判断:需要从结构层面评估代码设计时行动:逐项检查七个原理并结合语境权衡理由:多角度检查能暴露单一视角忽略的设计问题 用途/任务族:设计多视角审查 初评说明:多角度检查预计比单一视角减少常规遗漏,但本条没有解出冲突的具体规则。 |
| 玄中 | 3.31 同构原理 | 3.31 同构原理 — 同构原理要求问题结构与解决方案结构保持可对应关系 适用判断:代码结构与业务概念或问题分解难以对应时行动:让模块、数据和处理边界映射问题域中的真实结构理由:结构对应能减少翻译成本和理解偏差 用途/任务族:问题与代码结构对应 初评说明:结构映射预计降低常规业务理解的翻译成本;不能以同构要求冻结所有技术边界。 |
| 玄中 | 3.32 对称原理 | 3.32 对称原理 — 对称原理要求成对或同类操作在结构上保持一致 适用判断:创建/删除、打开/关闭等相关操作风格不一致时行动:统一成对行为的接口和流程理由:对称能提高可预测性并暴露遗漏 用途/任务族:成对操作审查 初评说明:统一成对接口预计让遗漏更可见并减少误用,不把形式对称当行为相同。 |
| 玄中 | 3.34 线性原理 | 3.34 线性原理 — 线性原理强调让控制流和理解路径尽量直接,减少跳转与隐式副作用 适用判断:阅读代码需要频繁跳转或追踪隐藏状态时行动:简化流程、减少间接跳转并让数据流可追踪理由:线性结构降低追踪成本和意外影响 用途/任务族:控制流与副作用追踪 初评说明:更直接可追踪的流程预计降低常规阅读与定位成本;不是禁止必要间接性。 |
| 玄中 | 3.35 清晰原理 | 3.35 清晰原理 — 清晰原理要求优先让设计意图可被阅读者明确理解 适用判断:短小技巧与直白写法发生冲突时行动:选择更清楚的结构、命名和表达理由:代码被阅读和维护的次数通常远多于编写次数 用途/任务族:晦涩表达替换 初评说明:选择清楚的结构与命名预计改善维护者的理解正确率和耗时。 |
| 玄中 | 3.39 清晰原则 | 3.39 清晰原则 — 清晰原则要求代码的清楚程度优先于炫技与晦涩技巧 适用判断:可选择聪明但难懂的写法时行动:选让维护者一眼看懂的实现理由:维护者理解成本会直接影响长期可靠性 用途/任务族:炫技代码维护 初评说明:选择维护者易懂的表达预计减少常规误读与修改成本。 |
| 玄中 | 3.43 简约原则 | 3.43 简约原则 — 简约原则要求只写大型程序的充分理由很强时才扩大规模 适用判断:功能可以由小工具或现有组合完成时行动:优先小程序和已有组件理由:规模越大,理解、测试和协调成本越高 用途/任务族:工具规模与复用取舍 初评说明:优先小工具和组合预计减少无理由扩张的成本;规模小不自动正确或易维护。 |
| 玄中 | 3.46 表达性原则 | 3.46 表达性原则 — 表达性原则要求把程序员知道的信息写进代码,让程序自我说明 适用判断:重要知识只存在于开发者脑中时行动:用名称、数据结构和清晰逻辑表达知识理由:显式知识降低团队沟通和维护依赖 用途/任务族:关键知识显式表达 初评说明:把脑中知识写入名称与结构预计降低日常团队沟通和维护依赖。 |
| 玄中 | 3.47 最小意外原则 | 3.47 最小意外原则 — 最小意外原则要求接口行为符合使用者已有预期 适用判断:设计公共接口、命令或默认行为时行动:选择最符合惯例和直觉的行为,避免惊喜理由:减少意外可降低学习成本和误操作风险 用途/任务族:公共接口预期一致性 初评说明:符合惯例的行为预计降低常规学习与误操作成本;预期需来自真实消费者。 |
| 玄中 | 3.53 多样性原则 | 3.53 多样性原则 — 多样性原则要求避免把所有问题强行塞进一种工具或技术 适用判断:不同问题域需要不同权衡和表达方式时行动:允许多种工具并根据任务选择适合者理由:单一技术无法覆盖所有语境的需求 用途/任务族:工具与任务匹配 初评说明:允许按任务选工具预计减少单一技术强套,限于明确目标下的选择。 |
| 玄中 | 3.57 工作唯一 | 3.57 工作唯一 — 工作唯一要求每个程序专注把一件事做好 适用判断:程序同时承担多个独立目标时行动:拆分责任,让每个工具专注单一工作理由:专一工具更易组合、测试和替换 用途/任务族:工具职责集中 初评说明:专一职责预计减少日常理解与替换成本;一件事需按稳定业务边界判定。 |
| 玄中 | 3.59 可移植性优先于效率 | 3.59 可移植性优先于效率 — 可移植性优先于效率要求避免为了局部性能过早绑定特定平台 适用判断:平台特定优化与跨环境运行发生冲突时行动:除非有测量证明必要,优先标准和可移植实现理由:可移植性延长软件寿命并降低迁移成本 用途/任务族:平台绑定与迁移取舍 初评说明:以测量必要性约束平台特定优化,预计减少不必要绑定;只在确有可移植目标时适用。 |
| 玄中 | 3.60 文本数据 | 3.60 文本数据 — 文本数据强调使用人和工具都容易读取、检查和转换的文本表示 适用判断:数据需要跨工具交换、调试或长期保存时行动:优先简单文本格式并保持结构明确理由:文本透明、可组合且减少专用工具依赖 用途/任务族:跨工具数据表示 初评说明:简单文本预计改善常规检查与交换成本;不把文本默认优先推广到大规模二进制热点。 |
| 玄中 | 3.62 活用shell脚本 | 3.62 活用shell脚本 — 活用shell脚本强调用脚本连接现有命令完成自动化 适用判断:任务由多个现成命令按固定流程组成时行动:用脚本编排工具并保留可重复执行的过程理由:脚本把人工流程变成低成本、可复现的自动化 用途/任务族:固定命令流程脚本化 初评说明:脚本编排预计改善常规重复执行和人工差错;原文不提供完整幂等或凭据合同。 |
| 玄中 | 4.5 代码中的“坏味” | 4.5 代码中的“坏味” — 代码坏味是设计问题的表面信号,应通过小步重构持续清理 适用判断:出现重复、长函数、大模块、过多模块或命名不一致等迹象时行动:把坏味当作调查入口,逐步重构并用测试保护理由:坏味通常意味着理解和修改成本正在上升 用途/任务族:坏味驱动的小步调查 初评说明:坏味作入口加测试保护,预计改善常规重构定位;信号不是根因证明。 |
| 玄中 | 5.4 无我编程 | 5.4 无我编程 — 无我编程要求把代码与自我价值分开,通过评审和讨论共同改进作品 适用判断:代码评审或技术争论容易变成人身防御时行动:让事实和代码质量主导讨论,欢迎他人指出问题理由:放下所有权情绪能提高反馈质量和团队学习速度 用途/任务族:代码评审反馈质量 初评说明:事实与代码质量优先预计减少防御性讨论和遗漏,限于评审行为不推断人格优劣。 |
| 玄中 | 6.4 内部测试 | 6.4 内部测试 — 内部测试要求开发者真实使用自己开发的软件,以用户视角发现体验和质量问题 适用判断:产品尚未发布或刚发布、团队容易只从实现角度看问题时行动:让开发团队持续实际使用产品并记录阻碍理由:真实使用能暴露测试和设计文档未覆盖的问题 用途/任务族:开发团队真实产品使用 初评说明:持续自用预计补充常规测试遗漏的体验问题;开发者不代表所有目标用户。 |
| 玄中 | 6.5 橡皮鸭调试法 | 6.5 橡皮鸭调试法 — 橡皮鸭调试法通过把问题逐步解释给一个听众来暴露隐含假设和逻辑断点 适用判断:卡在故障排查或无法理清复杂代码时行动:从头、具体地解释现象、代码和预期,即使听众只是一个物件理由:表达过程迫使思路显性化,矛盾和遗漏更容易被发现 用途/任务族:调试隐含假设显性化 初评说明:逐步具体叙述预计发现常规逻辑断点;叙述通顺不证明根因,不借B012补入证据实验。 |
| 玄中 | 7.2 康威定律 | 7.2 康威定律 — 康威定律指出系统结构会映射组织沟通结构,组织与架构需要协调 视觉图示用“组织分组 ↔ 系统模块划分”说明沟通结构对软件结构的映射关系。适用判断:团队边界与目标架构相互冲突时行动:让组织结构、责任边界和目标架构保持可支持的对应关系理由:沟通路径会自然塑造接口和模块边界 用途/任务族:团队沟通与模块边界检查 初评说明:组织映射可作为摩擦来源假设,预计改善常规接口协作;不自动批准重组或微服务化。 |
| 玄中 | 7.6 约书亚树原则 | 7.6 约书亚树原则 — 约书亚树原则说明没有名称的事物容易被团队忽略,共同词汇会改变观察和协作能力 适用判断:团队反复讨论某类现象却没有稳定叫法时行动:给重要概念命名,并在代码、文档和交流中共享同一词汇理由:命名使概念可被识别、讨论和持续改进 用途/任务族:团队共同词汇形成 初评说明:给重要现象稳定名称预计改善识别与讨论;命名本身不创造正确概念或事实。 |
| 玄中 | 理解驱动能力 | 能力提升来自对当前层级知识的完整理解,并以应用结果检验理解。 使用:学习新技术、评估技能缺口或提升编码质量时 用途/任务族:学习理解与应用检验 初评说明:以应用检验理解预计改善常规学习效果;完整理解不是可直接测量的绝对门槛。 |
| 玄中 | 复杂性症状清单 | 通过黑客修补、难读、误用、害怕修改、扩展困难等信号识别复杂代码。 使用:定位代码库中最需要治理的区域时 用途/任务族:复杂代码治理入口 初评说明:症状清单预计帮助常规初筛,不据症状直接证明根因或优先级。 |
| 玄中 | Bug 双重定义 | 程序行为偏离程序员预期,或程序员预期偏离多数理性用户合理预期,都可能构成 bug。 使用:分类缺陷与功能需求时 用途/任务族:缺陷与用户预期分类 初评说明:区分实现偏离与错误需求理解,预计减少常规缺陷分诊误判;用户预期需要真实调查。 |
| 玄中 | SAR / ISAR | 用结构、操作、结果以及可选输入拆解任何层级的软件。 使用:分析程序结构、职责和信息流时 用途/任务族:软件结构与信息流表示 初评说明:结构、操作、结果及输入视角预计改善常规拆解;不是完整的时间、权限或本体模型。 |
| 玄中 | 持续改善 | 每个版本持续解决真实问题,并以足够频率发布,让产品沿时间轴变得更好。 使用:产品长期维护与版本规划时 用途/任务族:长期产品改善节奏 初评说明:持续处理真实问题预计改善常规维护结果;发布频率本身不是用户价值。 |
| 玄中 | 改善优先级两阶段 | 先解决已知头部问题,再在问题趋于分散时用用户数据决定下一批优先级。 使用:维护成熟产品、决定下一轮改善重点时 用途/任务族:成熟产品改善优先级 初评说明:头部问题到用户数据的分阶段选择预计改善常规投入分配;反馈量不等于严重度。 |
| 玄中 | 学习—实践闭环 | 承认知识边界,系统学习基础,再通过实践检验和巩固理解。 使用:提升程序员能力与制定学习路线时 用途/任务族:程序员知识边界与实践学习 初评说明:基础学习加实践检验预计改善常规理解迁移;没有具体训练与验收安排,不自动升地阶。 |
| 玄中 | 用户问题 / 开发者方案 | 用户提供问题和影响证据,开发者负责设计解决方案。 使用:需求分析、内部工具和产品设计时 用途/任务族:用户问题与方案协作 初评说明:分开问题证据和实现方案预计减少需求误解;不排斥用户对方案约束的真实知识。 |
| 玄中 | 用户—程序—计算机中介模型 | 业务软件的复杂度来自程序员在用户习惯、法规与机器之间做中介。 适用:设计业务软件和用户流程时 用途/任务族:业务软件中介关系理解 初评说明:用户习惯、法规和机器之间的关系预计减少常规需求建模遗漏。 |
| 玄中 | 团队规模—协调成本悖论 | 简单增加程序员可能放大协调成本并延长项目。 适用:想用加人压缩软件工期时 用途/任务族:增员与协调成本估算 初评说明:增加人数可能增加协调成本的提醒预计改善常规工期估算,不预定加人一定延期。 |
| 玄中 | 最小惊讶原则 | 程序应尽量符合用户可预期行为,减少意外。 适用:设计用户可见行为和接口时 用途/任务族:用户可见行为预期 初评说明:符合真实用户预期预计降低常规学习与误操作成本;不据同名继承A057或旧登记意见。 |
| 玄中 | 程序单一整体 | 复杂程序仍应由内部逻辑形成一个整体,避免多余结构和无用元素。 适用:重构或评审程序结构时 用途/任务族:程序整体逻辑与多余结构 初评说明:整体一致与删除无用元素预计减少常规理解成本;不把整体性误读成单体不可拆。 |
| 玄中 | 维护即长期滋养 | 遗留程序像成长中的植物,修改前要理解逻辑和原意,持续维护是生命周期的一部分。 适用:维护遗留系统或做补丁时 用途/任务族:遗留程序理解与维护 初评说明:先理解逻辑与原意预计减少常规补丁破坏;植物类比不证明系统自然成长。 |
| 玄中 | 系统三元组:硬件、软件与人 | 计算机系统包含硬件、软件和人,人的错误也是系统失效的一部分。 适用:做事故归因和系统安全分析时 用途/任务族:系统失效中人员因素检查 初评说明:纳入硬件、软件与人预计减少常规事故分析漏项;不把归因给人当根因结束。 |
| 玄中 | 性能价值链 | 性能的业务价值 代码性能会沿着系统层级放大为用户体验和基础设施成本。 局部优化可能减少服务器、网络与存储消耗。容量效率越高,大规模服务的成本收益越明显。 用途/任务族:性能业务价值与成本关联 初评说明:把性能连到体验和基础设施投入预计改善常规优化优先级,局部改进不直接等于公司收益。 |
| 玄中 | 性能影响层级链 | 性能影响链 一个低效模块可能把额外请求和资源压力传递给上下游。 应用级问题可能演化为单机资源瓶颈。单机瓶颈可能降低服务容量并增加服务器数量。规模放大后会进入公司成本和能源消耗。 用途/任务族:性能影响向上下游传播分析 初评说明:层级链预计减少常规局部归因遗漏,仍需逐层验证资源与请求传播。 |
| 玄中 | 排队系统模型 | 排队思维 只要输入速率接近或超过处理能力,等待就会迅速积累。 排队系统由输入、服务和输出构成。容量分析需要同时看到达率和服务能力。 用途/任务族:接近饱和的排队风险解释 初评说明:到达与服务能力共同分析预计改善常规等待积累判断,模型不代替真实队列结构。 |
| 玄中 | 性能数据展示六条经验 | 六条展示经验 材料把展示总结为面向受众和目标的沟通工程。 按客人备菜:先识别受众。有啥菜吃啥饭:尊重数据本身。给足上下文。用图讲故事。和听众交互。总结重要点。 用途/任务族:面向受众的性能展示 初评说明:尊重数据、上下文与关键点预计改善常规理解;故事与交互不代替事实。 |
| 玄中 | 图表选择矩阵 | 图表选择 图形类型应匹配数据关系。 线图适合时间趋势。CDF/PDF适合分布。散点/气泡适合变量关系。热图适合二维密集模式。 用途/任务族:趋势与分布图形选择 初评说明:图形按关系匹配预计减少常规展示误读,不能由图型自动得到因果解释。 |
| 玄中 | 十类性能测试谱系 | 十类测试 材料列出冒烟、耐力/浸泡、基准/回归、负载、断点、尖峰、可扩展性、容量、瓶颈、压力测试。 它们的区别在目标和负载形态。不能只按工具名称判断测试类型。 用途/任务族:性能测试目标分类 初评说明:按目标与负载而非工具命名预计减少常规测试选型混淆,不构成实际覆盖证明。 |
| 玄中 | NUMA亲和策略 | NUMA与分配 内存位置和分配方式都会影响性能。 让共享数据的线程尽量位于同一NUMA节点。必要时做CPU/内存绑定。通过内存池减少频繁分配和碎片。 用途/任务族:NUMA位置与分配优化 初评说明:在同类共享数据访问中预计改善常规远端访问与分配成本;绑定不是所有负载默认。 |
| 玄中 | SSD内部页块模型 | SSD模型 SSD最小读写单位是页,擦除单位是块。 更新可能触发读-改-写和GC。写放大增加实际写入量并消耗寿命。Wear Leveling在寿命和性能间有代价。 用途/任务族:SSD写放大机制理解 初评说明:页块、GC和磨损关系预计改善常规存储诊断;具体设备读写粒度和FTL须核对。 |
| 玄中 | 两步时间序列预测 | 两步预测 材料为细粒度长期预测设计两步法。 第一步用ARIMA预测未来各周总流量。第二步用168小时季节指数分配到每小时。42天历史示例预测后21天,作者认为精度足够用于工程问题。 安全裕量 预测低于真实流量时会带来SLA风险。 裕量应考虑历史预测精度。同时考虑SLA违约成本和过度部署成本。 用途/任务族:有季节结构的流量预测 初评说明:周总量与小时分配预计改善常规长期预测成本;误差与安全裕量已有提醒,不把案例当准确率保证。 |
| 玄中 | 三元素干扰治理 | 三元素治理 三个措施分别控制堆分配、交换和THP。 用-XX:+AlwaysPreTouch预分配JVM堆页。用cgroup等保护关键堆页,或在合适同类平台关闭swap。根据可用内存、直接扫描率和THP聚合CPU动态调整THP。 用途/任务族:已核版本平台的Java干扰调整 初评说明:堆页、交换与THP分别控制预计有中段同族收益;不把旧参数或关闭swap当迁移默认。 |
| 玄中 | HTTP传输状态机 | 状态机落地 HTTP传输用T0–T5记录请求、首字节和结束事件。 正常成功路径最终到状态F。异常状态转移结合两端队列即可进一步定位。 用途/任务族:HTTP成功异常阶段定位 初评说明:事件与状态关系预计改善常规定位分段;T0至T5含义和真实异常路径需另核。 |
| 玄中 | 数据中心选址因子 | 选址因子 “靠近用户”只是数据中心选址的一项因素。 还要考虑电力稳定、自然灾害、社会稳定、法律、人才、供应和建造成本。数据主权/隐私法律会直接影响可行地点。 用途/任务族:数据中心选址可行性检查 初评说明:用户距离以外的电力、灾害、法律与供给检查预计减少常规单因素错选。 |
| 玄中 | 模块化Pod网络 | Pod网络 模块化网络通过重复标准单元扩展。 每个Pod固定机柜规模。多个骨干平面连接Pod。需要计算、内部网络或外部连接时分别增加对应模块。 用途/任务族:标准单元式网络扩容 初评说明:Pod和独立模块扩展预计改善常规容量增长的组合成本;互联瓶颈与故障域需实际验证。 |
| 玄中 | 服务效率八分类 | 八类效率 八类方法分为软件服务与非软件容量两个大方向。 软件效率。服务架构效率。服务部署效率。跨平台效率。硬件效率。容量组织效率。容量资源回收。用户效率。 用途/任务族:服务效率改善机会盘点 初评说明:软件与容量多方向视图预计减少常规只盯局部代码的遗漏;分类存在不证明改进效果。 |
| 玄中 | 效率提升五条执行原则 | 五条执行原则 效率项目要有治理机制。 明确所有权和承诺。按效率目标计划执行。为每个组件部署检测工具。保持跨团队协作。做公司范围协调。 用途/任务族:跨团队效率项目执行 初评说明:owner、目标、检测与协作预计减少常规执行脱节;检测工具齐全不等于有效收益。 |
| 玄中 | 持续学习循环 | EPUB第265–268节 · 结束语-不愁明月尽,自有夜珠来 核心思想:结束语强调把课程当作起点:技术持续演进,需要跟踪专业博客、工程博客、书籍和会议论文,同时继续训练团队协作与情商。 关键框架 持续学习循环 行动要点 硬技能需要持续跟踪软件、硬件和工具演进。材料推荐通过专业博客、公司工程博客和学术会议补充学习。软技能同样需要在真实协作中反思和训练。 持续技术学习 课程之外还要持续摄取一手技术资料。 定期阅读性能专家和工程团队博客。按工作领域阅读书籍与会议论文。把新知识带回实际项目验证。 持续软技能学习 职场合作也需要长期迭代。 理解他人目标和利益。复盘沟通与协作中的教训。把课程结束视为继续实践的起点。 用途/任务族:持续专业与协作学习 初评说明:跟踪一手材料并带回项目验证预计改善常规知识更新;阅读量不等于技能或效果。 |
| 玄中 | 有效沟通四准则 | 有效沟通四特征 沟通要及时、透明、一致、清楚。 正式渠道和可追溯记录提高透明度。团队对外信息保持一致。结论表达要减少歧义。 用途/任务族:工程协作信息一致性 初评说明:及时、透明、一致、清楚加可追溯记录预计减少常规协调误解,不替代正确决策。 |
| 玄中 | 复杂性症状—根因模型 | 用变更放大、认知负荷、未知的未知识别复杂性,并追溯到依赖性与模糊性。 适用:诊断设计复杂性时 用途/任务族:AI代码设计复杂性诊断 初评说明:预计能把难维护的直觉转成可检查的变化传播问题;未预计单凭模型解决困难设计。 |
| 玄中 | 战略式编程 | 把长期系统结构放在短期“先让它工作”之前,并持续进行小额设计投资。 适用:开发新功能或修复问题时 用途/任务族:迭代功能的长期结构取舍 初评说明:预计减少无限期临时补丁;投资幅度与收益仍依当前需求。 |
| 玄中 | 先写注释 | 在实现前写抽象注释,用文字是否清晰来检验设计。 适用:设计新类或公共方法时 用途/任务族:公共接口设计说明检验 初评说明:预计较早发现含混职责和接口假设。 |
| 玄中 | 抽象增量 | 增量开发可以推迟尚不需要的抽象,但一旦需要就把抽象本身设计完整。 适用:采用敏捷或迭代式开发时 用途/任务族:迭代中的抽象时机 初评说明:预计减少过早抽象并保持必要边界。 |
| 玄中 | 价值优先推进 | 优先选择最耗时、最昂贵、最影响质量且 LLM 擅长的环节做试点。 适用:理解、评估或应用这一结构时 用途/任务族:AI开发能力试点选择 初评说明:预计把试点集中到可验证价值而非工具新颖性。 |
| 玄中 | 第三方模型六维选择 | 性能适用、成本、开闭源、迭代、硬件兼容、法律合规。 适用:理解、评估或应用这一结构时 用途/任务族:开发助手模型选型 初评说明:预计减少只看排行榜的选型遗漏。 |
| 玄中 | 第三方 API 十二维选择 | 性能、成本、稳定性、安全、易用性、供应商、扩展、多模态、算力、案例、试用、长期合作。 适用:理解、评估或应用这一结构时 用途/任务族:AI API供应方选择 初评说明:预计补充稳定性、安全与长期供应风险审查。 |
| 玄中 | 代码 RAG | 以代码片段作为 key、完整函数作为 value,用少量相关代码示例增强生成。 适用:理解、评估或应用这一结构时 用途/任务族:已有仓库示例增强代码生成 初评说明:预计改善风格和接口贴合度;卡文不含完整检索评估。 |
| 玄中 | INVEST 需求评审 | 从独立、可协商、有价值、可估算、小、可测试等维度检查用户故事质量。 适用:理解、评估或应用这一结构时 用途/任务族:用户故事可交付性评审 初评说明:预计暴露无法验收或过大的需求单元。 |
| 玄中 | 巴士系数 (Bus Factor) | 团队 导致项目陷入严重困境所需的最少团队成员流失数量。 用于识别与“巴士系数”相关的工程约束、风险或决策情境。 用途/任务族:关键维护与恢复知识连续性 初评说明:预计帮助定位单人知识依赖和交接缺口。 |
| 玄中 | 古德哈特定律 (Goodhart's Law) | 规划 当一个度量标准成为目标时,它就不再是一个好的度量标准。 用于识别与“古德哈特定律”相关的工程约束、风险或决策情境。 用途/任务族:开发效率指标与真实交付偏差识别 初评说明:预计提醒防止调用数、提交量或代码行数替代用户结果。 |
| 玄中 | 测试金字塔 (Testing Pyramid) | 质量 一个项目应该有许多快速的单元测试,较少的集成测试,和只有少量的 UI 测试。 用于识别与“测试金字塔”相关的工程约束、风险或决策情境。 用途/任务族:AI代码测试层级取舍 初评说明:预计减少只依赖慢且脆弱UI测试的维护成本。 |
| 玄中 | 技术选型多维决策框架 | 框架 10 从团队能力、上市时间、互操作、成本、可逆性、部署、构建/购买、模块化、运维与基准等维度权衡。 适用评估新工具或替换现有技术时首次单元u04 用途/任务族:数据技术栈与替换决策 初评说明:预计减少只追逐工具名气和单一性能指标。 |
| 玄中 | 流式窗口与水位线 | 框架 25 会话、固定、滑动窗口和水位线把无界事件变成可触发计算的动态范围。 适用需要实时聚合、会话化或处理迟到事件时首次单元u08 用途/任务族:实时聚合的窗口与迟到语义理解 初评说明:预计减少固定时间与事件完成范围混淆。 |
| 玄中 | 服务阶段信任模型 | 框架 28 质量校验、可观测性、SLA/SLO 与持续沟通共同维持数据产品信任。 适用向分析、ML 或业务用户交付数据产品时首次单元u09 用途/任务族:数据服务持续验收与信任维护 初评说明:预计减少只做一次离线校验就宣称数据产品可靠。 |
| 玄中 | 序列化格式选择框架 | 框架 37 行式适合记录交换,列式适合分析扫描,混合表格式为更新、快照和模式演进增加管理层。 适用选择文件格式、湖表格式或跨系统交换格式时首次单元u12 用途/任务族:数据文件与交换格式选型 初评说明:预计减少访问模式与存储表示不匹配。 |
| 玄中 | 人月不可互换与Brooks法则 | 工作量与日历时间受顺序、培训和沟通约束,追加人员会改变任务本身。 使用场景 · 项目延期、赶工或讨论加人时 用途/任务族:AI辅助项目的人力与日历估算 初评说明:预计纠正人数或Agent数量线性提速的估算。 |
| 玄中 | 基于同类项目数据的系统估算 | 大型系统估算应依赖真正可比的系统级历史数据。 使用场景 · 估算规模、工期和人员时 用途/任务族:软件交付工期及人员估算 初评说明:预计比把代码实现时间直接当总交付时间更稳妥。 |
| 玄中 | 可持续工作周 | 页面归纳:长期加班无法持续创造额外产出;它会通过隐性补偿、质量下降、倦怠和人员流失把成本转移到未来。 适用:当你需要判断“03 维也纳在等你”所讨论的人、团队、环境或组织问题时 用途/任务族:可持续开发容量安排 初评说明:预计减少用短期冲刺冒充稳定产能。 |
| 玄中 | 异步优先的打断判断 | 页面归纳:同步通信的真正成本在于它强制抢占接收者的注意力;管理应让“是否值得现在打断”成为通信选择的核心问题。 适用:当你需要判断“11 电话”所讨论的人、团队、环境或组织问题时 用途/任务族:开发沟通是否值得即时打断的取舍 初评说明:预计减少非紧急同步沟通的重复上下文重启。 |
| 玄中 | 工具调用四步循环 | 声明工具→模型选择工具和参数→框架执行→结果回填上下文。 适用:实现 Function/Tool Calling 时 用途/任务族:模型与工具框架的调用协议 初评说明:预计帮助分清模型提议和真实框架执行。 |
| 玄中 | Skill 路由与执行分离 | 元数据以末尾 meta 消息 emit-once,完整内容通过专用 Skill 工具按需加载。 适用:兼顾 KV Cache 与指令遵循时 用途/任务族:特定Harness的路由与加载实现 初评说明:预计在支持该协议的运行时降低重复上下文;不外推所有CLI。 |
| 玄中 | 隔离优于压缩 | 大体积中间探索交给独立子 Agent,只把结论回传主上下文。 适用:搜索代码库、读取大量文件等高噪声子任务 用途/任务族:高噪声子任务的上下文隔离 初评说明:预计减少主上下文污染;不保证收益超过通信和重复开销。 |
| 玄中 | 记忆三层评估 | 基础回忆→多会话检索→主动服务逐级衡量个性化 Agent 的记忆能力。 适用:评估长期用户记忆是否有实际助理价值时 用途/任务族:开发助手长期记忆的任务评估 初评说明:预计避免只测存储或检索成功就宣称记忆有用。 |
| 玄中 | 沙盒隔离层级 | OS 级隔离→容器→microVM 逐级增强,外加 CPU/内存/磁盘/网络配额。 适用:Agent 可执行不可信代码时 用途/任务族:不可信代码执行的隔离方案初筛 初评说明:预计帮助审查执行环境边界;未判定某层普遍更安全。 |
| 玄中 | LLM-as-a-Judge + Rubric | 用明确评分标准约束评委模型,减少自由打分的漂移和偏差。 适用:答案难以用规则精确判分时 用途/任务族:不可精确自动判分的答案评审 初评说明:预计降低自由打分漂移;尚不预计消除共同偏差。 |
| 玄中 | 用户域—模型域双向转换 | 把现实任务翻译成模型熟悉的文档,再把补全翻译成结果。 适用时当定位提示工程在系统架构中的职责时 用途/任务族:业务任务与模型文档的适配 初评说明:预计暴露提示适配层和业务验收之间的责任。 |
| 玄中 | 上下文来源矩阵 | 从用户/应用与当前/历史等维度系统寻找可能上下文。 适用时当担心遗漏动态上下文来源时 用途/任务族:开发提示动态上下文来源识别 初评说明:预计减少遗漏当前用户输入或使用过时应用状态。 |
| 玄中 | 契诃夫的枪支谬误 | 无关上下文会被模型强行赋予意义,从而挤占并扭曲真正有用的信息。 适用时当考虑“多放一点也许有用”的上下文时 用途/任务族:无关仓库上下文导致的误关联风险 初评说明:预计提醒按任务选择而非无限堆文档。 |
| 玄中 | 加法—减法贪心算法 | 从空提示逐步加入高价值元素,或从全集逐步删掉低价值元素。 适用时当需要高效近似提示组装优化时 用途/任务族:提示元素的有界启发式选择 初评说明:预计降低盲试成本;未保证最优或困难任务迁移。 |
| 玄中 | 系统边界设定原则 | 围绕当前问题确定合理的分析边界 适用:用于第5章 全面思考所讨论的系统分析情境。 用途/任务族:AI排错与设计分析范围取舍 初评说明:预计减少无关扩读与遗漏关键上下游。 |
| 玄中 | 因果回路图 | 用变量、带极性的因果连接和反馈回路表达系统结构。 适用:需要解释动态行为、识别增强/调节回路或团队共建结构模型时。 用途/任务族:复杂系统反馈结构表达 初评说明:预计帮助讨论反馈假设和时滞,不证明真实因果。 |
| 玄中 | 校准估计 | 用概率与置信区间表达主观不确定性,并用真实频率检验估计者是否过度自信或自信不足。 用途/任务族:开发风险与工期主观估计校准 初评说明:预计识别过度自信;未验证具体人或模型已校准。 |
| 玄中 | 选择性启发式搜索 | 用途/任务族:大候选空间中的有界搜索排序;机制:用可比较线索优先扩展候选,同时保留剪枝理由和未搜索范围。;适用:候选空间大且有可验证的希望度估计。;不适用:没有可比较的评价信号或遗漏代价不可接受。;前提:候选状态、目标判据、预算和剪枝风险已声明。;边界:不声称完整搜索、全局最优或高希望度必然有效。 |
| 玄中 | 信息价值 | 用途/任务族:有限检索与实验预算的信息选择;机制:只优先获取可能改变选择且净收益为正的信息。;适用:信息获取有成本,且不确定性可能改变行动。;不适用:无可选行动或信息不会影响决策。;前提:当前选项、未知参数、损失和信息来源可描述。;边界:完美信息价值是模型上界,不代表现实可获得;缺概率或损失资料不能伪造数字。 |
| 玄初 | "钢人化"原则(最强版本理解) | 原文用途:减少无效争论/误解;让重构建议更贴近原意图。 问题:减少无效争论/误解;让重构建议更贴近原意图。 机制:- 先把现有方案表达成最强版本(目标、约束、权衡) - 再提出改进(保留其优势,指出代价) 预期结果:现有方案的最强解释及优点。;保留优势、说明代价和风险的改进方案。 |
| 玄初 | 方法论怀疑(笛卡尔式) | 原文用途:把不可靠前提当事实是 vibe coding 常见事故源。 问题:把不可靠前提当事实是 vibe coding 常见事故源。 机制:- 对关键前提标注:是否可验证 - 不可验证 → 必须加运行时校验/超时/重试/降级;并写会失败的测试 预期结果:关键前提及可验证性清单。;不可验证前提对应的防线和失败测试。 |
| 玄初 | 递归式 AI 治理 | AI既求解问题,也生成、选择、审查与修正下一层模型或智能体,并通过跨层反馈扩大可自动化接口。 问题:复杂认知过程可以递归自动化到什么层级,价值判断应在哪里保留人类主权。 机制:实例→假设→选择→推演→检验→归因→更新;以验证层、终止条件、异常回滚和人类最终裁决构成治理闭环。 条件:目标、约束与评价信号具有足够可识别性。 限制:否则易出现欠决定性、代理目标偏移、误差递归放大与外推失效。 预期结果:减少人工介入并形成自主闭环,通过跨层反馈持续扩大可自动化的接口。 |
| 玄初 | 吸引子 | 把“项目变好”表示为由目标、可观测变量与硬约束组成的可比较、可更新的软件演化方向。 问题:如何把开放式工程目标转为可度量、可检验、可更新且长期方向一致的约束系统。 机制:变更实例→状态估计→距离比较→方向选择→结果检验→规则更新;经验反馈持续校准距离函数、权重和约束。 条件:目标可识别,指标对真实质量具有有效映射,多目标冲突有稳定裁决。 限制:否则会出现欠决定性、指标投机与局部最优。 预期结果:将“项目变好”形式化为可比较、可更新的优化方向 |
| 玄初 | 拍扁 | 将连续、关系密集且高维的对象转换为机器可计算的有限表示,选择性保留任务所需结构。 问题:有限计算系统如何压缩现实,同时保留预测、推理与干预所需结构。 机制:现实实例→表征生成→候选结构→模型选择→推演计算→经验检验→表示更新;不同表示形成不同归纳偏置与可见信息范围。 限制:该过程受信息损失、可识别性、欠决定性及分布外外推能力约束,表征选择失当会使后续计算产生系统性偏差。 预期结果:选择性保留任务相关结构的机器可计算表示,如表格、JSON、向量、图、树或序列。 |
| 玄初 | 5.1 程序员的三大美德 | 5.1 程序员的三大美德 — 程序员三大美德把懒惰、急躁和傲慢转化为自动化、效率意识和专业责任 三大美德:懒惰推动自动化,急躁推动消除低效并预先改善结构,傲慢推动专业质量。书中同时提醒高强度加班会伤害长期产出与质量。适用判断:重复劳动、低效流程或质量妥协出现时行动:自动化重复、主动消除低效,并以专业自尊守住质量理由:这些习惯推动程序员减少无价值劳动并持续改进 用途/任务族:程序员重复劳动与质量习惯 初评说明:自动化、消低效与专业责任预计有初段过程收益;人格比喻不构成能力评价。 |
| 玄初 | 5.2 童子军规则 | 5.2 童子军规则 — 童子军规则要求每次离开代码时都让它比接手时更干净一点 适用判断:修改现有代码或提交变更时行动:顺手完成一个小而安全的清理并保持测试通过理由:持续的小改善可以抵消代码自然劣化 用途/任务族:任务范围内的小步清理 初评说明:安全且有测试的小改善预计积累初段收益;不批准范围外顺手重构。 |
| 玄初 | 5.6 TMTOWTDI | 5.6 TMTOWTDI — TMTOWTDI认为工具可提供多种表达路径,让使用者根据语境选择最自然的方式 适用判断:设计面向他人的语言、DSL或API时行动:允许有意义的多种用法,同时控制工具内部复杂度理由:把必要复杂度留在工具侧可让不同用户场景保持简单 用途/任务族:多用户表达路径设计 初评说明:有意义的多种用法预计产生初段可用性收益,源文也要求控制工具复杂度。 |
| 玄初 | 7.3 破窗效应 | 7.3 破窗效应 — 破窗效应提醒小的代码劣化若长期无人处理,会降低团队维护标准并继续扩散 适用判断:发现明显坏代码、临时补丁或失修区域时行动:尽快修复;暂时无法修复就明确标记并纳入管理理由:被忽视的破损会传递“这里没人负责”的信号 用途/任务族:失修代码信号与管理 初评说明:尽早修复或登记预计有初段维护收益;社会类比不是腐化必然传播的因果证明。 |
| 玄初 | 7.4 熵增原理 | 7.4 熵增原理 — 熵增原理指出代码会自然走向混乱,质量需要持续投入才能维持 书中列出的腐化迹象包括僵化、脆弱、难移动、环境黏滞、无谓复杂、重复和晦涩。适用判断:系统出现僵化、脆弱、难移动、重复或晦涩等劣化迹象时行动:持续重构并建立团队共同维护文化理由:不主动整理,变化会不断增加结构无序度 用途/任务族:代码劣化持续维护 初评说明:腐化迹象提醒预计改善初段维护意识;不把物理熵定律当软件效果定理。 |
| 玄初 | 未来预测准确度模型 | 预测准确度会随系统复杂性与时间跨度增加而下降。 使用:面对基于未来假设的架构决策时 用途/任务族:远期架构假设审查 初评说明:复杂性与时间跨度提醒预计减少初段过度预测;没有具体误差模型,不当作通用定量关系。 |
| 玄初 | 两遍已太多 | 同一概念出现第二套实现时,立即提炼只覆盖已知共性的共享方案。 使用:增量开发、消除重复和重构时 用途/任务族:已知重复概念的共享抽取 初评说明:仅覆盖已知共性预计有初段同步成本收益;第二次出现不作为自动抽象的普遍阈值。 |
| 玄初 | 复杂代码六步治理 | 收集症状、会议定位、建问题单、排优先级、分配、持续计划。 使用:组织层面治理复杂代码库时 用途/任务族:复杂代码组织治理 初评说明:症状、优先级与责任分配预计有初段过程收益;会议和问题单不等于真实质量改善。 |
| 玄初 | 软件即知识 | 代码是知识的载体,因此可理解性、复用、学习和误解规律都会直接影响软件。 使用:解释可读性、复用和学习对质量的作用时 用途/任务族:代码可理解性价值说明 初评说明:知识载体视角预计提供初段质量判断帮助;没有具体转化步骤,不预定更高结果带。 |
| 玄初 | 编程之道的整体和谐观 | 程序质量被放进操作系统、编译器、应用和用户的多层关系中理解。 适用:分析局部代码问题可能来自更大系统层级时 用途/任务族:局部问题的系统层级提醒 初评说明:多层关系观预计有初段诊断提醒收益;寓言性整体观不提供具体因果判别。 |
| 玄初 | 语言谱系与多样目的 | 不同层级和语言各有目的,语言多样性本身并非缺陷。 适用:比较语言/工具时先明确任务和层级 用途/任务族:语言与工具的目的匹配 初评说明:多样目的提醒预计减少初段工具争论与错配,不证明任意语言同样适用。 |
| 玄初 | 设计先于测试 | 测试阶段才改变根本设计已经太晚,设计应更早稳定关键结构。 适用:项目从设计进入实现和测试前 用途/任务族:关键结构的早期验证 初评说明:预计有初段避免测试末期才发现根本设计问题的收益;不是实现后才编写测试的授权。 |
| 玄初 | 真实时间表 | 团队共同理解的实际节奏比公开计划和里程碑更能反映项目真实进度。 适用:评估软件项目进度与承诺时 用途/任务族:项目真实进度观察 初评说明:团队实际节奏预计有初段校正计划偏差的帮助;真实节奏仍须可核验产出支撑。 |
| 玄初 | 倒置树式领导 | 优秀领导把自己看作组织的支撑者,使员工感到成果来自自身努力。 适用:设计领导角色与组织权责时 用途/任务族:支撑式领导角色讨论 初评说明:支撑员工而非归功自身预计有初段角色澄清帮助;不构成组织效果普遍规律。 |
| 玄初 | 技术介入的组织成熟度 | 通信技术会放大既有行为模式,组织成熟度决定新工具的实际效果。 适用:引入协作/通信工具时 用途/任务族:协作技术引入判断 初评说明:技术放大原有行为的假设预计有初段组织检查价值;需观察具体机制而非先判组织成熟度。 |
| 玄初 | 蜘蛛网系统观 | 互联系统对小扰动会整体响应,粗暴冲击可能破坏网络结构。 适用:干预复杂互联系统时 用途/任务族:互联系统干预的风险提醒 初评说明:整体响应类比预计有初段避免粗暴变更的帮助;不证明任何小扰动都会破坏系统。 |
| 玄初 | 退避式重试 | 重试放大风险 过载时重试策略本身可能成为新的流量源。 材料建议采用指数退避等方式降低重试频率。重试需要与系统真实承载能力配合。 用途/任务族:过载重试频率控制 初评说明:退避预计有初段降低重试放大的效果;源文缺总预算、幂等和抖动,不构成完整重试器。 |
| 玄初 | CDN边缘缓存流程 | CDN流程 CDN通过把内容靠近用户降低跨网传输。 DNS把请求导向边缘节点。缓存未命中时边缘回源。TTL控制内容在边缘的缓存生命周期。 用途/任务族:CDN回源与缓存关系理解 初评说明:边缘、回源与TTL简化流程预计有初段排查帮助;不保证DNS是所有CDN的唯一机制。 |
| 玄初 | 硬件趋势到软件策略 | 长期硬件趋势 软硬件应共同演化。 CPU:更多核、频率增长有限,强调水平扩展。内存:DRAM昂贵,考虑NVM和降低内存占用。存储:容量增长快于IOPS,热数据放更快介质。网络:带宽升级同时仍应减少跨机架/跨中心流量。单处理器高密度多核可降低硬件与许可证成本。 用途/任务族:硬件趋势引导的软件规划 初评说明:趋势提醒预计有初段策略帮助;作者时点的NVM、密度和成本预测不代表当前供给。 |
| 玄初 | 服务器生命周期 | 服务器生命周期 容量从采购到报废需要全生命周期管理。 按机架批量订购并经过预配。进入备用池再分配给服务。运行期维护磁盘、主板、系统和软件。退役时擦除数据并销毁存储介质。 用途/任务族:服务器容量生命周期理解 初评说明:从订购到退役的阶段提醒预计有初段资产检查收益;没有完整退役和数据擦除验证规范。 |
| 玄初 | 渐进配额告警与任务升级 | 配额升级机制 材料给出渐进式告警/任务优先级机制。 每天监控产品组使用量与配额。连续7天增长过快则通知并建任务。超过年度总配额后提升优先级。连续3周超总配额且无措施则升到最高优先级。 用途/任务族:单组织配额告警与升级 初评说明:连续观测和任务优先级升级预计有初段响应收益;7天与3周为案例阈值,缺去重与恢复结果。 |
| 玄初 | 海勒姆定律 (Hyrum's Law) | 架构 当 API 的用户足够多时,你系统所有可观察到的行为都将被某些人所依赖。 用于识别与“海勒姆定律”相关的工程约束、风险或决策情境。 用途/任务族:公共API消费者兼容风险识别 初评说明:预计提醒检查隐含消费者;卡文不提供兼容迁移方法。 |
| 玄初 | 抽象泄漏定律 (The Law of Leaky Abstractions) | 架构 所有非平凡的抽象,在某种程度上都是有泄漏的。 用于识别与“抽象泄漏定律”相关的工程约束、风险或决策情境。 用途/任务族:跨层失败排障的抽象边界识别 初评说明:预计提醒沿真实调用链核各层承诺。 |
| 玄初 | 杀虫剂悖论 (Pesticide Paradox) | 质量 重复运行相同的测试,随着时间的推移会变得越来越不有效。 用于识别与“杀虫剂悖论”相关的工程约束、风险或决策情境。 用途/任务族:测试覆盖陈旧性的风险提示 初评说明:预计提示补充新风险与输入,而非反复展示同一绿色结果。 |
| 玄初 | E参数 | 脑力工作的有效时间应以连续专注的“流时间”理解;出勤小时会掩盖重新进入状态的成本,因此环境质量需要衡量不被打断的时间比例。 适用:当你需要判断“10 大脑时间与身体时间”所讨论的人、团队、环境或组织问题时 用途/任务族:工作窗口与连续专注容量识别 初评说明:预计提示检查打断与重启成本;卡文未给E参数公式。 |
| 玄初 | 会议结束条件测试 | 页面归纳:健康会议必须知道“怎样才算结束”:工作会议围绕共同决策,参与者只包括需要共同决定的人;没有完成条件、按时间结束的会议往往是仪式。 适用:当你需要判断“31 会议、独白和交流”所讨论的人、团队、环境或组织问题时 用途/任务族:需求评审与协作会议完成条件 初评说明:预计减少无产物会审;未包含完整会议操作规约。 |
| 玄初 | 时间感三轴 | Urgency、Persistence、Vigilance 分别控制时间预算、是否坚持和异常时延警觉。 适用:需要 Agent 感知物理时间并调整执行节奏时 用途/任务族:长工具调用的时间风险识别 初评说明:预计减少把调用等待与任务进展混为一谈。 |
| 玄初 | 提示工程复杂度阶梯 | 从薄应用层,到增强上下文与状态,再到工具使用和自主能力。 适用时当判断系统应增加多少 LLM 编排复杂度时 用途/任务族:LLM编排复杂度的架构识别 初评说明:预计帮助识别正在新增的所有权与风险。 |
| 玄初 | 小红帽原则 | 让提示使用训练数据中常见、真实、结构明确的文档模式。 适用时选择提示整体格式、工具表示或微调后提示风格时。 用途/任务族:提示整体文档模式选择 初评说明:预计改善某些模型的格式理解;训练分布实际未知。 |
| 玄初 | 位置—重要性—依赖三维关系 | 元素的放置位置、相对价值与依赖/冲突共同决定组装方式。 适用时当多个提示元素相互影响时 用途/任务族:提示元素组合的相互影响识别 初评说明:预计提示检查互相冲突与顺序相关性。 |
| 玄初 | 行为模式图 | 用关键变量随时间的轨迹识别系统动态 适用:用于第3章 深入思考所讨论的系统分析情境。 用途/任务族:开发流程与故障变化模式观察 初评说明:预计比单时点截图更易看到延迟和波动。 |
| 玄初 | 反馈速度条件 | 理论—实践循环速度至少要跟上客体变化速度。 适用 对象快速变化、反馈有时滞时 用途/任务族:快速变化对象的证据新鲜度检查 初评说明:预计提示日志、版本或观测已经过期。 |
| 玄初 | 反馈过度 | 理论修正幅度过大可造成认识在极端之间振荡。 适用 观察到反复全盘否定与反向修正时 用途/任务族:反复大幅修改方案的振荡风险识别 初评说明:预计提醒只更新被新证据影响的假设。 |
| 黄高 | 网络效应 | 使用者、连接节点、互操作对象及生态资产增加与网络价值上升的解释关系。 问题:使用者、节点、互操作对象与生态资产的增加如何关联网络价值。 机制:更多使用者、节点、互操作对象和生态资产与系统价值上升相联系。 |
| 黄高 | 自然化认识论(Naturalized epistemology) | 原文用途:承认人类/模型都有系统性偏误,用流程与工具把偏误外包给检查器。 问题:承认人类/模型都有系统性偏误,用流程与工具把偏误外包给检查器。 机制:- 默认自动化:lint+format+类型检查+测试 - 高风险路径:必须性质测试/模糊测试/运行时校验 - 结论至少双证据(测试+指标) 预期结果:常见误判点及自动化防线。;高风险路径的性质/模糊/运行时校验。 |
| 黄高 | 合成模型 | 用层级组合、相互作用、跨层约束与涌现解释复杂形态如何逐层构成。 问题:有限微观规则如何经组合、变异与反馈生成具有新规律的高层级结构。 机制:基础单元→组合规则→结构形成→跨层约束→宏观涌现→经验检验→模型更新;各层规律受到上下层耦合、反馈与边界条件限制。 条件:外推依赖可检验预测与模型选择。 限制:跨尺度映射可能欠识别、欠决定;同一宏观结构可对应多种微观机制。;弦、量子几何、全息原理与涌现时空等更深层假设仍属开放研究。 预期结果:解释复杂形态如何由低层级单元及其相互作用逐层构成 |
| 黄高 | 预测加工与模型更新 | 在不完备信息下,以经验、假设与新证据形成现实表征,并用预测误差修正内部生成模型。 问题:控制证据生成机制,会在多大程度上约束主体可接受的现实模型。 机制:经验→假设→选择→推演→检验→更新;感知与行动提供证据,依据预测误差调整内部生成模型。 条件:输入、反馈与证据判准具有相对稳定性。 限制:这些条件被持续操控时,可能引发可识别性不足、证据欠决定及外推偏差。 预期结果:解释主体如何在不完备信息下形成并修正现实表征 |
| 黄高 | 变量名索引维护 | 建立统一变量索引,列出名称、说明、位置和出现频率供团队与 AI 维护。 问题:变量命名如何统一登记和维护。 机制:创建变量名大全文件,按变量名、描述、文件路径和出现频率组织条目。 预期结果:统一命名、方便全局搜索与统一管理/重构,降低命名冲突和语义不清风险。 |
| 黄高 | 3.48 沉默原则 | 3.48 沉默原则 — 沉默原则要求成功时没有必要就不要输出噪声 适用判断:命令正常运行却产生大量无价值输出时行动:默认保持安静,只在需要的信息或错误出现时输出理由:低噪声便于组合和自动化,也让异常更突出 用途/任务族:命令成功输出控制 初评说明:仅预测在常规命令组合中满足低噪声输出要求;不据此预定超越合理基线的系统性增益。 |
| 黄高 | 3.56 小就是美 | 3.56 小就是美 — 小就是美强调程序规模越小越容易理解、验证和组合 适用判断:一个工具开始承担过多功能时行动:拆成更小的程序或模块理由:小规模降低复杂度并促进复用 用途/任务族:过大工具规模初筛 初评说明:预计能在常规工具设计中发现规模膨胀;只有大小判断,不能直接预期稳定的整体收益。 |
| 黄高 | 开源社区三问题 | 吸引贡献、降低门槛、留住贡献者;执行顺序优先解决留存。 使用:建设或修复开源贡献者社区时 用途/任务族:开源贡献流程规划 初评说明:预计能在限定社区任务中提出留存、门槛与吸引的常规检查;不预定顺序对所有社区有稳定收益。 |
| 黄高 | 空间—时间双重约束 | 空间和时间被视作编程的两极资源约束。 适用:做性能、资源和交付权衡时 用途/任务族:时间与空间资源权衡入门 初评说明:预计可在常规资源讨论中提出双重约束;不能覆盖正确性、权限和全部交付因素。 |
| 黄高 | 自主性—效率关系 | 会议、干预和固定作息会损害知识工作的效率与乐趣;交付清楚时自主性更重要。 适用:设计开发团队管理方式时 用途/任务族:有明确交付的团队自主性 初评说明:仅预计为限定管理情境提供常规提醒;不把会议、作息和干预一概视为低效原因。 |
| 黄高 | 观念桥梁 | 面对身份绑定的固执观点,堆积事实可能无效;需要能连接对方本性与现实的观念。 适用:做高阻力说服和变革沟通时 用途/任务族:高阻力变革沟通提醒 初评说明:仅预计在限定说服任务中提醒理解对方立场;缺可验收操作安排,不预定稳定沟通增益。 |
| 黄高 | 领导退出准则 | 组织成熟的一个标志是它能在没有持续指引的情况下运行,领导可以退出。 适用:设计组织能力与继任机制时 用途/任务族:组织继任与持续指引讨论 初评说明:预计能在常规继任任务中提出独立运行目标;不把领导离开直接当组织成熟证据。 |
| 黄高 | 性能数字锚点 | EPUB第62–69节 · 08-经验总结:必须熟记的一组常用性能数字 核心思想:建立“性能数字直觉”可以快速筛出异常,但课程反复强调这些数字只用于量级判断,具体值会随产品、负载和技术演进而变化。 关键框架 性能数字锚点 行动要点 存储、CPU/内存、OS和网络应分别记住大致量级。延迟单位换算必须熟练:s→ms→us→ns每级1000倍。数字锚点用于初筛,最终判断仍要回到具体系统测量。 存储参考量级 课程图表给出三类介质的示例性能。 HDD:随机4KB I/O延迟约8 ms,图表带宽约150 MB/s,随机IOPS约120。SATA SSD:约100 us、500 MB/s、30K IOPS。NVMe SSD:约20 us、4 GB/s、400K IOPS。 CPU与内存参考量级 课程图表用访问层级展示延迟差异。 寄存器约1周期/0.5 ns。L1约4周期/2 ns;L2约12周期/6 ns;L3约50周期/20 ns。本地DRAM约200周期/100 ns,远端DRAM约400周期/200 ns。 网络RTT参考量级 课程按距离给出端到端RTT锚点。 机柜内部<0.1 ms,数据中心内部<0.5 ms。北京—深圳约2000公里/20 ms,上海—乌鲁木齐约4000公里/40 ms,中国—美国约10000公里/100 ms。这些都是量级参考,实际路径和包大小会改变结果。 用途/任务族:历史性能量级初筛 初评说明:预计能在常规数量级检查中达标;源文明确是时代与负载相关锚点,不预定当前硬件精确收益。 |
| 黄高 | 容量二分搜索 | 在SLA约束下用数值计算和二分搜索求最小所需容量 适用:给定流量与SLA反推复制容量时 用途/任务族:SLA容量搜索方向提示 初评说明:仅预计为有独立容量判定能力的常规搜索提供方向;卡片缺单调性、界限与终止规约,不借D041补齐。 |
| 黄高 | TCP队列三分诊断 | SendQ/RecvQ判别 TCP流控队列提供跨主机的快速责任隔离。 RecvQ≠0:接收端应用没及时read。SendQ=0且RecvQ=0:发送端应用没持续提供数据。SendQ≠0且RecvQ=0:数据积在发送端,网络传输慢。 用途/任务族:TCP两端队列候选根因初筛 初评说明:仅预计常规初筛有用;三式不是充分因果判据,不能据SendQ与RecvQ单独宣布网络或应用根因。 |
| 黄高 | Logprobs 置信诊断 | 读取词元概率,观察模型对生成选择的相对把握。 适用时当需要分类置信、异常提示或候选比较时 用途/任务族:词元选择相对概率诊断 初评说明:预计只支持有限的词元偏好观察,不支持事实置信或用户正确率判定。 |
| 黄中 | 符号序列空间与有效知识子集 | 在符号序列空间中生成候选,由经验检验估计有效性,以可计算近似压缩实验搜索空间。 问题:经验验证能否成为可计算判别机制,计算可以在什么边界内替代部分实证发现。 机制:实例→假设→选择→演绎→检验→更新;模型生成候选,代理结合逻辑、形式验证、数据、仿真与人类反馈估计有效性。 条件:验证信号可识别、评价独立、分布稳定。 限制:受欠决定性、分布外外推、代理偏差与反馈自证约束。 预期结果:验证诱导的有效性函数的可计算近似,以及对实验搜索空间的压缩。 |
| 黄中 | 递归生成器自优化(仓内形式模型) | 生成器先产生产物,优化器改进产物,元生成器再据此更新生成机制;讨论生成器序列的不动点。 问题:如何把单个输出的优化转向生成机制自身的迭代更新。 机制:P=G(I)→P*=O(P,Ω)→G′=M(G,P*);反复迭代生成器空间上的自映射Φ。 条件:源文只在满足适当连续性或压缩性条件时讨论以迭代极限获得不动点。 限制:源文称生成器序列“可能收敛”,形式表示和自指结构本身不是实际改进或工程收敛的证明。 预期结果:源文目标是稳定生成能力,而非仅一个具体优化输出。 |
| 黄中 | 正确方式工程观 | 相信可落地的正确方式存在,在资源足够时优先寻找能长期成立的方案。 使用:面对技术问题、团队分歧或因疲劳准备妥协时 用途/任务族:困难技术问题的探索动机 初评说明:仅预计作为不轻易妥协的常规提醒有用;信念不能证明正确解存在、唯一或资源可达。 |
| 黄中 | 技术使命筛选器 | 技术更擅长消除物质、能源、空间和时间约束,对直接改变人的思维与能力更有限。 使用:评估软件创意的目标与边界时 用途/任务族:技术创意边界初筛 初评说明:仅预计在常规目标讨论中提醒约束边界;不把物质与人的二分当可行性判据。 |
| 黄初 | 项目失败三条件 | 管理者不懂软件、技术负责人不爱编码、程序员缺乏长期承诺被列为三类高风险条件。 适用:做项目组织风险检查时 用途/任务族:组织风险的寓言性假设提出 初评说明:只预计可提示常规讨论中的待查组织问题;人格与承诺标签不能作为失败、概率或绩效判据。 |
| 天阶高级 | 拼好码 | 在既有能力空间中匹配需求、选择方案并编排业务,用低自研成本获得可验证、可替换、可回滚的系统。 问题:如何平衡复用效率、业务差异与长期演化。 机制:需求→候选能力→选择→适配→编排→检验→更新;成熟组件承担通用复杂度,薄胶水表达领域差异,测试与CI提供经验检验。 条件:方案可识别、维护稳定、接口可隔离。 限制:供应链不可观测、依赖锁定或关键约束超出现有能力时,复用可能转化为系统性风险。 预期结果:需求匹配、方案选择与业务编排,以及可验证、可替换、可回滚的系统。 |
| 地阶高级 | 第一性原理 | 审查结论的前提,区分事实、假设、偏好与惯例,从事实约束重推最小路径。 问题:经验惯例绑架需求,或复杂方案无法解释其必要性。 机制:写结论→审查前提→区分事实/假设/偏好/惯例→保留事实约束→重推路径。 条件:需求受经验做法影响,或需要核对默认方案是否成立。 预期结果:基于事实约束的最小可行路径。 |
| 地阶高级 | 形式化方法(轻量形式化) | 原文用途:减少非法状态、约束模型输出、让行为可检查可累积。 问题:减少非法状态、约束模型输出、让行为可检查可累积。 机制:- **先规格**:类型 + schema + 不变式 + 错误集合(异常或 error object)+ 复杂度约束(可选) - **再检查器**:类型检查 + 运行时校验 + 断言/契约 + 性质测试 - **最后实现**:逐条映射规格(谁保证哪条约束) 预期结果:类型、schema、不变式与错误语义规格。;类型/运行时校验、契约和性质测试。;实现与规格的满足关系说明。 |
| 地阶高级 | 方法论工具箱总体作业流 | 用现象卡片、规格、检查器、最小实现、反例与收敛重构组织工程交付。 问题:如何将探索组织为可检查、可证伪和可维护的工程产出。 机制:现象卡片→规格化→检查器→最小实现→反例驱动→收敛重构。 预期结果:现象/意图/情境/边界卡片、规格与检查器、最小实现、失败模式及维护后的稳定版本。 |
| 地阶中级 | 胶水原则 | 成熟能力能以可接受代价可靠满足需求时默认复用,自研核心须证明合理性。 问题:何时复用、何时自研通用底层能力。 机制:先查现成能力,只写必要连接、编排、适配、隔离和业务表达。 条件:成熟方案能以可接受的成本、风险和复杂度可靠满足需求。 限制:自研不是默认选项,但可以成为有合理依据的例外。 |
| 地阶中级 | 反事实推理(Counterfactuals) | 原文用途:系统性覆盖异常路径,降低线上事故。 问题:系统性覆盖异常路径,降低线上事故。 机制:- 问"如果 X 不成立会怎样":超时、乱序、重复、空值、弱网、权限缺失、时钟漂移 - 把反事实转成测试矩阵与降级策略 预期结果:异常条件的反事实场景矩阵。;风险对应的测试、降级与错误语义。 |
| 地阶中级 | 溯因排错法(仓内操作版) | 原文用途:debug/性能退化时,比穷举更快定位"最可能原因"。 问题:debug/性能退化时,比穷举更快定位"最可能原因"。 机制:- 列候选原因 → 为每个原因写最便宜的区分性实验(日志点/开关/最小基准) - 用证据淘汰而不是凭感觉改代码 条件:适用情境:debug或性能退化的原因排查。 预期结果:候选原因及低成本、高区分度的实验与预期观察。;用证据淘汰原因的排查结果。 |
| 地阶中级 | 错误认识论(Error epistemology) | 原文用途:系统化"我们会如何错",比事后补洞更省。 问题:系统化"我们会如何错",比事后补洞更省。 机制:- 先做失败模式清单(空值/乱序/重复/并发/权限/超时/编码/浮点等) - 每类至少一个测试;明确错误语义(raise / error object / log+metric) 预期结果:按风险排序的失败模式清单及对应测试。;统一错误模型与示例响应/异常层级。 |
| 地阶中级 | 实验哲学(x-phi) | 原文用途:交互与默认策略别靠直觉,用数据决定。 问题:交互与默认策略别靠直觉,用数据决定。 机制:- 把争议点改成可测实验(A/B 默认值、错误文案、重试策略) - 指标:误用率、重试率、成功率、工单率、完成时间 条件:适用情境:交互与默认策略存在设计争议,可将争议改成可测实验。 预期结果:实验分组、指标、样本、持续时间与判定阈值方案。;埋点字段与分析方法。 |
| 地阶中级 | 固定点收敛系统 | 以分层闭环控制,将意图转成可执行、可验证的目标状态,并按失效层级调整行动、策略或目标。 问题:动态环境下,如何对趋近目标的过程实施可验证控制。 机制:观察→差距识别→行动→验证→修正;行动失效则升级策略,策略失效则复审目标,目标不可确定则回退需求或交由人工裁决。 条件:目标可识别、状态可观测、验证准则一致,策略空间中存在有效控制路径。 限制:缺乏稳定性或充分反馈时,“收敛”只能作为架构期望。 预期结果:可执行、可验证且受变更约束的目标状态,以及现实与目标偏差的持续缩小。 |
| 地阶中级 | 最小先验条件下的代理增强型任务求解 | 在陌生领域固定完成条件、约束与验收标准,以外部知识、成熟能力、PoC与代理降低求解成本。 问题:有限认知与成本下,如何设计可校验、可复用、可更新的任务求解机制。 机制:任务定义→外部知识检索→能力复用→模型选择→关键假设PoC→实现→验证与确认→经验更新 条件:外部知识源质量、工具可调用性、接口可集成性及关键假设的可识别性。 限制:信息欠决定、外推失效或权限扩大时,可能放大系统性误差与操作风险。 预期结果:需求覆盖下的任务求解方案、关键假设PoC、实现与验证确认;选型、实验、Runbook及失败记录用于更新。 |
| 地阶中级 | 问题界定与求解闭环(仓内体系版) | 用目标、现状、差距与标准界定问题,在目标/约束/对象下选择路径,再用反馈修正。 问题:如何避免解错问题,并让求解过程通过结果反馈趋近目标。 机制:定义目标/现状/差距/标准→按目标、约束和对象构造路径→执行→比较结果与目标→修正→再执行。 条件:问题定义的目标、现状、差距和标准须清楚;路径需考虑时间、资源、成本、风险、规则、能力上限与环境。 限制:四项定义不清,努力可能是在解错题;没有约束的方案往往只是空想。 预期结果:明确的问题定义、受约束的求解路径及经反馈修正的结果。 |
| 地阶中级 | 6.2 契约式设计 | 6.2 契约式设计 — 契约式设计用前置条件、后置条件和不变式明确调用双方责任 前置条件由调用方负责;后置条件由被调用方负责;面向对象场景还包含类不变式。外部用户输入先由调用方做合法性验证;断言用于暴露程序员预想之外的错误。书中要求断言表达式避免副作用,并把断言定位为开发/维护阶段工具。视觉时序图明确展示“外部输入验证 → 前置条件 → 函数处理 → 后置条件 → 返回结果”。适用判断:函数之间需要明确合法输入、结果保证和对象状态约束时行动:把契约写清并用断言检查程序员错误,违约时尽早失败理由:责任边界明确能简化函数内部并更早暴露理解偏差 用途/任务族:跨模块责任与不变式约束 初评说明:输入验证、前后条件及不变式区分责任,预计在困难接口组合中较有力减少状态与调用错误。 |
| 地阶中级 | 性能工程“医生”闭环 | EPUB第27–33节 · 03-导读:专栏是怎么设计的?需要哪些知识? 核心思想:性能工程师应像医生一样:先收集症状和数据,再测试与诊断根因,最后实施治疗并复检;这要求横跨软硬件和组织协作。 关键框架 性能工程“医生”闭环性能工程知识矩阵 行动要点 性能问题通常跨软件、OS、CPU、内存、存储和网络。搜索和经验只能辅助定位,最终要靠数据与实验确认。复杂问题往往需要跨团队推动。 医生式诊断闭环 性能工作应从现象到证据、从根因到验证形成闭环。 先观察用户和系统症状。设计测试收集可重复证据。定位瓶颈与根因。实施优化后重新测量。 用途/任务族:跨软硬件困难性能诊断 初评说明:症状、可重复测试、根因与复测结合,预计在复杂资源交互任务中较有力减少错误治疗。 |
| 地阶中级 | 七步性能测试闭环 | EPUB第75–84节 · 10-性能测试的规划和步骤:为什么性能测试不容易一蹴而就呢? 核心思想:可靠性能测试遵循七步闭环:对象→指标→度量→期望→规划→执行→分析;后三步需要反复迭代。 关键框架 七步性能测试闭环 行动要点 负载发生器自身不能成为瓶颈。指标应覆盖响应时间、吞吐和资源使用。测试环境和流量必须可复现,结果不满意时回到前序步骤。 七步流程 测试的前四步先定义“测什么、如何判定”。 确定SUT。确定性能指标。确定统计度量。确定期望/阈值。 迭代执行 规划、执行和分析是持续迭代部分。 负载和数据要接近目标场景。先短测再长测、逐步加压。分析结果后可回退修改计划再测。 用途/任务族:复杂性能测试设计与判定 初评说明:对象、指标、度量、阈值到可复现执行分析,且限制发生器瓶颈,预计在困难测试中较有力减少无效结果。 |
| 地阶初级 | 奥卡姆剃刀 | 在相同解释、验收及关键约束下优先选择更少假设、结构、依赖和状态的方案。 问题:多个满足同一目标的方案如何取舍。 机制:在不牺牲关键约束的前提下少引入不必要实体。 条件:能解释同一现象、满足同一验收标准。;不牺牲关键约束。 限制:不是无条件的“越简单越好”。 |
| 地阶初级 | 状态空间思维模型 | 状态空间思维模型把“状态、变化、序列、决策树、多元宇宙”整合在一起,用来分析一个系统从当前状态可能走向哪些未来状态。 问题:系统从当前状态可沿哪些动作进入哪些未来状态,哪些路径可逆或可回滚。 机制:描述当前状态→列出动作→展开后续状态→标记不可逆/高风险/可回滚路径→选择保留选择权且接近目标的路径→建立检查点与回退手段。 预期结果:当前状态、可行动作与可能后续状态的描述。;不可逆、高风险、可回滚路径标记及检查点选择。 |
| 地阶初级 | 可证伪主义(波普尔) | 原文用途:把"看起来对"变成"暂时无法证伪";显著降低隐藏 bug。 问题:把"看起来对"变成"暂时无法证伪";显著降低隐藏 bug。 机制:- 每个关键断言都要配一个能让它失败的测试(边界/随机/反例) - 优先性质测试而非只写示例测试 预期结果:关键断言对应的可失败测试,优先性质测试。 |
| 地阶初级 | 系统论/整体论(边界与反馈回路) | 原文用途:复杂系统容易在耦合点失控;缩短反馈回路提效最大。 问题:复杂系统容易在耦合点失控;缩短反馈回路提效最大。 机制:- 先画数据流/依赖边界:I/O 放边缘,核心逻辑保持纯函数 - 优先解耦高耦合点;把慢依赖换成桩/模拟以加速测试 预期结果:数据流、依赖边界与高耦合点分析。;可测试纯函数核心及I/O适配方案。 |
| 地阶初级 | 机制解释(Mechanistic explanation) | 原文用途:把"能跑"变成"可解释可维护";降低未来修改风险。 问题:把"能跑"变成"可解释可维护";降低未来修改风险。 机制:- 要求输出数据流:输入 → 中间状态 → 输出 - 对中间状态写不变式/断言;把解释与代码结构对齐 预期结果:输入、中间状态、输出的数据流机制说明。;中间状态的不变量及断言或类型保证。 |
| 地阶初级 | 计算哲学(Computational philosophy) | 原文用途:复杂状态与规则用"可运行模型/仿真/搜索"代替纯讨论。 问题:复杂状态与规则用"可运行模型/仿真/搜索"代替纯讨论。 机制:- reference 实现(慢但清晰)作为 oracle - optimized 实现(快/工程化)用差分测试锁死行为 - 用仿真/生成器自动探索边界 条件:适用情境:复杂状态与规则需要用可运行模型、仿真或搜索探索。 预期结果:清晰的reference实现与优化实现。;差分、仿真、生成器或状态机测试的反例。 |
| 地阶初级 | 近端因果机制 | 区分上游背景、传导环节与直接作用项,用干预、时序和反事实证据检验结果末端的生成机制。 问题:复杂生成过程中,什么层级的机制对特定结果最有解释相关性。 机制:结果界定→近邻原因识别→机制推演→经验检验→因果更新 条件:因果结构具有足够可识别性,关键中介未被遗漏。 限制:存在共同原因、反馈回路或多重充分路径时,近端解释可能欠决定,也难直接外推至更远层级。 预期结果:解释结果在何种局部条件下被即时产生 |
| 地阶初级 | 分而治之 | 把复杂整体拆成相对独立的小问题,分别求解,再集成为完整结果。 问题:如何将难以理解、实现和测试的复杂问题分解为可管理单元。 机制:按问题边界拆分→分别解决子问题→通过清晰接口集成。 条件:拆分尽量高内聚、低耦合,模块职责集中,通过清晰接口协作。 限制:边界不合理会造成耦合严重、接口混乱与集成困难。 预期结果:更清晰、易测试与维护的子问题,以及集成后的完整系统。 |
| 地阶初级 | 规约先于实现 | 先明确行为,再确定结构,最后落实代码。 问题:实现前如何安排规约、结构与代码的先后。 机制:行为先于结构,结构先于代码;源文将程序称为规约的影子。 |
| 地阶初级 | 故障可控与恢复优先 | 稳定不是永不出错,而是故障能够被发现、定位、隔离和恢复。 问题:有故障时系统怎样保持可控。 机制:围绕发现、定位、隔离、恢复组织稳定性能力,日志、监控、告警、追踪、降级、限流、回滚是其中部分。 限制:稳定不依赖永远不出问题。 预期结果:出问题时能够被发现、被定位、被隔离、被恢复。 |
| 地阶初级 | Dataset First 数据服务范式 | 稳定数据集服务优先按 dataset 分边界,先定契约、区分数据层、共享控制面并显式隔离 legacy。 问题:核心交付物为稳定数据集的服务怎样组织。 机制:顶层按 dataset 划分,先定义落表、字段语义、主键、时间与分区/刷新策略;数据层分开,控制面统一,legacy 只兼容转发。 条件:核心交付物是稳定数据集,而不是页面、接口或一次性脚本。;适用于事实/事件采集、周期快照、事件流与时间桶并存,以及长期补数、巡检、血缘和质量治理的数据服务。 限制:纯 API 网关、纯 Web 应用、纯交易执行服务、一次性脚本及不产出稳定 dataset 的临时任务不适合直接照抄。;迁移期 legacy 壳只能兼容转发,新逻辑不得回流旧路径。 |
| 地阶初级 | 新建数据服务作业流 | 先定数据集清单与契约,再建控制面,逐个实现数据集,最后补文档、验证和血缘。 问题:怎样新建数据服务。 机制:清单 -> contract -> registry/config/service_entry/runtime -> contract、writer、collect、backfill、validate、repair -> README、AGENTS、verify/CI、资源目录、血缘、smoke。 |
| 地阶初级 | 缓存生命周期与隔离约束 | 缓存必须审查对象、状态版本、容量、隔离、失效和观测,不假定本地缓存自动共享或全局一致。 问题:怎样避免缓存的正确性、隔离和成本误用。 机制:约束副作用与外部状态缓存,要求合理 key、容量上限、敏感数据隔离、失效策略及命中率观测;核对多进程和分布式语义。 条件:原文针对带外部状态、用户级敏感数据、大型返回值及多进程/分布式缓存场景提出相应约束。 限制:不应缓存带副作用函数或会频繁变化的数据。;单机或本地缓存不自动全局一致或进程共享。;避免计算不能以更高的内存和一致性成本为代价。 |
| 地阶初级 | 3.5 效应局部化 | 3.5 效应局部化 — 效应局部化要求相关行为和数据靠近,让修改影响尽量停留在小范围 适用判断:一次修改容易波及许多模块时行动:把共同变化的代码聚集,建立清晰边界并缩小依赖范围理由:影响面越小,理解、测试和修改越安全 用途/任务族:高传播变更的边界设计 初评说明:共同变化聚集并缩小依赖,预计在复杂联动修改中仍能压低遗漏和回归面。 |
| 地阶初级 | 3.10 变动率 | 3.10 变动率 — 变动率要求按照变化原因与速度组织代码,让一起变化的内容靠近、不同步变化的内容分开 适用判断:一个模块内的内容因不同原因以不同频率变化时行动:依据变化原因拆分职责,把同节奏变化的元素放在一起理由:不同变化轴混在一起会造成不必要的联动修改 用途/任务族:多变化轴模块划分 初评说明:按变化原因与速度组织结构,预计在多类需求迁移中持续减少无关联动修改。 |
| 地阶初级 | 3.11 软件架构基本技法 | 3.11 软件架构基本技法 — 软件架构基本技法是一组通过边界、抽象和分解来控制复杂性的通用工具 本组十项基本技法:抽象、封装、信息隐藏、打包、关注点分离、充足性/完整性/原始性、策略与实现分离、接口与实现分离、单一引用点、分治。适用判断:需要设计模块、接口和依赖结构时行动:综合使用抽象、封装、信息隐藏、分离和分治等技法理由:结构化控制复杂性可以限制变化传播并提升理解能力 用途/任务族:复杂系统模块与接口设计 初评说明:综合边界、分离和组合技法,预计帮助处理困难的依赖与集成任务;集合数量不构成评级理由。 |
| 地阶初级 | 3.14 信息隐藏 | 3.14 信息隐藏 — 信息隐藏要求主动隐藏可能变化的设计决策,只暴露稳定事实 适用判断:某项内部选择可能变化且不应影响调用者时行动:把易变决策放在模块内部,用稳定接口隔离调用方理由:隐藏变化点能把未来修改限制在局部 用途/任务族:易变决策隔离 初评说明:隐藏易变选择并暴露稳定事实,预计在困难的技术替换和需求迁移中仍限制修改传播。 |
| 地阶初级 | 3.16 关注点分离 | 3.16 关注点分离 — 关注点分离要求把不同问题域或责任拆开处理,避免相互纠缠 适用判断:一个模块同时处理多个独立关注点时行动:识别不同关注点并为其建立独立结构或层理由:分离后每个部分更容易理解、替换和测试 用途/任务族:交织职责的分离 初评说明:分离独立关注点预计在复杂替换和局部验证任务中仍提高可控性。 |
| 地阶初级 | 3.21 分治 | 3.21 分治 — 分治把复杂问题拆成较小、边界清晰的问题分别解决再组合 适用判断:问题规模超过一次性理解和处理能力时行动:沿职责、数据或流程边界分解,再定义清楚的组合方式理由:小问题更易理解、验证和复用,整体复杂度更可控 用途/任务族:复杂问题分解与再集成 初评说明:明确较小边界并定义组合方式,预计困难任务中仍降低单次理解负担;拆完未集成不算达标。 |
| 地阶初级 | 3.22 软件架构的非功能需求 | 3.22 软件架构的非功能需求 — 非功能需求从易变性、互操作性、效率、可靠性、可测试性和可复用性等维度约束架构质量 本书展开的非功能维度:易变性、互操作性、效率性、可靠性、可测试性、可复用性。3.22同时讨论安全性的保密性、完整性、可用性(CIA)视角。适用判断:方案功能正确但仍需评价长期质量时行动:逐项检查关键非功能属性,并根据语境权衡冲突理由:系统质量由功能之外的结构属性共同决定 用途/任务族:困难架构质量权衡 初评说明:同时审查非功能维度与CIA,预计在功能正确但质量冲突的任务中减少遗漏。 |
| 地阶初级 | 3.26 可靠性 | 3.26 可靠性 — 可靠性要求软件在预期条件下持续给出正确结果,并能控制故障影响 适用判断:错误可能造成较大业务或数据损失时行动:通过简单结构、检查、测试和故障隔离提高确定性理由:可靠性来自对错误和变化传播的持续控制 用途/任务族:高损失故障影响控制 初评说明:简单结构、检查与隔离预计在困难异常场景中仍约束错误传播;不是不故障保证。 |
| 地阶初级 | 3.27 可测试性 | 3.27 可测试性 — 可测试性要求设计让行为能被独立观察、输入可控、结果可验证 适用判断:测试难以编写或故障只能靠集成环境复现时行动:降低隐藏依赖,拆分职责并提供可控接口理由:可测试结构能更早发现回归并支持安全修改 用途/任务族:难观察和难复现行为设计 初评说明:可控输入、独立观察与显式接口预计在困难回归和迁移任务中仍改善验证能力。 |
| 地阶初级 | 3.36 安全原理 | 3.36 安全原理 — 安全原理要求面对异常与误用时限制损害,并把失败尽早暴露 适用判断:输入不可信、状态可能异常或错误代价高时行动:验证边界、隔离风险并在异常状态下安全失败理由:控制错误传播可以保护数据和后续处理 用途/任务族:不可信输入与高代价异常 初评说明:边界验证、隔离与安全失败预计在困难异常任务中仍保护数据与后续处理。 |
| 地阶初级 | 3.37 UNIX思想 | 3.37 UNIX思想 — UNIX思想以模块化、组合、清晰和简单等原则构造可协作工具生态 UNIX思想的十七项原则依次覆盖模块化、清晰、组合、分离、简单、简约、透明、健壮、表达/表示、最小意外、沉默、修复、经济、生成、优化、多样性、可扩展性。适用判断:设计命令行工具、服务或可组合模块时行动:优先小模块、文本/标准接口与可组合性理由:独立小工具通过清晰协议组合,整体更灵活 用途/任务族:可组合工具生态设计 初评说明:透明小模块和清晰协议预计在异构工具集成中仍减少联动故障与重复实现。 |
| 地阶初级 | 3.44 透明性原则 | 3.44 透明性原则 — 透明性原则要求系统的行为和状态可被观察,便于理解与诊断 适用判断:错误难以定位或运行机制过于隐蔽时行动:让关键状态、数据流和行为可检查理由:可见性让问题更容易理解和修复 用途/任务族:隐藏状态的困难诊断 初评说明:关键状态与数据流可检查,预计在跨模块异常中仍缩短候选根因定位范围。 |
| 地阶初级 | 3.49 修复原则 | 3.49 修复原则 — 修复原则要求失败应显著且尽可能早,错误信息要帮助定位原因 适用判断:程序无法可靠继续运行或输入严重异常时行动:显式报告并尽早终止或隔离,避免悄悄带错运行理由:延迟和隐蔽失败会扩大损害并增加排查难度 用途/任务族:错误早暴露与隔离 初评说明:显著且早期的失败预计在困难异常链中减少带错继续运行及损害扩大。 |
| 地阶初级 | 3.55 UNIX哲学 | 3.55 UNIX哲学 — UNIX哲学把小程序、单一职责、文本数据、组合与过滤器连接成工作方式 UNIX哲学的实践条目包括:小就是美、一件事做好、尽早原型、可移植性优先、文本数据、软件杠杆、shell脚本、避免交互式接口、过滤器化。适用判断:构建可复用工具链或自动化环境时行动:让工具小而专一,以文本/管道连接,并优先组合现有能力理由:统一简单接口使工具之间产生杠杆效应 用途/任务族:异构自动化工具链构建 初评说明:专一工具通过简单接口组合,预计在困难工具链重组中仍能复用与局部替换。 |
| 地阶初级 | 3.61 充分利用软件的杠杆效应 | 3.61 充分利用软件的杠杆效应 — 软件杠杆效应来自复用既有程序与自动化,让少量代码驱动大量工作 适用判断:已有工具能够完成部分任务时行动:先搜索并组合现有能力,再补最少的新代码理由:复用成熟工具可以用更低成本获得更大产出 用途/任务族:成熟能力复用与业务编排 初评说明:复用已有工具再补必要代码,预计在困难集成任务中仍降低自研核心的维护投入。 |
| 地阶初级 | 4.2 耦合度 | 4.2 耦合度 — 耦合度衡量模块之间依赖,应减少强耦合并让依赖指向更稳定的部分 耦合类型从更强/更差到更弱/更好包括:内容、公共、外部、控制、标记、数据;书中还提醒关注混合耦合。除耦合种类外,还要看依赖数量、方向以及依赖目标的稳定性。视觉图示展示多种模块依赖形态,已纳入视觉复核。适用判断:一个模块了解或控制另一个模块过多内部细节时行动:降低内容/公共/控制等强耦合,优先简单数据接口和稳定依赖理由:较弱耦合能限制变化传播并提高独立性 用途/任务族:复杂依赖关系与稳定性治理 初评说明:同时看类型、数量、方向和稳定目标,预计在困难依赖迁移中仍缩小传播面。 |
| 地阶初级 | 5.3 性能调优的箴言 | 5.3 性能调优的箴言 — 性能调优的核心是避免过早优化,用测量驱动针对热点的改进 调优流程:先证明有性能需求 → 测量并找热点 → 优化热点 → 再次测量 → 验证正确性。涉及架构级性能约束时应尽早做测量性实验,避免把“不要过早优化”误解为完全不考虑性能。适用判断:性能问题被明确提出或指标不达标时行动:证明需要、测量定位、优化热点、再次测量并验证正确性理由:大多数性能收益集中在少数热点,盲目优化会损害清晰度 用途/任务族:困难性能问题测量与复测 初评说明:明确需求、热点、复测及正确性形成闭环,预计在困难优化任务中仍抑制错误收益判断。 |
| 地阶初级 | 5.5 一步一步走 | 5.5 一步一步走 — 一步一步走要求一次只做一个小变更并立即验证,再继续下一步 适用判断:重构、排错或替换工作范围很大时行动:拆成可回滚的小步,每步完成后测试或确认理由:小步能缩小故障来源并保持系统始终接近可工作状态 用途/任务族:高风险重构的增量验证 初评说明:小变更、立即验证和回滚余地预计在困难替换任务中仍减小故障定位与恢复范围。 |
| 地阶初级 | 6.1 曳光弹 | 6.1 曳光弹 — 曳光弹用可运行的最小端到端骨架获取真实反馈,并持续演化为最终系统 曳光弹代码会留在最终系统并持续充实;一次性原型的目标主要是学习,验证后可以丢弃。适用判断:架构路径、集成链路或需求理解存在不确定性时行动:尽快打通一条真实端到端路径,再沿骨架逐步充实理由:真实环境反馈能早暴露接口和集成问题 用途/任务族:集成不确定性下的演化骨架 初评说明:真实端到端路径持续演化,预计在困难集成任务中更早暴露边界错误;一条路径不代表全部验收。 |
| 地阶初级 | 6.3 防御性编程 | 6.3 防御性编程 — 防御性编程把不可信输入挡在边界外,并区分可预期错误与代码缺陷 外部数据错误属于“预想之内”,使用错误处理;内部参数违约属于“预想之外”,用断言暴露。“路障战术”在脏区与干净区之间建立验证/消毒边界,视觉图示已核验。错误处理策略可包括无害值、跳过无效数据、保留旧值、近似值、日志、返回错误、集中处理或明确提示;选择取决于软件目标。书中区分“正确性”与“健壮性”的取舍,强调依据系统用途决定失败策略。适用判断:系统接收用户、文件、网络或其他外部数据时行动:在边界验证和净化数据;预期错误做错误处理,内部不可能状态用断言暴露理由:早期隔离错误可防止损害向系统深处传播 用途/任务族:不可信数据与内部缺陷隔离 初评说明:脏净边界和错误类型分开预计在困难异常输入中仍降低传播风险;错误策略须服从真实业务合同。 |
| 地阶初级 | 7.8 重新发明车轮 | 7.8 重新发明车轮 — 重新发明车轮提醒先利用已有标准、库和协议,仅在差异化、控制权或学习价值足够时自建 适用判断:准备实现已有成熟解决方案能覆盖的能力时行动:先调查现有方案,再基于真实缺口决定是否自建理由:重复造轮会承担设计、测试和维护成熟组件已付过的成本 用途/任务族:成熟方案与自研边界 初评说明:先调查标准方案并按真实缺口自建,预计在困难工程选型中降低重复承担的验证与维护成本。 |
| 地阶初级 | 健壮设计流程 | 标准化组件、可替换连接、增量组装、逐步测试形成可并行且可演化的系统。 使用:从零设计或大规模重构系统时 用途/任务族:组件增量组装与演化 初评说明:标准件、可替换连接及逐步测试预计在困难集成中仍缩小返工;不把任意分割视作可并行。 |
| 地阶初级 | 根因与不复发 | 修复目标应达到问题不再反复需要关注,并用可维护测试保护结果。 使用:修复重复故障与遗留问题时 用途/任务族:反复故障根因修复 初评说明:不复发目标与可维护测试保护预计在困难遗留缺陷中减少重复关注和返工。 |
| 地阶初级 | 测试即获取有效知识 | 测试通过断言、边界、假设和实验,为系统行为提供可验证知识。 使用:选择测试类型、构造测试套件和评估测试价值时 用途/任务族:困难测试目标与oracle审查 初评说明:断言、边界与假设对应可验证知识,预计在困难验证任务中仍减少无信息的绿灯。 |
| 地阶初级 | 阿姆达尔定律 | 阿姆达尔定律 若可优化部分占比为P、加速N倍,则新运行时间为(1-P)+P/N。 总体加速比为1/((1-P)+P/N)。当P有限时,继续提高N会出现明显收益递减。 用途/任务族:优化上界与并行收益判断 初评说明:公式可预测未优化部分对总收益的约束,预计在困难资源取舍中减少高估;只限模型前提成立。 |
| 地阶初级 | 利特尔法则 | 利特尔法则 稳定系统的在途量N等于到达/吞吐率X乘以平均停留时间W。 N=XW可把并发、QPS和响应时间联系起来。容量不足时可从降低W或提升处理能力两端思考。 用途/任务族:稳定系统并发与平均容量核对 初评说明:同边界平均在途量、吞吐和停留时间关系预计在困难容量判断中发现口径矛盾;不换算P99或失稳瞬时量。 |
| 地阶初级 | 数据分析陷阱清单 | 分析边界 数据分析结论需要机制验证。 相关性不能直接证明因果。脏数据会制造虚假模式。指标名称相同也可能因系统机制不同而含义不同。 用途/任务族:脏数据与跨系统指标语义审查 初评说明:相关非因果及同名指标未必同义的约束,预计在困难迁移分析中仍减少虚假根因。 |
| 地阶初级 | 九条性能测试经验 | EPUB第96–101节 · 12-九条性能测试的经验和教训:如何保证测试结果可靠且可重复? 核心思想:可重复性能测试依赖九条经验:规划阶段记录环境、快速复位、准备足够负载;执行阶段控制日志、稳定环境、理解单参数调优局限;分析阶段由易到难、多法验证、对照生产。 关键框架 九条性能测试经验 行动要点 每次测试都应可追溯到完整环境与配置。一次只调一个参数有利于解释,但可能错过参数交互和全局最优。根因结论最好由不同测试或生产数据交叉验证。 规划三条 测试前的工程化准备决定结果是否可信。 详细记录环境和过程。快速复位配置与缓存。准备足够而多样的负载请求和数据。 执行与分析六条 执行控制和结果解释同样重要。 日志适量输出,避免监控本身扰动。环境要稳定。参数调节要理解交互。根因由易到难。多种测试互相验证。最终与生产行为比较。 用途/任务族:困难性能实验的重复与解释 初评说明:环境记录、复位、扰动控制与多法验证预计在困难复测和迁移中保留可比性。 |
| 地阶初级 | 持续性能工程集成模型 | EPUB第102–107节 · 13-性能测试的工程集成:如何与产品开发和运维业务有机集成? 核心思想:性能测试应从独立、人工、一次性的活动演化为与CI/CD和运维监控集成的持续性能工程。 关键框架 持续性能工程集成模型 行动要点 性能回归应进入持续集成流水线。上线后的监控、诊断和自动化优化需要统一数据基础。AIOps的前提是持续、可信的数据采集。 与开发集成 持续测试使性能回归更早暴露。 构建/提交后自动执行关键性能检查。阈值不满足时可阻止发布或触发回滚。 与运维集成 生产监控将一次性测试扩展为持续反馈。 自动采集指标。自动检测异常。条件成熟时可自动诊断和建议优化。 用途/任务族:性能回归的持续反馈 初评说明:关键检查与运维数据持续接入预计在长期变化和迁移任务中更早发现性能退化。 |
| 地阶初级 | 瓶颈分层分析 | 瓶颈分层 根因定位从“哪里受限”逐步缩小到具体资源和机制。 先找可疑服务/节点。再区分CPU、内存、存储、网络等资源。继续研究资源内部行为和相互作用。 用途/任务族:困难跨资源瓶颈缩小 初评说明:从服务节点到资源再到内部机制,预计复杂问题中仍减少盲目调参和定位范围。 |
| 地阶初级 | 网络分层诊断 | EPUB第140–148节 · 18-网络篇:如何步步拆解处理复杂的网络性能问题? 核心思想:网络性能要分层看连通性、延迟、带宽/吞吐与利用率,从单机协议栈、数据中心拓扑到互联网/CDN逐层定位。 关键框架 网络分层诊断CDN边缘缓存流程 行动要点 跨机架/数据中心链路存在超订,聊天型服务尽量近距离部署。TCP丢包会显著降低吞吐。CDN用DNS导向边缘,未命中回源,命中直接返回。 网络三维指标 连接是否可用、传输延迟和有效带宽构成基本诊断入口。 单机关注协议栈和网卡。数据中心关注拓扑和超订。互联网关注路由距离和丢包。 用途/任务族:复杂跨域网络性能诊断 初评说明:单机、数据中心和互联网分层预计在困难端到端路径中仍减少层间误归因。 |
| 地阶初级 | 性能优化六原则 | EPUB第149–154节 · 19-性能优化六大原则:三要三不要,快速有效地进行优化 核心思想:优化前先遵循“三要三不要”:要抓最大瓶颈、确诊根因、考虑多场景与全局;不要过度优化、过早优化、肤浅调参。 关键框架 性能优化六原则 行动要点 优化收益要与成本和风险比较。根因未确认时直接调参容易把问题转移或暂时掩盖。单一场景最优不等于系统全局最优。 三个要 有效优化先确定价值、根因和边界。 优先最大的瓶颈。确诊问题根因。考虑各种场景和权衡。 三个不要 材料要求避免三类常见误区。 不要反常态地过度优化。不要在缺乏数据时过早优化。不要停留在表面参数微调。 用途/任务族:多场景困难性能优化取舍 初评说明:确诊根因并考虑全局与成本预计在困难场景迁移中仍抑制局部最优和表面调参。 |
| 地阶初级 | 性能优化十大策略 | EPUB第155–162节 · 20-性能优化十大策略:如何系统地有层次地优化性能问题? 核心思想:十大优化策略可以按五对互补思想组织:时空转换、提前/延后、并行/异步、缓存/批量、算法/数据结构。 关键框架 性能优化十大策略 行动要点 策略选择取决于瓶颈机制,不能机械套用。每种策略都可能把成本转移到另一种资源或阶段。算法和数据结构仍是基础性的高杠杆优化。 五对策略 十种策略分别改变资源、时间或执行组织。 时间换空间 / 空间换时间。预先处理 / 惰性处理。并行 / 异步。缓存 / 批量合并。先进算法 / 高效数据结构。 工程取舍 优化不是无代价加速。 预取可能污染缓存。缓存占用空间且引入一致性问题。并行增加同步与竞争。批量提高吞吐但可能增加单请求等待。 用途/任务族:复杂资源瓶颈的策略权衡 初评说明:互补策略同时说明污染、一致性、同步和等待代价,预计困难资源取舍中仍能减少错用。 |
| 地阶初级 | 跨层STW根因链 | EPUB第183–190节 · 24-跨层案例:如何优化程序、OS和存储系统的交互? 核心思想:跨层性能问题必须沿应用→JVM→OS→文件系统→存储追踪;案例中长STW的根因是GC日志write()被OS写回和I/O压力阻塞,而非GC算法本身。 关键框架 跨层STW根因链 行动要点 STW总时长可以包含GC之外的同步日志阻塞。对照实验用150MB/s后台I/O复现了问题。解决方案需通过分离/异步日志等方式后重新测量。 根因链 JVM暂停表象最终落到操作系统和存储交互。 GC期间同步写日志。OS脏页写回与文件系统日志产生I/O压力。write()阻塞被计入STW。 解决方案 可减少或隔离GC日志路径的同步I/O风险。 使用异步GC日志会有丢失尾部日志的风险。降低其他后台I/O。把GC日志放到独立/更快存储或tmpfs。材料验证中,分离到SSD后大暂停显著消失。 用途/任务族:困难跨层暂停根因追踪 初评说明:沿应用、JVM、OS、文件系统和存储核链并复测,预计困难交互故障中仍避免只改GC算法。 |
| 地阶初级 | 容量规划闭环 | 容量规划流程 规划输入包括单位容量、业务增长、预算和约束。 容量测试确定单机/单位能力。历史/类比/主观有据推测用于需求预测。预算限制可改变需求或触发追加申请。最终形成订购计划并持续迭代。 用途/任务族:困难需求预算下的容量规划 初评说明:单位能力测量、需求预测与预算约束迭代预计困难规划中仍能减少错订;计划不等于已到货可用容量。 |
| 地阶初级 | 信息隐藏 | 让每项重要设计知识尽量由一个模块拥有,减少跨模块依赖。 适用:划分模块职责与数据表示时 用途/任务族:跨模块知识重复与联动变更 初评说明:预计在多调用者、多变化点的困难维护中仍能约束扩散;不是已测迁移结果。 |
| 地阶初级 | 提示注入分层防御 | 来源标记、角色隔离、输入清洗作为上下文防线,并由权限/沙盒/审批兜底。 适用:处理网页、邮件、文档等不可信外部内容时 用途/任务族:不可信仓库材料的提示注入防御 初评说明:预计在复杂检索和工具链中仍能用不同层的约束控制越权;未做攻击实验。 |
| 地阶初级 | 状态栏代码维护原则 | 确定性状态优先由代码增量维护,避免让 LLM 一次性重读长历史做统计。 适用:状态可由结构化事件准确计算时 用途/任务族:长历史下确定性计数与状态维护 初评说明:预计在长轨迹和重复事件条件下比让LLM重数更稳;输入事件必须准确。 |
| 地阶初级 | 评估集六原则 | 精确任务描述、复杂度分层、可验证性、分布覆盖、质量控制与持续迭代。 适用:制作能指导产品改进的评估数据集时 用途/任务族:困难及迁移开发任务的评估集审查 初评说明:预计在复杂任务族中仍能检查评估代表性;不是方法效果已达地阶。 |
| 地阶初级 | 最小复现 | 用途/任务族:复杂可复现程序故障的失败输入缩减;机制:逐步缩减触发条件但保持同一故障,形成可重复检查的案例。;适用:失败复杂、依赖多或难以定位首个无效节点。;不适用:移除步骤会改变故障类别或问题不可重复。;前提:失败复杂、依赖多或难以定位首个无效节点。;边界:源文的最小与自动不是已实现自动化,也不证明全局最小案例。 |
| 地阶初级 | 性质测试 | 用途/任务族:可声明性质的软件接口边界与组合检验;机制:按允许输入域生成多样案例,检查与实现无关的性质并缩减反例。;适用:行为可表达为跨多输入成立的性质或不变量。;不适用:性质本身含糊或生成输入会触发不可逆外部副作用。;前提:性质、输入生成域和安全执行边界已定义。;边界:有限生成样例通过不证明所有输入满足性质。 |
| 地阶初级 | 模糊测试 | 用途/任务族:解析器与接口的大输入空间异常发现;机制:在隔离和稳定oracle下探索大输入空间,保存可重放失败。;适用:输入空间大、边界复杂且有可自动判定的异常。;不适用:目标有不可控副作用、无执行隔离或没有稳定 oracle。;前提:输入空间大、边界复杂且有可自动判定的异常。;边界:源文的攻击是方法描述,不是目标权限;通用成功字段没有给出充分覆盖阈值。 |
| 地阶初级 | 不变量检查 | 用途/任务族:多步状态流的权限、数据与一致性检查;机制:在关键转移前后检查明确不变量,不只看最终状态。;适用:系统有跨步骤必须保持的性质。;不适用:性质本身不稳定或只能靠主观判断。;前提:状态和不变量表达式已定义。;边界:执行路径检查不证明未执行路径安全;形式验证是条件性选项而非已有回执。 |
| 地阶初级 | 风险驱动测试 | 用途/任务族:有限预算下高影响失效路径的验证安排;机制:把有限测试预算优先用于重要失败路径,保留覆盖缺口与剩余风险。;适用:验证预算有限且系统存在不同严重度的失败路径。;不适用:所有路径风险和代价相同且已有穷尽证明。;前提:风险项、质量目标和测试资源已声明。;边界:预算与优先级一致不等于风险已降低或正确性已证明。 |
| 地阶初级 | 事故复盘 | 用途/任务族:有可保全证据的事故根因与复发治理;机制:从真实事故证据建立触发、根因、检测缺口和放大器,再形成可验收行动。;适用:发生生产、验证或协作事故且有可保全证据。;不适用:只有无证据的主观猜测,无法形成因果链。;前提:日志、版本、变更和影响范围可被保全。;边界:行动项关闭与复发率下降分开验收;不能从结果倒推出唯一根因。 |
| 地阶初级 | 预注册 | 用途/任务族:模型或方法晋升中的确认性评估;机制:留下不能事后改写的计划版本,区分预设判断与探索发现。;适用:结果会影响科学结论、模型晋升或资源决策。;不适用:纯探索草稿且明确不作确认性声明。;前提:问题、设计、主要结果和版本保存方式已定义。;边界:单个文件时间戳不自动证明观察先后;需可信版本与执行时间线。 |
| 地阶初级 | 重复研究 | 用途/任务族:软件方法与模型效果的独立重复评估;机制:换有意义的执行者、数据、环境或实现,对照效应、误差与失败边界。;适用:结论需要被独立验证或作为高影响决策依据。;不适用:只是一次性探索且没有可复用声明。;前提:原研究的输入、方法、结果和关键主张可获得。;边界:本轮没有执行重复研究,也没有独立执行者回执。 |
| 地阶初级 | 代理指标—真实目标对齐审计 | 用途/任务族:模型评分、测试通过率与真实验收目标的失配审计;机制:用独立目标观测核对指标变化,保留代理改善但目标失败的反例。;适用:决策依赖代理指标、评分、模型或文档,且真实目标及其观察边界可明确。;不适用:没有明确目标,无法确定代理究竟代表什么。;只能重复观察同一代理而无法提供任何独立目标证据;此时只能登记待验证假设。;前提:真实目标、代理定义、使用场景和不可违反契约已声明。;有目标观测或可定位反例;缺少时必须保留 inconclusive,不伪造真值。;边界:源版本0.1.0且evaluation_status=not-run;古文标题与例子不证明实测效果。 |
| 地阶初级 | 后悔与鲁棒决策 | 用途/任务族:概率不稳且损失不对称的软件方案选择;机制:在不确定情景中比较最坏后悔和可接受阈值,而非只追点估计最优。;适用:概率、偏好或模型存在显著不确定性,且失败代价不对称。;不适用:状态和概率已经可靠且错误代价对称。;前提:行动、状态、损失和可接受风险阈值已定义。;边界:仅覆盖选定情景;未知情景和共同模型错误不能由一条曲线消除。 |
| 玄阶高级 | 多阶思维 | 多阶思维继承二阶思维,但不止停在“行动之后会发生什么”,而是继续追踪后续反应、反馈、反身性和系统性连锁。 问题:行动后果、参与者行为、反馈与反身性如何继续改变系统及原策略。 机制:分析直接结果→追踪间接后果→判断参与者行为变化→分析反身性反馈→调整策略、门禁或回滚路径。 条件:平台规则、社区治理、开源协作、SEO/GEO、激励机制。;任何会让参与者根据结果调整行为的系统。 预期结果:直接、间接、行为变化和反身性影响的多阶分析。;策略调整、门禁或回滚路径判断。 |
| 玄阶高级 | 奥卡姆剃刀(工具箱操作版) | 原文用途:避免模型引入不必要框架/抽象;提升可维护性与迭代速度。 问题:避免模型引入不必要框架/抽象;提升可维护性与迭代速度。 机制:- 要求两套方案:常规版 vs 简化版;以测试为准删复杂度 - 优先标准库、减少依赖、减少可变状态、减少层级 条件:简化必须满足全部测试与验收;以测试为准删复杂度。 预期结果:常规与简化方案的对照。;保持测试与验收约束的简化实现及删减理由。 |
| 玄阶高级 | 决策论/机会成本(可逆优先) | 原文用途:避免过早做不可逆技术决策(换框架/改数据模型)。 问题:避免过早做不可逆技术决策(换框架/改数据模型)。 机制:- 标注决策:可逆 vs 不可逆;优先做可逆高价值项 - 先写接口+测试桩+适配层,延后绑定外部系统 条件:适用情境:面临换框架、改数据模型等不可逆技术决策。 预期结果:可逆/不可逆决策清单。;可逆高价值路径的接口、测试桩、适配层和MVP。 |
| 玄阶高级 | 贝叶斯式信念更新(与溯因配合) | 原文用途:在不确定下理性分配排查时间。 问题:在不确定下理性分配排查时间。 机制:- 给假设先验(高/中/低)→ 实验后更新后验排序 - 只对后验最高的 1-2 个假设投入修改成本 条件:适用情境:在不确定条件下分配排查时间。 预期结果:假设先验、证据与后验排序记录。;按更新排序选择的下一步实验或修改方向。 |
| 玄阶高级 | 概念分析 / 概念工程 | 原文用途:防止术语漂移导致返工;把领域概念固化进代码。 问题:防止术语漂移导致返工;把领域概念固化进代码。 机制:- 概念表:术语/定义/边界/不变量/转换关系 - 概念工程:用 Enum/Literal/NewType/dataclass(frozen) 与 schema 固化边界;禁止混用 预期结果:术语、定义、边界、不变量和转换关系概念表。;对应的类型与schema,以及应拒绝的反例测试。 |
| 玄阶高级 | 视角三角测量(Triangulation) | 原文用途:减少单一证据的误判;提升结论可靠性。 问题:减少单一证据的误判;提升结论可靠性。 机制:- 同一结论至少两种证据:单测/性质测试 + 日志/指标;或差分测试 + fuzz 预期结果:至少两种独立验证方式、各自盲区及互补说明。 |
| 玄阶高级 | 解空间 | 用候选解及其组织关系界定答案的可能范围,以约束、目标评价和搜索更新探索可行解。 问题:有限表征与计算资源下,哪些解可被定义、识别并有效发现。 机制:问题表征→约束编码→候选生成→可行性筛选→目标评价→搜索更新;可行域、目标函数与搜索策略共同限定可达性与优劣结构。 条件:问题边界、约束和评价准则可形式化。 限制:不可识别性、欠决定性、组合爆炸或目标错设会限制搜索与外推。 预期结果:界定答案可能存在的范围 |
| 玄阶高级 | 目的导向的行动选择 | 在需求与约束下生成、筛选并检验候选行动路径,用反馈修正目标、模型与搜索策略。 问题:有限认知主体如何建立可辩护的选择准则,使行动有效性与目标结构一致。 机制:需求识别→目标形式化→候选路径生成→约束筛选→方案推演→经验检验→结果更新。 条件:路径进入候选空间需满足基本可行性;优越性依赖评价函数、资源约束、环境状态及目标表征。 限制:目标含混、评价尺度冲突或信息不足时,选择可能欠决定、欠识别或外推失效。 预期结果:经约束筛选、评价和经验检验的候选行动路径及后续更新。 |
| 玄阶高级 | 自顶向下系统设计 | 从整体目标与核心业务开始,逐层拆成子系统、模块、类、函数与代码。 问题:如何在需求相对清楚的系统中先确定整体结构与边界。 机制:明确系统目标/核心业务/整体架构→拆子系统与模块→细化功能、类和函数→实现代码。 条件:需求相对清楚、业务边界比较稳定;原文举银行核心、ERP、政务与基础设施等大型系统。 限制:开始时理解需求不准确会使高层设计偏离,后续细节实现频繁返工。 预期结果:全局结构、架构边界与模块关系的规划,以及向具体代码的逐层落实。 |
| 玄阶高级 | 状态时间与责任追踪 | 从时间展开角度检查状态由谁持有、何时变化、由谁触发。 问题:设计中如何明确状态持有者、变化时机与触发者。 机制:依次询问状态归属、变化时间和触发来源。 |
| 玄阶高级 | 高内聚 | 让相关内容靠近、不相关内容隔离,以单一职责作为内聚核心。 问题:如何按相关性与职责组织代码。 机制:相关的靠近,不相关的隔离;单一职责是内聚核心。 |
| 玄阶高级 | 低耦合 | 模块之间应可预测而不互相束缚,优先减少依赖。 问题:模块之间如何保持较少束缚。 机制:以依赖更少作为模块关系的取舍方向。 预期结果:原文把依赖减少与更长生命及自由相联系;这是方向性主张。 |
| 玄阶高级 | 稳定接口与可变实现 | API 是契约,实现是细节,变化不应破坏契约。 问题:实现变化时如何对接口契约负责。 机制:区分契约与实现细节,保持契约不被破坏。 |
| 玄阶高级 | 显式依赖优先 | 依赖表达优先显式和透明,警惕隐藏依赖。 问题:如何取舍依赖关系的表达方式。 机制:显式优于隐式,透明优于优雅。 限制:原文警示隐式依赖是腐败的起点;未给普适证明。 |
| 玄阶高级 | 不变式与明确约束 | 把不变式视为程序的法则,通过明确约束建立秩序。 问题:如何以明确约束建立程序秩序。 机制:强调不变式及明确约束。 预期结果:原文将明确约束与创造秩序相联系。 |
| 玄阶高级 | 真实使用验证抽象 | 抽象需要承担成本,错误抽象可能比适度重复更糟,应由真实使用检验。 问题:如何取舍重复代码与抽象。 机制:区分减少复杂性的好抽象和制造复杂性的坏抽象,警惕未被真实使用验证的抽象。 限制:抽象有代价,过早抽象可能比适度重复更糟。 预期结果:好的抽象减少复杂性。 |
| 玄阶高级 | 技术债显式登记 | 技术债可以借,但须被看见、记录、评估并知道数量、利息和偿还时间。 问题:如何对现实交付折衷及后续偿还负责。 机制:显式记录并评估技术债,说明借了多少、利息是什么、什么时候还。 条件:为了赶进度牺牲质量有时是现实选择。 限制:只有“以后再重构”的承诺通常不会落实。 |
| 玄阶高级 | 性能定位以测量为准 | 性能问题应靠监控、profiling、压测和真实数据定位,而不是凭感觉。 问题:性能问题如何定位。 机制:用监控、profiling、压测及真实数据定位;原文还提出先跑起来、再正确、最后快的次序。 限制:原文警示过早优化,不能只靠猜测定位多数性能问题。 |
| 玄阶高级 | 外部源码数据集化接入 | 先按真实数据对象反向整理外部脚本,再抽出公共能力并隔离 legacy。 问题:怎样把外部源码接入数据服务结构。 机制:盘点实际数据对象,不先搬代码;脚本映射为 dataset;client/auth/限流/storage/retry-backoff 抽至公共层、runtime 或 writer;legacy 只做兼容转发。 限制:legacy 壳不能承载新逻辑,只允许兼容转发。 |
| 玄阶高级 | 共享资源与并发安全约束 | 并发设计应识别共享资源、避免竞争、必要时使用同步,并区分并发与异步。 问题:共享资源怎样避免数据竞争。 机制:清晰区分共享资源,必要时加锁或使用线程安全结构,区分并发处理与异步处理。 预期结果:避免数据竞争。 |
| 玄阶高级 | 输入规模与复杂度约束 | 选择算法前检查输入规模、最坏复杂度、容器操作、复制及被调用函数成本。 问题:怎样避免只看循环表面而误判复杂度。 机制:要求考虑输入规模、循环体/helper 成本、list 线性操作、切片复制、排序、dict/set 最坏成本、递归重复子问题,以及常数和内存。 限制:两层循环不必然不可接受,单层循环不必然高性能。;dict/set 的平均 O(1) 不免除最坏情况和内存成本审查。 |
| 玄阶高级 | 2.1 KISS原则 | 2.1 KISS原则 — KISS要求持续删除非必要复杂度,只保留当前价值所需的简单结构 适用判断:新增技术、未来功能或程序员自行扩张需求时行动:先问哪些要素真正必不可少,删除过剩结构与代码理由:更少的职责和关系更容易理解、测试与修改 用途/任务族:删除无价值复杂度 初评说明:先审必要性再删过剩结构,预计在同任务族产生较明显的理解和维护收益;不删除必要保护。 |
| 玄阶高级 | 2.2 DRY | 2.2 DRY — DRY要求一个知识或事实只有一个权威表达,重复应通过抽象或自动生成消除 重复对象包括逻辑、常量、说明性信息和手工开发作业。无法直接消除的跨抽象失配,可采用“单一来源 + 自动生成”控制重复。WET 与 DRY相反;OFOP强调数据库事实唯一;OAOO强调语法层面只出现一次。书中把“没有测试程序的代码”称为遗留代码,并建议先建立测试保护再改善。适用判断:相同逻辑、数据或作业在多处重复时行动:抽象公共逻辑、集中数据定义,必要时从单一来源自动生成其他表示理由:重复会导致遗漏修改、不一致和维护成本上升 用途/任务族:重复知识一致性维护 初评说明:单一来源与生成机制直接针对遗漏同步,预计降低多处变更的不一致和维护投入。 |
| 玄阶高级 | 2.3 YAGNI | 2.3 YAGNI — YAGNI要求只为当前已知需求写最低限度的代码 适用判断:想以“以后可能用到”为理由预先设计功能时行动:推迟未被当前需求证明的功能与抽象,等真正需要时再实现理由:未来难以准确预测,预写代码会增加当前复杂度和维护负担 用途/任务族:需求与抽象范围控制 初评说明:推迟没有当前需求依据的代码,预计较明显减少废弃功能和后续维护负担。 |
| 玄阶高级 | 2.6 OCP | 2.6 OCP — OCP要求在预期变化点用稳定接口隔离变化,使新增行为尽量不改旧代码 “开放”指可新增行为;“关闭”指已有代码尽量不因扩展而修改。书中提醒不要为了假想变化过度抽象;先观察真正变化,再保护稳定的变化点。适用判断:变化模式已经出现且扩展会频繁发生时行动:围绕变化点建立接口或抽象,通过新增实现扩展行为理由:减少对已验证代码的改动可以降低连锁影响和回归风险 用途/任务族:已出现变化点的扩展 初评说明:在真实变化点稳定接口,预计减少扩展对已验证代码的连锁修改;不保护猜测的变化。 |
| 玄阶高级 | 3.3 简洁 | 3.3 简洁 — 简洁强调减少偶发复杂性,但不能以牺牲可交流性为代价追求极端短小 适用判断:实现方式越来越复杂或技巧化时行动:删除不必要结构,选择更直接、容易说明的方案理由:复杂度越高,理解、修改和故障排查成本越高 用途/任务族:复杂实现简化 初评说明:明确不以晦涩短小牺牲交流性,预计有效减少偶发复杂度及常规维护成本。 |
| 玄阶高级 | 3.7 逻辑与数据的一体化 | 3.7 逻辑与数据的一体化 — 逻辑与数据的一体化要求共同变化的处理逻辑与相关数据靠近 适用判断:数据结构改变时总要跨多个位置同步修改逻辑时行动:让处理规则与其操作的数据在同一修改边界内理由:共同变化内容分散会扩大影响面和遗漏风险 用途/任务族:数据与处理的变更边界 初评说明:共同变化的处理与数据靠近,预计较明显缩小相关修改和遗漏同步风险。 |
| 玄阶高级 | 3.12 抽象 | 3.12 抽象 — 抽象通过命名共同本质来隐藏不重要差异,让人能在更高层思考 适用判断:重复细节妨碍理解或多个实例共享本质时行动:提取稳定共性并赋予清晰名称,同时保留必要差异理由:抽象压缩信息,使复杂系统可在有限认知范围内处理 用途/任务族:稳定共性抽取 初评说明:提取共同本质且保留必要差异,预计较明显减少重复理解和同类修改投入。 |
| 玄阶高级 | 3.13 封装 | 3.13 封装 — 封装把数据与相关操作放在边界内,并限制外部直接干预内部状态 适用判断:模块内部细节频繁被外部依赖时行动:通过接口暴露必要能力,把内部数据和实现封在边界内理由:减少外部依赖可降低修改传播和误用风险 用途/任务族:内部状态误用控制 初评说明:以接口限制外部干预,预计减少误用和实现替换的联动修改。 |
| 玄阶高级 | 3.17 充足性、完整性、原始性 | 3.17 充足性、完整性、原始性 — 充足性、完整性、原始性要求接口功能够用、覆盖必要能力且不重复提供可由其他操作组合出的能力 适用判断:设计公共接口或模块能力集合时行动:提供必要且完整的原始操作,避免冗余便捷接口无限膨胀理由:更小且完备的原语集合更一致、更容易维护 用途/任务族:公共接口能力集合设计 初评说明:够用且不冗余的原语集合预计减少误用与长期API维护投入;不机械禁止便利接口。 |
| 玄阶高级 | 3.18 策略和实现的分离 | 3.18 策略和实现的分离 — 策略和实现分离要求把“做什么/为何做”的决策与“具体怎样做”的机制解耦 适用判断:业务策略经常变化而底层机制相对稳定时行动:把策略表达放在独立层,通过接口调用实现机制理由:策略变化可避免侵入稳定实现,机制也能被复用 用途/任务族:策略变化隔离 初评说明:将经常变化的策略与稳定机制分离,预计显著减少规则变化侵入底层实现。 |
| 玄阶高级 | 3.19 接口与实现的分离 | 3.19 接口与实现的分离 — 接口与实现分离要求调用方依赖公开契约,内部实现可以独立替换 适用判断:需要允许模块内部重构或多种实现并存时行动:稳定接口并隐藏实现细节,调用方只依赖契约理由:实现替换不会迫使调用代码同步修改 用途/任务族:契约兼容下的实现替换 初评说明:调用者依赖公开契约,预计降低内部重构的联动回归;不借A088补入契约检查步骤。 |
| 玄阶高级 | 3.20 单一引用点 | 3.20 单一引用点 — 单一引用点要求同一事实从一个权威位置读取或修改 适用判断:配置、常量或规则在多处定义并可能产生差异时行动:确定唯一权威来源,让其他位置引用它理由:单点变更可以避免数据和行为不一致 用途/任务族:配置与事实一致性 初评说明:唯一权威读取位置预计较明显减少多副本漂移和变更遗漏。 |
| 玄阶高级 | 3.23 易变性 | 3.23 易变性 — 易变性要求结构能承受需求和环境变化,将高变化区域隔离在稳定边界后 适用判断:预期需求、平台或规则会变化时行动:识别变化热点并通过接口、配置或模块边界隔离理由:隔离变化可减少未来修改的范围和成本 用途/任务族:变化热点隔离 初评说明:定位高变化区域并隔离,预计减少常规需求与平台调整的联动成本。 |
| 玄阶高级 | 3.24 互操作性 | 3.24 互操作性 — 互操作性要求软件能通过明确协议与其他系统交换数据和协同工作 适用判断:系统需要连接外部服务、工具或平台时行动:采用清晰、稳定且必要时标准化的接口和数据形式理由:互操作边界决定系统能否在更大生态中协作 用途/任务族:跨系统协议协作 初评说明:明确稳定数据和协议边界,预计降低常规对接歧义和替换成本;标准化不证明语义兼容。 |
| 玄阶高级 | 3.25 效率性 | 3.25 效率性 — 效率性关注时间与资源成本,但优化必须以真实瓶颈和需求为依据 适用判断:性能或资源使用成为明确约束时行动:先测量,再针对热点改进并验证收益与正确性理由:无依据优化会牺牲可读性且可能优化错位置 用途/任务族:有明确性能约束的优化 初评说明:测量热点后验证收益与正确性,预计减少优化错位置的成本;未据本条推断跨负载迁移。 |
| 玄阶高级 | 3.30 简单性原理 | 3.30 简单性原理 — 简单性原理要求设计中不存在与目的无关的结构和信息 适用判断:方案可用多种复杂度实现时行动:选能满足需求的最简单结构并持续删除多余部分理由:简单结构更容易理解、验证和修改 用途/任务族:目的无关结构清理 初评说明:删除与目的无关的结构预计较明显减少理解和改动负担,保留必要约束。 |
| 玄阶高级 | 3.33 层次原理 | 3.33 层次原理 — 层次原理用分层控制复杂性,每层只处理本层概念并通过清晰边界联系上下层 适用判断:高层目标与底层细节纠缠在同一结构时行动:建立合适层次并限制跨层依赖理由:分层使读者可逐步深入而无需同时处理所有细节 用途/任务族:高低层次依赖控制 初评说明:清晰层次与跨层限制预计显著减少常规阅读负担和无关修改传播。 |
| 玄阶高级 | 3.38 模块化原则 | 3.38 模块化原则 — 模块化原则要求编写边界清楚、接口简单的小模块 适用判断:模块变大并承担多种职责时行动:拆成职责单一且接口明确的模块理由:小模块更容易理解、替换和组合 用途/任务族:大模块职责分解 初评说明:明确单一职责和简单接口预计显著改善同族模块的理解与替换成本。 |
| 玄阶高级 | 3.40 组合原则 | 3.40 组合原则 — 组合原则要求程序能与其他程序连接并协同,而非形成封闭孤岛 适用判断:能力可以通过多个工具串联完成时行动:提供清晰输入输出和可组合接口理由:组合可复用现有能力并减少重复实现 用途/任务族:已有工具能力组合 初评说明:清晰输入输出预计减少封闭实现和重复造轮成本;组合不免除端到端验证。 |
| 玄阶高级 | 3.41 分离原则 | 3.41 分离原则 — 分离原则要求机制与策略分开,让接口与引擎彼此独立演进 适用判断:用户界面、策略和底层机制相互纠缠时行动:拆分独立部分并用协议连接理由:分离能减少改一处牵动全局的风险 用途/任务族:界面策略与引擎独立演进 初评说明:通过协议拆开变化轴,预计降低常规策略或界面变更的底层回归面。 |
| 玄阶高级 | 3.42 简单原则 | 3.42 简单原则 — 简单原则要求通过清晰的小设计降低整体复杂度 适用判断:方案逐渐出现层层特殊处理时行动:回到最直接的模型,删去不必要机制理由:复杂性是软件故障和维护困难的重要来源 用途/任务族:特殊处理膨胀控制 初评说明:回到直接模型并删无用机制,预计明显改善维护与定位成本。 |
| 玄阶高级 | 3.45 健壮性原则 | 3.45 健壮性原则 — 健壮性原则强调透明和简单带来的抗错误能力,而非堆叠复杂防护 适用判断:系统需要在变化和异常下稳定运行时行动:减少隐藏状态和脆弱依赖,保持结构清楚理由:易理解的系统更容易预测和修复异常行为 用途/任务族:脆弱依赖与隐藏状态治理 初评说明:透明与简单预计减少不可预测异常和修复投入;不能替代具体错误处理。 |
| 玄阶高级 | 3.50 经济原则 | 3.50 经济原则 — 经济原则要求在可行时优先机器自动化,减少昂贵的人工作业 适用判断:重复工作可以由程序可靠完成时行动:把重复、可规则化的工作交给机器理由:自动化降低人工成本和离散错误 用途/任务族:可规则化重复作业自动化 初评说明:可靠机器替代重复人工预计较明显减少离散错误和重复投入;需计入自动化维护成本。 |
| 玄阶高级 | 3.51 生成原则 | 3.51 生成原则 — 生成原则要求用程序生成可机械推导的代码或数据 适用判断:同类结构可从更高层描述自动得到时行动:维护单一高层来源并自动生成派生产物理由:生成能消除重复并保证多个表示一致 用途/任务族:多表示机械派生 初评说明:单一高层来源生成产物预计减少表示漂移与重复维护;不声称生成内容必然正确。 |
| 玄阶高级 | 3.52 优化原则 | 3.52 优化原则 — 优化原则要求先让系统正确和清晰,再依据测量结果优化热点 适用判断:没有性能证据却想提前微优化时行动:推迟优化,先测量真实瓶颈再局部改进理由:过早优化常增加复杂性并错过真正热点 用途/任务族:无证据微优化筛除 初评说明:先正确清楚再测热点,预计减少错误优化和无收益投入;不延期必要架构测量。 |
| 玄阶高级 | 3.54 可扩展性原则 | 3.54 可扩展性原则 — 可扩展性原则要求协议和格式允许在兼容前提下增加新能力 适用判断:接口未来可能增加字段、命令或实现时行动:设计可扩展边界并避免把当前枚举假设写死理由:兼容扩展可降低升级对现有用户的破坏 用途/任务族:协议兼容扩展 初评说明:在兼容前提下留扩展边界,预计降低常规升级对已有消费者的破坏。 |
| 玄阶高级 | 3.58 尽早创建原型 | 3.58 尽早创建原型 — 尽早创建原型要求尽快做低成本实验以验证理解和风险 适用判断:需求、技术或交互存在高不确定性时行动:快速做可丢弃原型获取反馈,再据结果决定正式设计理由:早期学习比在错误假设上完善大系统成本更低 用途/任务族:高不确定性学习实验 初评说明:可丢弃低成本原型预计更早证伪需求或技术假设并减少无效实现,不当成交付系统证据。 |
| 玄阶高级 | 3.63 避开交互式用户接口 | 3.63 避开交互式用户接口 — 避开交互式用户接口强调工具应能被非交互方式调用以便自动化 适用判断:核心能力只能靠人工点击操作时行动:提供命令、参数或可脚本化接口理由:可自动调用的工具更容易组合、测试和批处理 用途/任务族:核心能力非交互调用 初评说明:可脚本接口预计较明显降低批处理和组合的人工介入成本;不取消用户需要的交互入口。 |
| 玄阶高级 | 3.64 过滤器化 | 3.64 过滤器化 — 过滤器化要求程序从标准化输入读取、只做一种转换、输出可继续被处理的结果 本节还列出UNIX式经验:环境可定制、小内核、简短名称、沉默、并行思考、组件协同、90%目标、“更差就是更好”等,用于说明过滤器生态的文化背景。适用判断:数据处理能拆成连续转换步骤时行动:把各步做成独立过滤器并用统一数据流连接理由:过滤器结构支持重组、复用和并行思考 用途/任务族:流水式数据转换组合 初评说明:统一输入输出的过滤器预计提高同族任务重组和复用效率,不借此批准源经验中的任意简化。 |
| 玄阶高级 | 4.1 内聚度 | 4.1 内聚度 — 内聚度衡量模块内部功能的关联强度,应尽量接近单一、完整的功能目的 内聚度七级由低到高:巧合、逻辑、时间、流程、通信、信息、功能。功能内聚最纯粹;信息内聚在实际模块设计中也有较高价值。视觉图示逐级展示模块内部功能与数据关系,已纳入视觉复核。适用判断:模块包含彼此关系很弱的处理时行动:提高内聚度,优先功能内聚或合理的信息内聚理由:内部关联越强,模块越容易理解、维护和复用 用途/任务族:模块内部关联诊断 初评说明:内聚分类及功能目的可辅助定位职责混杂,预计较明显改善常规模块维护;旧图示未复核。 |
| 玄阶高级 | 4.3 正交性 | 4.3 正交性 — 正交性要求各组件尽可能独立,一个变化不应无关地影响其他组件 正交设计追求组件独立,但分层也可能带来性能和级联修改成本,需要结合语境权衡。适用判断:修改一项功能会迫使多个无关部分联动时行动:分离职责、减少全局状态并建立清晰层次理由:独立性降低组合复杂度并使测试和替换更容易 用途/任务族:组件独立变更 初评说明:独立职责、少全局状态预计减少无关联动修改,且源文承认层次与性能代价。 |
| 玄阶高级 | 4.4 可逆性 | 4.4 可逆性 — 可逆性要求重要技术与架构选择保留替换和回退余地 适用判断:外部技术、框架或策略存在不确定性时行动:隔离技术边界,避免让不可逆决定渗透全系统理由:未来变化难以预测,保留选择权能降低迁移风险 用途/任务族:不确定技术选择的替换余地 初评说明:隔离技术边界预计降低常规替换损失;接口存在不证明数据与副作用可真实回退。 |
| 玄阶高级 | 4.6 技术负债 | 4.6 技术负债 — 技术负债是为短期速度牺牲结构质量形成的未来成本,需要被识别、记录和偿还 技术负债来源包括经验不足、期限压力、低可读性、过度专用或复杂设计以及不良团队文化。偿债宜采用小步重构并用测试保护;暂时无法处理的债务要被明确记录和管理。适用判断:为了期限采用临时方案或代码质量持续下降时行动:明确债务、尽快用小步且有测试的重构偿还理由:债务会产生“利息”,拖得越久修改成本越高 用途/任务族:临时方案债务治理 初评说明:显式记录并以有测试的小步偿还,预计减少隐性债务造成的反复返工。 |
| 玄阶高级 | 6.6 语境 | 6.6 语境 — 语境要求所有原则和技术都结合目的、限制、历史和周围关系来判断 语境用于两类工作:给代码阅读者提供上下文,以及把问题放进更大的系统关系中思考。高手的优势在于知道模式“何时、为何”适用;规则脱离语境会失效。工作委托也应根据人员熟练度提供合适层级的目标与语境。书中以“着眼大局,着手小局”概括先整体构想、再小步实践。适用判断:规则之间冲突、方案取舍困难或代码缺乏可理解背景时行动:先获取整体语境,再从大局形成构想并小步实施理由:脱离语境的绝对规则容易把局部正确做成整体错误 用途/任务族:有冲突规则的情境取舍 初评说明:先整体语境再小步实施,预计减少脱离目的与约束套规则的错误。 |
| 玄阶高级 | 7.1 布鲁克斯法则 | 7.1 布鲁克斯法则 — 布鲁克斯法则指出给已经延期的软件项目后期加人常会让项目更晚 后期增员新增沟通、任务依赖和培训成本,因此“人月”不能简单互换。推荐处理方式是重排时间表、明确功能优先级并分阶段发布。视觉图示展示人员增加导致沟通路径快速增长,已纳入视觉复核。适用判断:项目已落后且有人提议靠大量增员追赶时行动:重新制定时间表、调整优先级和分阶段交付,谨慎评估新增沟通与培训成本理由:任务依赖、沟通路径和新人培训会吃掉新增人力 用途/任务族:延期项目增员与范围决策 初评说明:识别培训、沟通和依赖成本并调整交付,预计较明显减少人月线性估算误判;不禁止一切增员。 |
| 玄阶高级 | 7.5 80-10-10原则 | 7.5 80-10-10原则 — 80-10-10原则提醒工具都有适用域:大部分问题容易解决,边缘问题成本陡增,最后一部分可能不适合该工具 原则也可与80/20式热点思考结合:少数部分常决定大多数性能、缺陷或成本。适用判断:选择框架、平台或工具解决问题时行动:在采用前用真实难题做实验,确认边界和“最后10%”成本理由:工具能力并非线性覆盖全部需求,尾部问题可能主导总成本 用途/任务族:工具尾部适用性试验 初评说明:采用前用真实难题验证边界,预计较明显减少尾部不适配造成的沉没成本;不相信固定80/10/10比例。 |
| 玄阶高级 | 7.7 第二系统综合征 | 7.7 第二系统综合征 — 第二系统综合征指出第二版常因过度自信和补偿心理塞入过多功能 限制功能膨胀的办法包括明确用户、核心目标和“说不”的边界;附加能力可考虑插件或扩展机制。适用判断:重写或开发第二代系统时行动:明确真正用户与核心目标,限制功能膨胀,必要时把附加能力做成扩展理由:“这次什么都做”会让系统失去简洁和可控性 用途/任务族:重写与第二代功能膨胀 初评说明:核心用户、目标和拒绝边界预计显著减少重写超范围;不按第几代推定失败。 |
| 玄阶高级 | 7.9 给牦牛剃毛 | 7.9 给牦牛剃毛 — 给牦牛剃毛描述为解决原问题不断陷入前置问题的链式偏航,应及时回看最初目标 若前置问题必须继续处理,书中建议把问题像栈一样记录并逐项解决;复杂阅读/修改过程也应保留笔记。适用判断:处理任务时前置问题一层层增加并远离原目标时行动:停下来重述目标,评估替代路径;若必须继续则记录问题栈并逐个解决理由:无意识追逐前置问题会耗尽时间却没有推进真正目标 用途/任务族:多层前置问题的任务回正 初评说明:重述目标、评估替代路径并记录必要问题栈,预计较明显减少支线偏航和无效投入。 |
| 玄阶高级 | 软件设计两原则 | 维护成本优先于实现成本;维护成本随复杂度增加。 使用:评价任何长期设计取舍时 用途/任务族:长期设计成本取舍 初评说明:维护成本而非仅实现成本进入判断,预计明显减少短期便捷导致的反复返工。 |
| 玄阶高级 | API 承诺与兼容性 | 发布 API 等于做出交互承诺;破坏承诺会向生态转嫁复杂度。 使用:发布、版本化或淘汰公共 API 时 用途/任务族:公共API兼容与弃用 初评说明:把发布视作交互承诺预计减少向消费者转嫁变更成本;不永久冻结偶然缺陷。 |
| 玄阶高级 | 严格性—简约—可用性取舍 | 更严格的输入输出约束通常让实现更简单,同时要控制对用户可用性的影响。 使用:设计输入校验、协议和公共接口时 用途/任务族:输入约束与可用性权衡 初评说明:同时考虑实现简约与用户负担,预计明显减少宽严两端的常规误用。 |
| 玄阶高级 | 调试四步法 | 熟悉正常行为、承认未知、追踪证据、修复根因。 使用:定位任何可观察软件异常时 用途/任务族:可观察异常排查 初评说明:从正常行为到证据再到根因,预计较明显减少猜测式修复;卡片缺具体区分实验,不借旧方法补齐。 |
| 玄阶高级 | 产出物效率模型 | 开发效率围绕实际产出及其对用户的帮助衡量。 使用:设计个人、团队或效能指标时 用途/任务族:开发效能指标选择 初评说明:围绕产出与用户帮助预计减少用活动量替代结果的优化误判。 |
| 玄阶高级 | 特性服务型重构 | 重构与业务功能协同推进,让代码改善速度高于退化速度。 使用:在遗留代码上持续交付时 用途/任务族:功能交付中的持续重构 初评说明:改善与业务功能同步预计减少遗留系统持续退化和独立重写返工。 |
| 玄阶高级 | 隐私帮助—伤害权衡 | 从空间隐私/信息隐私出发,以真实帮助、伤害、风险与控制权决定信息策略。 使用:设计数据收集、共享和默认设置时 用途/任务族:数据收集与共享的隐私取舍 初评说明:以帮助、伤害与控制权判断预计减少常规隐私设计的单指标误判;不替代同意与权限要求。 |
| 玄阶高级 | 简约安全模型 | 减少入口数量、简化入口能力、限制单次攻破的损失。 使用:设计安全边界与攻击面时 用途/任务族:攻击面与损失边界设计 初评说明:减少入口并限制单次损失预计改善同族安全边界设计;不得借简约删除鉴权、审计或恢复。 |
| 玄阶高级 | ODA 观察循环 | 观察→决策→行动反复迭代,开发效率受反馈速度、完整性和准确性影响。 使用:设计开发、测试、发布和学习反馈回路时 用途/任务族:开发与学习反馈回路 初评说明:观察决策行动及反馈准确性预计改善同族迭代判断,不声称一般收敛。 |
| 玄阶高级 | 设计拒绝门 | 明确拒绝增加复杂度、缺乏用户价值或无法解决已知问题的方案。 使用:评审功能提案与架构方案时 用途/任务族:复杂度与价值提案筛选 初评说明:明确拒绝无价值方案预计明显减少无效范围与维护负担,但需保留必要约束。 |
| 玄阶高级 | 杰出软件三条件 | 按用户要求执行、符合用户合理预期、让用户容易表达意图。 使用:评价产品设计和用户体验时 用途/任务族:产品行为与意图表达验收 初评说明:用户要求、合理预期及易表达意图共同检查,预计减少常规可用性遗漏。 |
| 玄阶高级 | 规则情境化 | 编程规则只适合特定情境,必须由真实运行与问题上下文校准。 适用:规则与实际现象冲突时 用途/任务族:规则适用域校准 初评说明:真实运行与上下文校准预计明显减少机械套规则的错误;不把运行一次当有效校准。 |
| 玄阶高级 | 抽象模型不完备 | 任何系统图、数据表或意识形态模型都只能覆盖复杂现实的一部分。 适用:解释模型、指标和架构图时 用途/任务族:模型结论适用范围审查 初评说明:有限覆盖提醒预计减少图表、指标或架构模型的过度推广,适用明确对象和映射的审查。 |
| 玄阶高级 | 多快好省四维性能观 | EPUB第13–18节 · 01-程序员为什么要关心代码性能? 核心思想:“性能好”需要同时看吞吐率、响应时间/延迟、可扩展性和资源使用;不同资历的工程师都要理解自己代码的性能后果。 关键框架 多快好省四维性能观 行动要点 不能只以“功能正确”判断代码质量。性能问题可能从单段代码扩散到整条服务链。越高级的工程角色越需要考虑全局性能与成本。 四维性能观 材料用多维指标界定性能,而不是只看单个速度数字。 “多”对应吞吐/处理量。“快”对应响应时间或延迟。“好”包含稳定性和可扩展性。“省”强调资源与成本效率。 不同角色的性能责任 从入门程序员到架构师,性能责任的范围逐级扩大。 初级开发需要避免明显低效实现。资深工程师要理解模块交互和系统瓶颈。架构师需要把服务性能与公司资源成本联系起来。 用途/任务族:多维性能目标选择 初评说明:吞吐、延迟、稳定扩展与资源共同看预计明显减少单一速度指标误判;正确性仍先行。 |
| 玄阶高级 | 帕累托法则 | 帕累托法则 性能工作应把主要精力放在影响最大的热点上。 80/20是近似经验,不是固定比例。热点需要通过测量确认。 用途/任务族:测量确认热点后的投入分配 初评说明:主要热点优先且不迷信80/20,预计明显减少无效性能投入。 |
| 玄阶高级 | 性能统计工具箱 | 统计描述 材料强调对性能样本同时观察位置、尾部和离散程度。 平均数反映整体中心但可能掩盖长尾。P95/P99刻画高分位体验。置信区间表达估计的不确定范围。 用途/任务族:中心与长尾性能描述 初评说明:同时看尾部、离散与估计不确定性预计明显减少平均值掩盖问题;统计模型条件另核。 |
| 玄阶高级 | 性能数据分析五类目标 | EPUB第47–54节 · 06-性能数据的分析:如何从大量数据中看出想要的信号? 核心思想:性能数据分析的目的包括判定正常/异常、比较回归、寻找相关与根因、预测趋势;必须防止把相关性当因果以及被脏数据和指标语义误导。 关键框架 性能数据分析五类目标数据分析陷阱清单 行动要点 先明确分析问题,再选统计/机器学习方法。时间趋势有时比绝对值更有诊断价值。Linux等系统指标必须理解内部语义后再解释。 单序列与多序列分析 不同问题对应不同方法。 单序列可看均值、高分位、趋势和异常。多序列可用相关/协方差研究同步变化。线性回归、分类、聚类、决策树可用于不同预测或分组任务。 用途/任务族:性能分析问题与工具匹配 初评说明:先明确异常、回归、根因和预测目标预计减少分析方法错用及指标误读。 |
| 玄阶高级 | 性能测试六维分类 | 六维分类 先从六个维度定义测试,能避免“同名不同测”。 目的:速度、容量、稳定性、瓶颈等。环境:生产或实验。负载:真实、合成、稳定、尖峰等。对象与数据决定测试边界。黑盒/白盒决定可见内部程度。 用途/任务族:性能测试对象与场景合同 初评说明:先定义多维测试边界预计明显减少同名测试的不可比;维度数不决定等级。 |
| 玄阶高级 | 性能测试工具五模块 | EPUB第85–95节 · 11-性能测试的工具:七大测试场景如何选择高质量的测试工具? 核心思想:高质量性能测试工具通常包含负载生成、数据采集、分析展示、资源监控和集中控制,并应按Web、系统、数据库、存储、网络、移动等场景选择。 关键框架 性能测试工具五模块 行动要点 工具选择先看测试目标和协议支持,再看可扩展性与数据能力。JMeter/LoadRunner、fio、Iperf/Netperf、Appium等服务于不同层。任何工具都不能替代正确的测试设计。 工具五模块 完整工具链需要贯穿“施压—采集—观察—分析—控制”。 负载生成器负责构造请求。数据与资源监控负责记录结果与SUT状态。分析展示与控制中心负责汇总和自动化。 按场景选工具 材料分别讨论Web、系统、数据库、文件I/O、网络和移动测试工具。 协议、采样精度和并发模型必须匹配测试对象。工具本身也要做容量评估,避免成为瓶颈。 用途/任务族:性能工具链适配 初评说明:施压、采集、资源监控与控制的配合预计减少工具与协议错配;工具齐全不等于测试有效。 |
| 玄阶高级 | 外部性能三指标 | 外部三指标 用户性能和系统能力可由三组外部指标共同观察。 延迟描述请求等待。吞吐率描述单位时间处理量。资源使用率描述容量消耗和余量。 用途/任务族:服务性能观察边界 初评说明:延迟、吞吐和资源共同观察预计明显减少单指标容量误判,但均值不能代替尾延迟合同。 |
| 玄阶高级 | CPU资源诊断模型 | EPUB第115–121节 · 15-CPU篇:如何让CPU的运行不受阻碍? 核心思想:CPU分析要同时理解多插槽NUMA、多核缓存、超线程、频率,以及利用率、IPC/CPI、上下文切换等指标;CPU利用率与服务吞吐并非简单线性关系。 关键框架 CPU资源诊断模型 行动要点 NUMA让本地和远端内存访问代价不同。IPC低可能意味着流水线停顿、缓存未命中等效率问题。top、mpstat、pidstat、vmstat、perf可从不同层观察CPU。 CPU结构 硬件拓扑决定软件可获得的实际计算能力。 多插槽带来NUMA。多核共享/私有缓存影响数据局部性。SMT/超线程共享部分核心资源。 CPU指标 仅看总体利用率容易漏掉结构性瓶颈。 关注频率与Turbo。关注IPC/CPI和MIPS。关注中断、上下文切换、调度和核间不均衡。 用途/任务族:CPU结构性瓶颈诊断 初评说明:拓扑、IPC、频率与调度共同观察预计明显减少只看总CPU利用率的错判。 |
| 玄阶高级 | 内存层级与局部性模型 | EPUB第122–130节 · 16-内存篇:如何减少延迟提升内存分配效率? 核心思想:内存性能由缓存命中、带宽、延迟、分配/碎片和NUMA共同决定;应提高局部性、复用内存并让访问尽量落在本地NUMA节点。 关键框架 内存层级与局部性模型NUMA亲和策略 行动要点 小幅缓存未命中也会显著拉高平均访问时间。内存池通过预分配与复用减少分配成本和碎片。内存带宽接近饱和时,延迟会陡增。 缓存命中 多级缓存的巨大延迟差使命中率成为核心指标。 课程示例:L1为3周期、L2为12周期时,90% L1命中会把平均时间拉到3.9周期。缓存一致性协议会引入额外通信和失效。 NUMA与分配 内存位置和分配方式都会影响性能。 让共享数据的线程尽量位于同一NUMA节点。必要时做CPU/内存绑定。通过内存池减少频繁分配和碎片。 用途/任务族:同族内存访问性能分析 初评说明:缓存、带宽、分配与NUMA关系预计减少内存平均量误判;示例周期不当当前通用参数。 |
| 玄阶高级 | 存储三指标 | EPUB第131–139节 · 17-存储篇:如何根据性能优缺点选择最合适的存储系统? 核心思想:存储系统用IOPS、访问延迟和吞吐衡量;HDD受机械寻道与旋转限制,SSD受页/块、GC、写放大和磨损均衡机制影响,软件设计应针对介质特征。 关键框架 存储三指标SSD内部页块模型 行动要点 吞吐约等于IOPS×I/O大小。适度队列深度可通过重排/合并提高吞吐,但会影响延迟。SSD不能简单当作更快的HDD。 用途/任务族:存储负载与介质选择 初评说明:IOPS、延迟、吞吐及I/O大小共同看预计明显减少错误介质和队列深度判断。 |
| 玄阶高级 | LLC未命中优化三策 | EPUB第163–168节 · 21-CPU案例:如何提高LLC(最后一级缓存)的命中率? 核心思想:LLC不命中可通过紧凑数据结构、软件预取和消除伪共享降低,但三种方法都必须以硬件计数器证据和具体访问模式为前提。 关键框架 LLC未命中优化三策 行动要点 perf的LLC-loads/LLC-load-misses等PMU事件可量化问题。软件预取只在真正存在内存停顿时值得使用。伪共享来自不同线程修改同一缓存行内不同变量。 三种优化 围绕数据局部性和缓存行行为采取三策。 压紧数据结构,提高同一缓存行有效数据比例。提前预取即将访问的数据。通过对齐/填充把独立热写变量分到不同缓存行。 预取边界 软件预取有明显副作用。 预取指令本身消耗CPU。过早/过多预取会驱逐有用缓存。长循环可尝试提前2–3次迭代;短循环可在进入前预取。 用途/任务族:有PMU证据的LLC优化 初评说明:访问模式对应紧凑布局、预取或伪共享隔离,预计在同族热点有较明显增益;不外推预取迭代参数。 |
| 玄阶高级 | iTLB优化流水线 | EPUB第169–175节 · 22-系统案例:如何提高iTLB(指令地址映射)的命中率? 核心思想:iTLB优化把“生产Profiling→热代码布局/链接→大页面加载”连成流水线,目标是减少指令地址转换未命中。 关键框架 iTLB优化流水线 行动要点 iTLB miss代价可比命中高10–100倍。FDO/HFSort等可把热文本聚集,提高iTLB覆盖率。2MB/1GB大页面用更少TLB项覆盖更多代码。 热代码布局 生产画像能识别真正的热指令区。 perf与LBR等工具提供采样。链接阶段按热度重排文本,减少工作集跨页。 大页面部署 热文本与大页面结合可进一步降低iTLB miss。 THP自动性强但不保证目标映射。显式预留大页面控制更强但运维成本更高。材料生产案例报告iTLB miss约减半、CPU下降5–10%、吞吐提高约15%;这是特定环境结果。 用途/任务族:有指令画像的iTLB优化 初评说明:画像、热布局和页映射预计在相近热代码任务中有明显收益;案例数字未独立复现,不预计普遍迁移。 |
| 玄阶高级 | SSD写放大与Trim调优 | EPUB第176–182节 · 23-存储案例:如何降低SSD峰值延迟? 核心思想:降低SSD写放大需要保留空闲空间并合理使用Trim;持续discard可能因FTL更新阻塞前台I/O,必须控制Trim粒度或改为计划式fstrim。 关键框架 SSD写放大与Trim调优 行动要点 写放大系数=物理写入量/逻辑写入量。材料建议避免SSD过满,示例目标使用率约80–85%。Trim本身可能制造尾延迟,需要用高分位延迟验证。 降低写放大 给SSD留出空闲块能降低GC搬运和写放大。 空间越满,释放空闲块需要搬动的数据越多。Trim让设备知道哪些逻辑块已无效。 控制Trim峰值 Trim不应只以“释放空间”评价。 在线discard可能阻塞读写。可调小discard_max_bytes降低单次影响。也可按计划/事件运行fstrim,并监测尾延迟。 用途/任务族:SSD尾延迟与Trim策略 初评说明:空闲空间和Trim粒度一起复测预计减少同族GC峰值问题;80至85%不是通用阈值。 |
| 玄阶高级 | RedLiner生产容量测试 | EPUB第191–196节 · 25-如何在生产环境中进行真实的容量测试? 核心思想:RedLiner用真实生产流量逐步加压单个SUT,并用实时客户性能阈值闭环调节重定向比例,以非侵入方式测出单位服务容量。 关键框架 RedLiner生产容量测试五条线上容量测试原则 行动要点 线上容量测试比合成流量更接近真实业务分布。必须实时监测用户性能,一旦越过阈值立即减压/停止。步距和每步稳定时间共同决定测试速度与安全性。 五条设计原则 线上测试必须兼顾准确性和客户保护。 使用实时流量。实时监测和反馈。规则和阈值可定制。自动终止并复位。支持日历/事件触发调度。 四组件架构 RedLiner由LiveRedliner、TrafficRedirector、PerfCollector、PerfAnalyzer协同。 控制器负责调度。流量重定向器改变SUT负载。采集器收集系统/服务指标并可通过Kafka传输。分析器根据规则决定继续加压还是减压。 闭环步进 测试从历史容量附近开始,按步距迭代。 每个重定向比例示例固定3分钟以稳定数据。达到延迟/错误率阈值后停止加压。课程示例中高负载触及40ms客户等待阈值后逐步降载。 用途/任务族:经授权的真实流量容量测量 初评说明:步进加压、客户阈值反馈和停止复位预计改善同族容量估计;不视为无侵入或安全已证。 |
| 玄阶高级 | 五条线上容量测试原则 | 五条设计原则 线上测试必须兼顾准确性和客户保护。 使用实时流量。实时监测和反馈。规则和阈值可定制。自动终止并复位。支持日历/事件触发调度。 用途/任务族:线上容量测量客户保护 初评说明:实时反馈、可定制阈值和终止复位预计减少同族测量损害;不与D039重复计算效果证据。 |
| 玄阶高级 | 数据库复制三变量模型 | EPUB第197–203节 · 26-怎么规划和控制数据库的复制延迟大小? 核心思想:数据库复制可建模为无限缓冲FIFO排队系统;用ARIMA预测周流量、季节指数下钻到小时,再用数值计算和二分搜索求复制延迟、容量、增长空间和SLA。 关键框架 数据库复制三变量模型两步时间序列预测容量二分搜索 行动要点 三变量是输入流量、复制处理能力和复制延迟,给定两者可求第三者。长期预测先聚合到周,减少ARIMA数据点,再用168小时季节指数分配。预测误差必须以业务后果和资源成本决定安全裕量。 三变量模型 容量规划围绕流量、处理能力、延迟相互求解。 可预测复制延迟。可反推需要的复制容量。可求当前容量支持的最大流量。可据此讨论延迟SLA。 用途/任务族:复制流量容量延迟的模型判断 初评说明:在FIFO与缓冲近似成立时预计显著改善同族容量推算;真实有限缓冲和非平稳误差须另核。 |
| 玄阶高级 | Java多任务干扰三层机制 | EPUB第204–210节 · 27-多任务环境中的Java性能问题,怎样才能不让程序互相干扰? 核心思想:多Java应用共存时,JVM堆分配、Linux直接回收/交换和THP拆分-聚合会互相放大;通过堆预触碰、控制交换和动态THP策略可降低干扰。 关键框架 Java多任务干扰三层机制三元素干扰治理 行动要点 -Xms/-Xmx并不等于启动时已经拿到全部物理页。内存严重不足会触发前台直接回收,冻结申请内存的应用。THP在内存压力下反复拆分与聚合可能造成大量CPU开销。 启动干扰 第二个大JVM逐步分配物理页时可能触发直接回收。 kswapd先做后台回收。压力继续增大后进入同步直接回收。课程实验峰值每秒扫描约48K页(约200MB),GC暂停显著升高。 运行干扰 稳定JVM的堆页被换出后,GC会因page-in而变慢。 材料实验出现约55秒超大暂停。THP拆分/聚合进一步烧CPU并放大问题。 用途/任务族:同平台Java资源干扰解释 初评说明:物理页、回收与THP交互预计减少同族暂停误归因;旧实验量不直接外推版本。 |
| 玄阶高级 | SSD友好七原则 | EPUB第217–221节 · 29-如何彻底发挥SSD的潜力? 核心思想:SSD友好软件要从数据结构、I/O处理和线程并发三方面重新设计,利用SSD随机访问和内部并行特性,同时降低GC、写放大和磨损。 关键框架 SSD友好七原则 行动要点 SSD友好设计可同时提升应用性能、I/O效率和寿命。小I/O宜多线程利用内部并行,大I/O线程过多反而会竞争。空间使用率越高,GC搬移有效数据越多。 七原则:数据结构 三条数据结构原则改变传统HDD假设。 避免为HDD设计的就地更新执念。分离热/冷数据,减少无效页访问。采用紧凑数据结构,减少4KB页级读写和写放大。 七原则:I/O 两条I/O原则减少前台GC。 避免长时间繁重持续写。避免SSD存储过满;80%使用率释放1块约需压缩5块,95%时约20块。 七原则:线程 线程数要匹配I/O大小和SSD内部并行度。 10KB小I/O实验中多线程显著提升吞吐。10MB大I/O实验中2–4线程足够,8线程反而下降。课程给出的“小I/O”启发阈值≈页大小×内部并行度。 用途/任务族:目标SSD负载的软件适配 初评说明:结构、写入与并发共同权衡预计减少同族介质错配;案例线程数和使用率不能照抄。 |
| 玄阶高级 | 服务器五阶段验证路线 | 五阶段路线 服务器硬件在量产前逐级提高真实性和规模。 Pre-EVT做模块基准。EVT验证完整设计。DVT在数据中心做负载/规格验证。PVT验证真实生产流程。MP进入批量生产。 用途/任务族:硬件验证真实性递进 初评说明:逐级提升规模和真实性预计减少常规量产前遗漏;阶段名称不等于已经完成验证。 |
| 玄阶高级 | 容量规划六挑战 | 六大挑战 材料总结六类容量规划约束。 容量供应不仅是钱,还受建设/供应周期限制。地域容量不能任意互换。服务器类型与代际性能会改变单位容量。季节峰值需要提前部署。灾备要求给剩余容量留负载空间。上下游服务负载会互相传导。 用途/任务族:容量规划的供给与地域约束 初评说明:周期、异质性、峰值、灾备和上下游检查预计明显减少常规只按钱与总量的误判。 |
| 玄阶高级 | 需求控制五模块 | 五模块框架 需求控制同时管理“新增需求”和“存量使用”。 入口控制:审核请求。分布式产品组治理。宏观增长配额。微观实时监测。持续提升用户资源效率。 用途/任务族:新增与存量资源需求控制 初评说明:入口、配额、监测和效率联动预计明显改善同族资源治理,不能以配额替代正确性与授权。 |
| 玄阶高级 | 指标—成本映射可见性与更新 | 成本可见性 让内部客户看到“指标→成本”的映射有助于优先级决策。 例如把TB、QPS等业务/技术指标映射到服务总成本。映射需要随服务增长、硬件和效率变化定期更新。 用途/任务族:资源指标与成本决策对齐 初评说明:透明且更新的成本映射预计明显减少用户选择与公司成本脱节;不抵消正确性、隐私和保留要求。 |
| 玄阶高级 | 深模块 | 用简单接口提供强大功能,把实现复杂性隐藏在模块内部。 适用:设计类、服务或子系统边界时 用途/任务族:类与服务边界设计 初评说明:预计显著降低调用者认知负担;不是按接口行数评优。 |
| 玄阶高级 | 适度通用的模块 | 从当前需求提炼更稳定的通用机制,同时把专用策略留在合适层级。 适用:多个相关用例共享同一机制时 用途/任务族:相关用例的机制与策略分离 初评说明:预计兼顾复用与专用策略,减少错误抽象。 |
| 玄阶高级 | 下沉复杂性 | 把不可避免且与模块职责相关的复杂性放入模块内部,以换取更简单的外部接口。 适用:复杂性必须落在接口或实现一侧时 用途/任务族:模块复杂性归属取舍 初评说明:预计减少重复调用方逻辑和接口负担。 |
| 玄阶高级 | 基于复杂性的拆分/组合 | 按信息共享、接口深度和依赖性决定功能应放一起还是分开。 适用:确定类、方法或服务边界时 用途/任务族:类、方法与服务拆分评审 初评说明:预计比按大小机械拆分更稳定保留知识局部性。 |
| 玄阶高级 | 通过定义来规避错误 | 重定义语义以减少错误状态,再用屏蔽和聚合减少异常处理点。 适用:接口存在大量特殊情况或异常时 用途/任务族:接口特殊情况与异常语义设计 初评说明:预计能减少错误状态和散落异常分支。 |
| 玄阶高级 | 设计两次 | 为重要设计决策构思多个差异明显的备选方案并比较。 适用:重大接口、实现或系统分解决策前 用途/任务族:重要接口及系统方案选择 初评说明:预计暴露第一方案遗漏并改善取舍;不保证全局最优。 |
| 玄阶高级 | 重要性最小化与强调 | 减少必须被关注的概念,并让真正重要的约束在接口、名称和结构中突出。 适用:确定抽象重点、配置或关键路径时 用途/任务族:关键接口与配置重点表达 初评说明:预计提升AI及人工审查对关键合同的可见性。 |
| 玄阶高级 | 大模型安全十九项控制 | 从隐私、隔离、备份、审计、鲁棒性到身份、最小权限、供应链、响应计划构成防线。 适用:理解、评估或应用这一结构时 用途/任务族:带模型与工具的软件威胁审查 初评说明:预计减少单靠提示词保护造成的明显防护空缺。 |
| 玄阶高级 | 提示工程实践清单 | 任务分析、领域知识、上下文、清晰指令、格式约束、版本控制与迭代共同构成工程化实践。 适用:理解、评估或应用这一结构时 用途/任务族:可复现开发提示维护 初评说明:预计减少一次性提示与不可追踪修改。 |
| 玄阶高级 | 语义完整切块 | 文本或代码分块要适应 token 限制,同时尽量保持语义与函数完整。 适用:理解、评估或应用这一结构时 用途/任务族:代码及文档检索分块 初评说明:预计减少断裂代码片段导致的生成误解。 |
| 玄阶高级 | 智能体权限边界 | 具备工具能力的 Agent 应遵循最小权限、审批、高风险操作确认和审计。 适用:理解、评估或应用这一结构时 用途/任务族:工程代理高风险工具授权 初评说明:预计减少能力存在即被当作授权的错误。 |
| 玄阶高级 | 用户故事 + GWT | 用户故事表达角色—能力—价值,Given-When-Then 把验收标准变成可执行条件。 适用:理解、评估或应用这一结构时 用途/任务族:需求到可执行验收的转换 初评说明:预计降低AI实现对含混需求的自我解释。 |
| 玄阶高级 | 组件库约束生成 | 把设计系统、组件规范和已有代码作为上下文,提高生成 UI 的一致性与可维护性。 适用:理解、评估或应用这一结构时 用途/任务族:AI UI代码与设计系统对齐 初评说明:预计降低风格漂移和重复组件维护。 |
| 玄阶高级 | 大模型时代的 UTDD | 围绕单元行为先生成/完善测试,再生成或修正实现,通过执行反馈迭代。 适用:理解、评估或应用这一结构时 用途/任务族:单元行为测试先行的AI实现迭代 初评说明:预计减少只凭生成代码外观判完成。 |
| 玄阶高级 | 大模型时代的 ATDD | 从业务验收标准出发生成端到端验收测试与实现,把业务语言连接到代码。 适用:理解、评估或应用这一结构时 用途/任务族:跨组件业务验收实现 初评说明:预计提高需求与实际业务路径的一致性。 |
| 玄阶高级 | 运维自愈边界 | 自动生成/执行修复需要权限控制、风险分级与人工确认。 适用:理解、评估或应用这一结构时 用途/任务族:自动运维修复权限控制 初评说明:预计减少自动诊断直接变成不可逆修复的风险。 |
| 玄阶高级 | 生命周期阶段评估问题集 | 框架 05 每一阶段用容量、延迟、质量、模式、成本、SLA 和下游用途等问题约束设计。 适用设计新管道或排查生命周期瓶颈时首次单元u02 用途/任务族:AI生成数据管道的分阶段设计审查 初评说明:预计减少只看代码而漏掉上下游服务合同。 |
| 玄阶高级 | 源系统评估框架 | 框架 13 理解源数据生成方式、写入模式、模式变化、时间语义、性能影响、质量和数据契约。 适用接入任何新源系统前首次单元u05 用途/任务族:外部源数据接入前合同审查 初评说明:预计提前暴露源模式漂移和责任缺口。 |
| 玄阶高级 | 事件与时间语义 | 框架 14 区分消息、流、事件时间、摄取时间和处理时间,并把顺序与投递语义视作显式约束。 适用设计实时、CDC 或 IoT 数据流时首次单元u05 用途/任务族:日志、CDC与事件管道时间合同 初评说明:预计减少迟到数据和处理时刻混用。 |
| 玄阶高级 | 流式摄取可靠性框架 | 框架 20 模式演进、迟到、乱序/重复、回放、TTL、消息大小和死信队列共同决定流式可靠性。 适用建设可恢复的事件摄取平台时首次单元u07 用途/任务族:流式摄取可靠性风险审查 初评说明:预计提升异常输入和失败恢复的审查覆盖。 |
| 玄阶高级 | 查询生命周期与优化闭环 | 框架 21 编译解析、优化器、执行计划、资源指标和查询重构构成性能优化闭环。 适用分析慢查询或数据库成本时首次单元u08 用途/任务族:AI生成查询的性能诊断 初评说明:预计比凭SQL表面写法更准确定位瓶颈。 |
| 玄阶高级 | 语义层与指标层 | 框架 32 把业务定义与指标逻辑集中维护并复用,降低 ETL 与报表逻辑重复和漂移。 适用组织需要统一指标定义和查询逻辑时首次单元u09 用途/任务族:报表与评估指标语义单点维护 初评说明:预计减少多份SQL、报表和AI评估口径漂移。 |
| 玄阶高级 | 概念完整性 | 系统应呈现统一、连贯、可预测的概念模型。 使用场景 · 评审体系结构、接口和功能一致性时 用途/任务族:多轮AI生成的系统概念一致性 初评说明:预计减少局部实现彼此冲突的接口和职责。 |
| 玄阶高级 | 规格传播与解释闭环 | 权威规格、多种表达、持续问答和修订记录共同维持一致理解。 使用场景 · 体系结构要被多个实现团队执行时 用途/任务族:规格在开发与审查间传播 初评说明:预计减少多轮会话使用过时需求造成的返工。 |
| 玄阶高级 | 独立产品测试 | 由独立测试组织依据规格检验产品,提供技术监督。 使用场景 · 需要降低开发团队自证偏差时 用途/任务族:降低实现者自证偏差的产品测试 初评说明:预计较好发现共同实现假设遗漏;组织独立不保证oracle独立。 |
| 玄阶高级 | 规格外部审查 | 在编码前让外部视角审查规格的完整性与一致性。 使用场景 · 需要早发现定义缺陷时 用途/任务族:编码前的需求与规格缺陷审查 初评说明:预计减少把错误规格实现得很精确的浪费。 |
| 玄阶高级 | 具体可度量的里程碑 | 里程碑必须是可客观判定、可清晰定义的事件。 使用场景 · 建立可控制的项目进度表时 用途/任务族:AI长任务进度与交付判定 初评说明:预计减少以写了、调用了或感觉完成当状态真相。 |
| 玄阶高级 | 计划日期与当前估计分离 | 保留原计划,同时独立更新当前完成估计,以显示偏差而不改写历史。 使用场景 · 跟踪进度并需要早期预警时 用途/任务族:计划偏差与恢复估计跟踪 初评说明:预计阻止靠改日期抹去延期和副作用历史。 |
| 玄阶高级 | 输入—执行—输出三层护栏 | 在请求进入、工具执行、结果返回三个位置布置专门防线。 适用:做 Agent 安全威胁建模时 用途/任务族:工程Agent输入到输出的防线布置 初评说明:预计减少只清洗输入却放任危险执行和输出的单点防护。 |
| 玄阶高级 | Human in the Loop | 超过失败阈值或遇到高风险不可逆操作时升级人工。 适用:早期上线或高风险动作审批 用途/任务族:高风险或反复失败的人工升级 初评说明:预计减少无限自动重试与越权继续。 |
| 玄阶高级 | 业务规则可执行化 | 把分类、阈值、金额、例外写到模型可直接执行的精度。 适用:Agent 涉及计费、退款、合规等业务规则时 用途/任务族:AI业务规则精度与例外表达 初评说明:预计减少金额、阈值和例外的自由解释。 |
| 玄阶高级 | Skills 三层渐进式披露 | 元数据负责路由,SKILL.md 提供核心流程,子文档/脚本按需深入。 适用:领域能力很多且不适合全部常驻上下文时 用途/任务族:大量Skill的按需上下文装载 初评说明:预计减少常驻噪声和无关指令,同时保需用内容可达。 |
| 玄阶高级 | Skill 路由条件设计 | description 要表达 Use when / Don’t use when,并加入反例约束误触发。 适用:编写或优化 Skill 元数据时 用途/任务族:Skill元数据的适用域表达 初评说明:预计减少相近能力的错误召回。 |
| 玄阶高级 | Context Distillation | 把长轨迹中需反复归纳的隐式状态提前算成可直接检索的结构化结论。 适用:模型在计数、状态跟踪和规则归纳上反复消耗思考时 用途/任务族:长任务的可检索状态摘要 初评说明:预计减少反复重读长历史的统计和归纳误差。 |
| 玄阶高级 | 五层生产压缩 | 工具结果预算→删除噪声→API 微压缩→归档式摘要→全量压缩逐级升级。 适用:设计生产级上下文生命周期时 用途/任务族:开发会话上下文增长的压缩治理 初评说明:预计避免过早全量摘要造成不必要丢失。 |
| 玄阶高级 | 记忆整理三层 | 重要性筛选→相似记忆聚类→抽象泛化,并用版本化处理冲突。 适用:长期记忆规模持续增长时 用途/任务族:开发知识与长期记忆去重整理 初评说明:预计降低膨胀与互相矛盾记忆的调用负担。 |
| 玄阶高级 | ACI 防呆设计 | 命名、参数、示例、边界和错误反馈都面向 Agent 可理解性设计。 适用:模型工具调用准确率低时 用途/任务族:模型可正确使用的工具接口设计 初评说明:预计减少参数误用和错误后继续假成功。 |
| 玄阶高级 | 提议者—审核者 | 执行前审批或执行后验证由独立视角审查,避免模型过早完成或危险操作。 适用:高风险动作和需要 artifact 验证的任务 用途/任务族:危险提议与交付产物审查 初评说明:预计改善过早完成和危险提议识别。 |
| 玄阶高级 | 幂等性与预检—确认 | 可幂等操作用唯一 key/先查后改安全重试;不可幂等操作分成预检和一次确认执行。 适用:异步任务超时、取消或重试可能产生重复副作用时 用途/任务族:超时与重试下重复副作用防护 初评说明:预计减少不确定完成状态下的重复写入。 |
| 玄阶高级 | 异步任务生命周期 | 启动返回 task_id,随后可查询状态、取消、收取完成事件,把同步模型与长时世界解耦。 适用:设计长运行工具和可打断 Agent 时 用途/任务族:长运行开发工具的异步控制 初评说明:预计把模型调用周期与真实长任务状态分离。 |
| 玄阶高级 | 离线—在线评估双轨 | 离线用可控样本检查修改,在线用真实用户与遥测验证价值。 适用时当改进 LLM 应用质量时 用途/任务族:提示及Agent产品改进的双环境验证 初评说明:预计减少只优化离线分数的局部改进。 |
| 玄阶高级 | 黄金标准—功能测试—LLM 评估 | 按任务可验证性选择精确/部分匹配、功能执行或模型评审。 适用时当需要自动判定大量输出时 用途/任务族:AI输出的验证机制选择 初评说明:预计减少用弱评分替代可执行行为验证。 |
| 玄阶高级 | 多通道滤波 | 通过彼此独立的通道交叉验证同一信息,削弱系统性干扰。 适用 单一路径可能有共同偏差时 用途/任务族:代码结论与外部信息的独立交叉核验 初评说明:预计改善单源错误识别;独立性必须真实核查。 |
| 玄阶高级 | 通用五步衡量法 | 定义决策与不确定性 → 量化当前知识 → 计算信息价值 → 衡量高价值不确定性 → 决策并循环。 用途/任务族:架构与调试中的测量投入选择 初评说明:预计把测量成本集中到会改变实际选择的问题。 |
| 玄阶高级 | 门槛导向抽样 | 围绕会改变决策的门槛设计样本量和停止条件,而非追求抽象的最大精度。 用途/任务族:开发验证采样与测量停止取舍 初评说明:预计减少不影响选择的额外精度开销。 |
| 玄阶高级 | 手段—目的分析 | 用途/任务族:可度量目标差距的长任务子目标选择;机制:按影响与可达性找差距,建立可满足动作前提的子目标,再观察目标差距。;适用:当前状态和目标状态都能部分描述,且差异可比较。;不适用:目标不可观察或差异没有稳定度量。;前提:已定义当前状态、目标和至少一个差异指标。;边界:差距度量必须对应真实目标;不把差距单调缩小写成一般收敛保证。 |
| 玄阶高级 | 构造性见证 | 用途/任务族:工程可行性与具体交付见证;机制:把可行性主张落实为受约束的最小候选,再交给检查者验证。;适用:主张可以由样例、原型、证明对象或测试输入见证。;不适用:当前只允许存在性推断且没有可构造对象。;前提:目标、约束和最小验收标准已定义。;边界:有效的非构造数学存在证明不因此失效;这里只在合同需要具体见证时使用。 |
| 玄阶高级 | 元认知监控 | 用途/任务族:有限预算的多轮求解与停止选择;机制:在检查点比较进展、剩余未知与成本,按停止规则控制路线。;适用:任务包含多轮策略、有限预算或不确定结果。;不适用:单次确定性查询且无需选择路径。;前提:存在可观察进展指标、预算和策略切换规则。;边界:监控指标与停止阈值未校准时不能假定控制有效。 |
| 玄阶高级 | 二分调试 | 用途/任务族:单调、可复现的有序回归区间定位;机制:利用有序、可靠且符合单调要求的故障判定缩小候选区间。;适用:候选空间有序且存在可靠通过/失败判定。;不适用:故障非单调、flaky 或各候选无法独立复现。;前提:候选空间有序且存在可靠通过/失败判定。;边界:不得仅因有序就推断单调;也不据此执行Git回退或破坏性操作。 |
| 玄阶高级 | 差分测试 | 用途/任务族:重构与替换的行为保持检查;机制:固定输入、版本与容忍规则,比对输出、错误和副作用。;适用:存在参考实现、旧版本或可接受的多实现比较。;不适用:两侧语义不同且没有可比输出契约。;前提:比较对象、输入集合和等价/容忍规则已声明。;边界:规范化仅按合同比较,不删除决定性差异。 |
| 玄阶高级 | 依赖图 | 用途/任务族:多组件变更的依赖建模与下游可达集分析;机制:从边来源建立版本化有向图,求变更下游与验证边界。;适用:系统由多个有依赖关系的对象组成。;不适用:对象彼此独立且无共享状态。;前提:节点和依赖边可以从源码、契约或记录中提取。;边界:没有边不证明没有依赖;语义依赖图不等于锁等待图。 |
| 玄阶高级 | 接口契约 | 用途/任务族:组件接口合同制定与边界检验;机制:明确组件交互承诺,并用正常、边界和错误输入检验。;适用:多个组件通过接口交换数据或控制。;不适用:同一局部表达式且没有独立边界。;前提:接口边界和调用场景可识别。;边界:Schema相同不证明语义兼容;源文适配建议不成为自动增设兼容壳的要求。 |
| 玄阶高级 | 影响分析 | 用途/任务族:跨模块变更的影响与验证范围选择;机制:以具体变更为起点定位受影响面,再安排验证。;适用:变更触及公共接口、共享状态或多模块依赖。;不适用:依赖图完全未知且没有可观察调用或数据流证据。;前提:变更触及公共接口、共享状态或多模块依赖。;边界:初评是该源条目的意见,不表示应创建第二个相近功法身份。 |
| 玄阶高级 | 架构权衡 | 用途/任务族:满足硬约束的多候选架构比较;机制:在满足底线的候选架构间比较延迟、成本与可靠性等冲突属性。;适用:存在两个以上可行架构且质量属性冲突。;不适用:候选不满足基本正确性或安全底线。;前提:存在两个以上可行架构且质量属性冲突。;边界:多指标不能暗中平均;本条不提供普遍最佳架构。 |
| 玄阶高级 | 增量开发 | 用途/任务族:可切片系统变更的集成风险控制;机制:缩小一次变更范围,让每个切片有运行、验证与回滚依据。;适用:变更可被拆成独立验证的小切片。;不适用:拆分会留下不可运行中间态或破坏不可分割迁移。;前提:变更可被拆成独立验证的小切片。;边界:原文实现→测试只是保存的源顺序,不覆盖本项目测试先行要求;切片小不等于可以删关键验证。 |
| 玄阶高级 | 来源批判 | 用途/任务族:外部资料支持具体工程或评估主张的可信范围审查;机制:将具体主张绑定原始来源、方法与适用域,再判断支持力度。;适用:来源质量、版本或适用范围会改变结论。;不适用:事实来自可验证的稳定机器接口且无需解释。;前提:来源可定位且存在待支持的具体主张。;边界:本轮仅核对包内引用键存在,未核验外部原典;稳定机器接口也不是无条件可信。 |
| 玄阶高级 | 失败预演 | 用途/任务族:上线与迁移前的失败机制预演及验证规划;机制:从冻结方案的失败判据倒推可检验路径,留下证据请求与开放风险。;适用:已有方案、可观察失败判据、执行时间范围和有限风险验证预算。;不适用:问题仍没有方案或无法定义何为失败。;需要调查已发生事故的真实原因,此时应使用事故复盘和证据诊断。;前提:方案、依赖、成功/失败判据、时间窗口和风险预算可读。;所引用条目已装载;任务已定框时直接复用该定框结果,不重复追问。;预演产生假设与计划;模型、工具、故障注入和部署权限仍由宿主裁决。;边界:来源版本0.1.0、composition_only且evaluation_status=not-run;不调用其完整风险测试方法,不执行故障注入或部署。 |
| 玄阶中级 | 组合描述模型 | 以对象、状态、快照、序列、过程、变换、同一、差异及关系解释变化中的连续性。 问题:如何追踪变化中的对象,并描述其连续性、差异与关系。 机制:对象与状态可被记录为快照和序列,变换使过程展开,同一/差异判定置于关系网络中。 |
| 玄阶中级 | 思想实验 | 在现实执行之前,先构造一个简化但关键约束完整的假想场景,用来检验概念、规则、边界和后果。 问题:如何在现实执行前检验概念、规则、边界和后果,尤其在试错成本高时。 机制:设定最小场景→保留关键约束、去掉无关细节→推演正常/边界/极端路径→检查自洽性与反例。 条件:方案还没写代码,但要判断是否会崩。;现实试错成本高。;需要测试一个原则在极端情况下是否仍成立。 预期结果:最小假想场景及正常、边界、极端路径的推演。;自洽性判断及发现的反例。 |
| 玄阶中级 | 逆向思维 | 从失败、反例、风险和终局倒推当前行动,先问“怎样一定会失败”,再反推避免失败的约束。 问题:如何从失败、反例、风险与最坏终局倒推出当前可检测、可阻断的约束。 机制:写出最坏结果→列出失败路径→识别提前检测/阻断环节→将阻断点固化为测试、CI、脚本、schema、清单或人工复核。 条件:做质量门禁。;做架构风险分析。;判断一个计划是否只是看起来完整。 预期结果:最坏结果及导致失败的路径清单。;提前检测或阻断点及对应测试、脚本、清单或复核。 |
| 玄阶中级 | 现象学还原(悬置假设) | 原文用途:需求含糊、模型脑补、Bug难复现时,先把"解释/偏好"清零,回到可观察事实与可复现结构。 问题:需求含糊、模型脑补、Bug难复现时,先把"解释/偏好"清零,回到可观察事实与可复现结构。 机制:- 先写四件套:现象(实际) / 意图(期望) / 情境(环境约束) / 边界(明确不做) - 输出最小可复现体 MRE:最小输入 + 最小脚本 + 复现步骤 + 预期vs实际 - 把抽象词降维:快/稳/好用 → 指标&验收用例 条件:适用情境:需求含糊、模型脑补或Bug难复现。 预期结果:现象、意图、情境与边界记录。;最小可复现体(MRE)及预期/实际对照。;抽象需求对应的指标与验收用例。 |
| 玄阶中级 | 正反合(三段迭代) | 原文用途:把一次性"写到完美"替换为可控三轮:快速可用 → 反例打脸 → 收敛为工程版本。 问题:把一次性"写到完美"替换为可控三轮:快速可用 → 反例打脸 → 收敛为工程版本。 机制:- **正**:只做 main path,让它跑通 - **反**:列失败模式(边界/空值/并发/权限/超时/性能),用测试与基准逼出反例 - **合**:重构接口/收敛依赖/补文档与回归,形成下一轮稳定起点 预期结果:可运行主路径的最小实现。;失败模式、反例测试与基准。;收敛接口、依赖、文档与回归后的稳定起点。 |
| 玄阶中级 | 实用主义(以指标为准) | 原文用途:避免"优化方向漂移";每轮明确一个可量化目标。 问题:避免"优化方向漂移";每轮明确一个可量化目标。 机制:- 先定义成功指标(P95延迟/错误率/成本/内存/可维护性) - 每轮只优化一个指标;其余保持不退化(用基准/回归锁住) 条件:先定义成功指标、验收阈值与测量方法;每轮优化一个指标,其他指标以基准/回归约束不退化。 预期结果:成功指标、验收阈值与测量方法。;本轮指定指标的优化及其他指标不退化的回归约束。 |
| 玄阶中级 | 诠释学(语境澄清) | 原文用途:需求文本有歧义,模型与人对同一词理解不同。 问题:需求文本有歧义,模型与人对同一词理解不同。 机制:- 先复述需求 + 歧义清单 + 默认选择(必须显式) - 默认选择写入 docstring/README/类型定义 条件:适用情境:需求文本有歧义,模型与人对同一词理解不同。 预期结果:需求复述、歧义清单及显式默认选择。;进入文档、类型或schema的默认策略。 |
| 玄阶中级 | 反思平衡(Reflective equilibrium) | 原文用途:当用例、原则、约束冲突时收敛规范(尤其 API 语义、错误处理、兼容性)。 问题:当用例、原则、约束冲突时收敛规范(尤其 API 语义、错误处理、兼容性)。 机制:- 三层对齐:具体用例 ↔ 一般原则 ↔ 系统约束 - 用测试固化:回归用例(具体判断)+ 性质测试(原则) 条件:适用情境:用例、原则与约束冲突,需要收敛规范,尤其API语义、错误处理与兼容性。 预期结果:用例、原则、约束三集及冲突点。;调整方案与回归/性质测试。 |
| 玄阶中级 | 贝叶斯认识论(Bayesian epistemology) | 原文用途:在多个方案/原因间理性分配注意力与试错预算。 问题:在多个方案/原因间理性分配注意力与试错预算。 机制:- 先验 → 实验 → 后验 → 下一步;把排查变成序列决策问题 条件:适用情境:需要在多个方案或原因间分配注意力与试错预算。 预期结果:先验排序、信息增益实验、后验与后续行动计划。 |
| 玄阶中级 | 有限样本生成推断 | 有限样本生成推断是一种在受限假设空间中,由少量观测识别潜在生成规律的方法。 问题:有限信息在什么约束下能够支持对潜在无限结构的可靠推断。 机制:有限实例形成经验约束→构造候选假设→按归纳偏置、复杂度与解释能力选择→演绎新实例/预测→用新增证据判别、修正与更新。 条件:推断位于受限假设空间内,并依赖假设空间与选择准则。 限制:有限样本通常存在欠决定性,同一组事实可对应多种规律。 预期结果:候选生成规律及通过演绎得到的新实例或预测,随后由新增证据判别、修正和更新。 |
| 玄阶中级 | AI-native | 判断哪些人的认知、决策与执行环节可转交AI,并动态配置人机控制权、回退与更新机制。 问题:哪些由人承担的认知、决策与执行可转交AI,以及人机行动权、控制权和责任如何配置。 机制:任务→能力抽象→权限委派→自主推演→结果检验→反馈更新 条件:依赖模型能力、结果可验证性、过程可审计性与责任边界。 限制:目标欠定义、异常难识别、责任不可转移或外推风险较高时,减少人工介入可能放大系统性错误。 预期结果:判断哪些原由人承担的认知、决策与执行环节可转交AI |
| 玄阶中级 | 受约束的状态变换 | 在规则、资源与风险约束内搜索可行状态转移路径,以评价函数排序,并用经验反馈更新假设空间。 问题:哪些状态转移具有可能性、可控性与价值,有限认知主体如何发现并改进这些路径。 机制:状态表征→变换假设→组合搜索→模型选择→结果推演→经验检验→反馈更新 条件:状态、变换与目标具有足够可识别性。 限制:因果结构欠决定、约束不可观测或环境分布漂移时,外推与优化可能失效。 预期结果:约束集内的可行变换路径及经检验、反馈更新的选择。 |
| 玄阶中级 | Projection 表示转换 | 在任务约束下选择更可观察、可计算的表示,保留任务相关信息和结构,并检验损失与转换成本。 问题:如何在可计算性、信息充分性与结构忠实度之间形成任务相关权衡。 机制:对象→任务结构→表示选择→推演→检验→更新 条件:对象有可提取结构;映射保存任务相关信息;表示运算与原关系可靠对应;信息损失与转换成本可控。 限制:否则可能结构失真、欠识别、过度压缩或外推失效。 预期结果:尽量保留任务相关结构的可观察、可计算表示。 |
| 玄阶中级 | 状态分类工具 | 将系统演化表示为始态、暂态与终态,分析时间序列位置、状态转移条件和结果判定。 问题:如何用有限状态空间表征连续演化,形成可检验、可更新且具外推能力的转移模型。 机制:状态识别→类型归属→转移推演→结果判定→经验检验→分类更新 条件:状态边界可定义,转移规则相对稳定,观测信息足以支持状态识别。 限制:路径依赖、状态重叠、不可观测变量或开放系统扰动,可能导致欠识别与结果欠决定。 预期结果:刻画对象在时间序列中的结构位置及状态转移条件 |
| 玄阶中级 | 自底向上系统构建 | 先建设确定的基础能力与组件,再将稳定组件组合为业务功能和完整系统。 问题:如何利用既有技术平台或确定性较高的基础能力支撑演化中的业务。 机制:建设基础能力/组件/工具模块→组件逐渐稳定→组合业务模块→形成完整系统。 条件:适合已有技术平台、组件库或框架体系的团队,也适合业务需求仍在演化的项目。 限制:只关注底层而缺乏整体目标,可能出现“组件很多,但系统拼不起来”,整体架构不统一。 预期结果:可复用基础组件、由组件组合的业务模块与完整系统。 |
| 玄阶中级 | 控制论与科学方法论(仓内工程解释版) | 以信息、约束和反馈在可能性空间中选择行动,用模型预测与现实输出的差异修正模型。 问题:如何用可检验目标与反馈把一次性生成改成持续求解和工程验收。 机制:源文以“实践→理论→实践”描述负反馈:比较模型预测与现实输出修正模型,并限定相对孤立系统;AI编程用测试、日志、反馈、约束与迭代检验。 条件:获得足够信息并建立有限问题边界;源文认为认识反馈的收敛取决于可证伪性、反馈速度/幅度及结果的可靠判别。 限制:工具与方法有能力上限;正反馈可能形成增长、崩溃或恶性循环;复杂因果可能是概率关系、反馈环或网络。 预期结果:可检验目标状态、模型修订与可验收结果。 |
| 玄阶中级 | 可推理性优先 | 强调人可推理的程序,以少变量、浅分支、明状态和平逻辑支持可理解性。 问题:程序怎样更容易被人脑推理。 机制:优先可预测性;变量少、分支浅、状态明、逻辑平。 预期结果:原文把可推理性与可维护性相等同;这是来源主张。 |
| 玄阶中级 | 最小惊讶原则 | 代码行为应符合常识并减少惊讶,强调可预测性。 问题:怎样让代码行为不使使用者惊讶。 机制:以符合常识和可预测性作为取舍方向。 预期结果:原文将不惊讶与用户体验、可预测性与信任相联系。 |
| 玄阶中级 | 文档记录设计理由 | 文档不是装饰,尤其应解释当时为什么这样选择。 问题:怎样减少他人对设计背景的猜测。 机制:文档解释选择理由,代码说明系统当前怎样运行,二者承担不同说明功能。 预期结果:让别人少猜,解释当时为什么做出选择。 |
| 玄阶中级 | 输入输出与状态变换分离 | 区分消费端、生产端、状态和变换,独立管理输入处理输出环节。 问题:系统行为怎样按输入、输出、状态和处理逻辑划分。 机制:消费端接收外部数据,生产端生成结果,状态存储系统信息,变换处理状态;输入、处理、输出独立管理。 |
| 玄阶中级 | DRY 逻辑复用准则 | 用函数、类、模块复用逻辑,而不是复制粘贴。 问题:重复逻辑怎样取舍。 机制:使用函数、类、模块复用逻辑。 |
| 玄阶中级 | 1.1 编程没有银弹 | 1.1 编程没有银弹 — 软件的本质困难无法被单一技术消除,复杂性只能被持续控制 材料列出软件本质困难:复杂性、协同性/一致性约束、可变性、不可见性。自动化和工具主要压低偶发困难;对本质困难只能持续理解、分解和管理。适用判断:面对“某项新技术能一劳永逸解决软件问题”的承诺时行动:区分本质复杂性与偶发复杂性,优先减少和管理复杂性理由:复杂性、协调变化与不可见结构会长期存在 用途/任务族:评审技术万能承诺 初评说明:区分本质与偶发困难,预计能减少工具替代问题理解的误判;仍只是判断框架。 |
| 玄阶中级 | 1.2 代码即设计文档 | 1.2 代码即设计文档 — 代码本身承担核心设计文档的角色,编程活动本质上包含设计 适用判断:需要理解、维护或交接系统设计时行动:让代码清楚表达设计,并用辅助文档记录动机、构建测试和架构线索理由:可执行代码最接近真实设计,脱离代码的文档容易失真 用途/任务族:代码设计理解与交接 初评说明:代码表达设计并以辅助文档保存动机,预计降低实现与描述失配的理解成本。 |
| 玄阶中级 | 1.3 代码必然被修改 | 1.3 代码必然被修改 — 代码必然持续变化,因此可读性和可修改性是长期质量基础 适用判断:设计可能被修复、扩展或适配的代码时行动:把“以后能安全修改”作为结构和命名的重要判断标准理由:修改是常态,难改的代码会放大维护成本与风险 用途/任务族:可维护代码设计 初评说明:把未来安全修改纳入结构判断,预计减少常规变更的理解与修改成本。 |
| 玄阶中级 | 2.4 PIE | 2.4 PIE — PIE要求代码直接表达程序员的意图,阅读者应能从结构和命名看出目的 适用判断:代码实现正确却难以理解其意图时行动:优先可读命名、结构和“为什么”的说明,让代码服务于人类阅读理由:代码主要由人维护,清楚表达意图能降低理解与修改成本 用途/任务族:代码意图表达 初评说明:让结构和名称直接表达目的,预计改善维护者的常规理解准确性与耗时。 |
| 玄阶中级 | 2.5 SLAP | 2.5 SLAP — SLAP要求同一段代码保持统一抽象层次,用分层组合隐藏低层细节 适用判断:函数或模块同时夹杂业务步骤与实现细节时行动:把低层细节下沉到独立函数,让高层代码只描述同一层级的步骤理由:混杂抽象层次会打断阅读者的思维并提高认知负担 用途/任务族:混合抽象层次重构 初评说明:统一层级可减少阅读时的上下文切换,预计有中段理解收益;不按函数行数机械拆分。 |
| 玄阶中级 | 2.7 名字很重要 | 2.7 名字很重要 — 命名是代码的用户界面,名称要准确、可搜索并能表达目的和副作用 适用判断:变量、函数或模块需要被他人理解和检索时行动:先想清用途再命名,选信息量高、无歧义、可发音和可搜索的名字理由:好名称减少脑内映射,让阅读者更快形成正确模型 用途/任务族:名称检索与语义理解 初评说明:准确且可搜索的名称预计减少脑内映射和误用,但不能代替行为合同。 |
| 玄阶中级 | 3.1 编程理论 | 3.1 编程理论 — 编程理论用“交流、简洁、灵活性”三种思想指导技术选择,并以六个原则连接到代码 三项核心思想:交流、简洁、灵活性。六个桥梁原则:效应局部化、重复最少化、逻辑与数据一体化、对称性、声明式表达、变动率。思想之间可能互补也可能冲突,优秀方案来自对视点的平衡。适用判断:面对多种技术与实现方式需要取舍时行动:以三种思想为判断基准,再用局部化、少重复、逻辑数据一体、对称、声明式和变动率检查方案理由:技术只有与目的和问题语境匹配时才有价值 用途/任务族:实现方式取舍 初评说明:三思想与桥梁原则提供多视角检查,预计减少单一维度决策;本条不保证最优选择。 |
| 玄阶中级 | 3.2 交流 | 3.2 交流 — 交流要求把代码视为程序员之间持续传递意图的信息媒介 适用判断:编写需要被未来自己或他人阅读的代码时行动:从阅读者视角组织代码,使结构、名称和约定清楚传达意图理由:维护成本很大部分来自理解与沟通 用途/任务族:团队代码阅读 初评说明:从阅读者视角表达意图,预计减少日常交接与维护的理解偏差。 |
| 玄阶中级 | 3.4 灵活性 | 3.4 灵活性 — 灵活性让代码能适应变化,同时过度灵活本身也会制造复杂性 适用判断:需求存在变化可能且需要选择抽象程度时行动:先保持简单和可测试,只在变化证据充分时引入灵活结构理由:未被需要的灵活机制会增加理解与维护负担 用途/任务族:抽象灵活度选择 初评说明:仅在变化证据充分时增加灵活性,预计减少未使用机制的维护负担。 |
| 玄阶中级 | 3.6 重复最少化 | 3.6 重复最少化 — 重复最少化把DRY提升为结构思想:把重复知识集中为一个可维护位置 适用判断:多个位置表达同一事实或规则时行动:识别共同部分并抽象为单一来源理由:单点维护能避免不一致并降低修改成本 用途/任务族:重复规则集中维护 初评说明:集中同一事实预计减少遗漏同步;本条不像A005展开测试与生成安排,不借其补齐。 |
| 玄阶中级 | 3.8 对称性 | 3.8 对称性 — 对称性要求相同概念用相同形式表达,让结构具备可预测性 适用判断:同类操作或成对行为写法不一致时行动:统一命名、结构和控制方式,并保持成对操作相互对应理由:对称结构便于推断,也更容易发现缺失和重复 用途/任务族:同类与成对行为一致性 初评说明:统一表达形式预计降低预测和审查成本,并使缺项更容易被发现。 |
| 玄阶中级 | 3.9 声明式表 | 3.9 声明式表 — 声明式表达优先说明“想要什么”和约束,把步骤细节交给更低层实现 适用判断:大量命令式步骤掩盖真正目标时行动:用表、规则、配置或声明性接口表达意图和约束理由:目标直接可见能减少细节噪声和修改范围 用途/任务族:目标与约束表达 初评说明:声明式表达使目标可见,预计减少重复步骤细节;不能消除底层执行语义。 |
| 玄阶中级 | 3.15 打包 | 3.15 打包 — 打包通过有意义的聚合建立更高层单位,使相关内容作为整体被理解和使用 适用判断:零散函数、数据或文件缺乏清晰归属时行动:按共同职责或变化原因组织成包、模块或组件理由:有边界的聚合减少认知对象数量并明确所有权 用途/任务族:零散内容职责归属 初评说明:有意义的聚合预计降低认知对象数和所有权模糊;包本身不证明良好模块边界。 |
| 玄阶中级 | 3.28 可复用性 | 3.28 可复用性 — 可复用性要求组件边界清晰、依赖较少且职责稳定,才能在其他语境再次使用 适用判断:相似能力可能被多个功能或系统共享时行动:先提高独立性和通用边界,再在确有共性时复用理由:强耦合和过度专用会使“复用”转化为搬运成本 用途/任务族:已出现共性的组件复用 初评说明:独立边界与少依赖预计减少同族重复实现;不为猜测复用预造通用框架。 |
| 玄阶中级 | 3.29 七个设计原理 | 3.29 七个设计原理 — 七个设计原理用简单、同构、对称、层次、线性、清晰和安全七个角度检查设计 七个设计原理:简单性、同构、对称、层次、线性、清晰、安全。适用判断:需要从结构层面评估代码设计时行动:逐项检查七个原理并结合语境权衡理由:多角度检查能暴露单一视角忽略的设计问题 用途/任务族:设计多视角审查 初评说明:多角度检查预计比单一视角减少常规遗漏,但本条没有解出冲突的具体规则。 |
| 玄阶中级 | 3.31 同构原理 | 3.31 同构原理 — 同构原理要求问题结构与解决方案结构保持可对应关系 适用判断:代码结构与业务概念或问题分解难以对应时行动:让模块、数据和处理边界映射问题域中的真实结构理由:结构对应能减少翻译成本和理解偏差 用途/任务族:问题与代码结构对应 初评说明:结构映射预计降低常规业务理解的翻译成本;不能以同构要求冻结所有技术边界。 |
| 玄阶中级 | 3.32 对称原理 | 3.32 对称原理 — 对称原理要求成对或同类操作在结构上保持一致 适用判断:创建/删除、打开/关闭等相关操作风格不一致时行动:统一成对行为的接口和流程理由:对称能提高可预测性并暴露遗漏 用途/任务族:成对操作审查 初评说明:统一成对接口预计让遗漏更可见并减少误用,不把形式对称当行为相同。 |
| 玄阶中级 | 3.34 线性原理 | 3.34 线性原理 — 线性原理强调让控制流和理解路径尽量直接,减少跳转与隐式副作用 适用判断:阅读代码需要频繁跳转或追踪隐藏状态时行动:简化流程、减少间接跳转并让数据流可追踪理由:线性结构降低追踪成本和意外影响 用途/任务族:控制流与副作用追踪 初评说明:更直接可追踪的流程预计降低常规阅读与定位成本;不是禁止必要间接性。 |
| 玄阶中级 | 3.35 清晰原理 | 3.35 清晰原理 — 清晰原理要求优先让设计意图可被阅读者明确理解 适用判断:短小技巧与直白写法发生冲突时行动:选择更清楚的结构、命名和表达理由:代码被阅读和维护的次数通常远多于编写次数 用途/任务族:晦涩表达替换 初评说明:选择清楚的结构与命名预计改善维护者的理解正确率和耗时。 |
| 玄阶中级 | 3.39 清晰原则 | 3.39 清晰原则 — 清晰原则要求代码的清楚程度优先于炫技与晦涩技巧 适用判断:可选择聪明但难懂的写法时行动:选让维护者一眼看懂的实现理由:维护者理解成本会直接影响长期可靠性 用途/任务族:炫技代码维护 初评说明:选择维护者易懂的表达预计减少常规误读与修改成本。 |
| 玄阶中级 | 3.43 简约原则 | 3.43 简约原则 — 简约原则要求只写大型程序的充分理由很强时才扩大规模 适用判断:功能可以由小工具或现有组合完成时行动:优先小程序和已有组件理由:规模越大,理解、测试和协调成本越高 用途/任务族:工具规模与复用取舍 初评说明:优先小工具和组合预计减少无理由扩张的成本;规模小不自动正确或易维护。 |
| 玄阶中级 | 3.46 表达性原则 | 3.46 表达性原则 — 表达性原则要求把程序员知道的信息写进代码,让程序自我说明 适用判断:重要知识只存在于开发者脑中时行动:用名称、数据结构和清晰逻辑表达知识理由:显式知识降低团队沟通和维护依赖 用途/任务族:关键知识显式表达 初评说明:把脑中知识写入名称与结构预计降低日常团队沟通和维护依赖。 |
| 玄阶中级 | 3.47 最小意外原则 | 3.47 最小意外原则 — 最小意外原则要求接口行为符合使用者已有预期 适用判断:设计公共接口、命令或默认行为时行动:选择最符合惯例和直觉的行为,避免惊喜理由:减少意外可降低学习成本和误操作风险 用途/任务族:公共接口预期一致性 初评说明:符合惯例的行为预计降低常规学习与误操作成本;预期需来自真实消费者。 |
| 玄阶中级 | 3.53 多样性原则 | 3.53 多样性原则 — 多样性原则要求避免把所有问题强行塞进一种工具或技术 适用判断:不同问题域需要不同权衡和表达方式时行动:允许多种工具并根据任务选择适合者理由:单一技术无法覆盖所有语境的需求 用途/任务族:工具与任务匹配 初评说明:允许按任务选工具预计减少单一技术强套,限于明确目标下的选择。 |
| 玄阶中级 | 3.57 工作唯一 | 3.57 工作唯一 — 工作唯一要求每个程序专注把一件事做好 适用判断:程序同时承担多个独立目标时行动:拆分责任,让每个工具专注单一工作理由:专一工具更易组合、测试和替换 用途/任务族:工具职责集中 初评说明:专一职责预计减少日常理解与替换成本;一件事需按稳定业务边界判定。 |
| 玄阶中级 | 3.59 可移植性优先于效率 | 3.59 可移植性优先于效率 — 可移植性优先于效率要求避免为了局部性能过早绑定特定平台 适用判断:平台特定优化与跨环境运行发生冲突时行动:除非有测量证明必要,优先标准和可移植实现理由:可移植性延长软件寿命并降低迁移成本 用途/任务族:平台绑定与迁移取舍 初评说明:以测量必要性约束平台特定优化,预计减少不必要绑定;只在确有可移植目标时适用。 |
| 玄阶中级 | 3.60 文本数据 | 3.60 文本数据 — 文本数据强调使用人和工具都容易读取、检查和转换的文本表示 适用判断:数据需要跨工具交换、调试或长期保存时行动:优先简单文本格式并保持结构明确理由:文本透明、可组合且减少专用工具依赖 用途/任务族:跨工具数据表示 初评说明:简单文本预计改善常规检查与交换成本;不把文本默认优先推广到大规模二进制热点。 |
| 玄阶中级 | 3.62 活用shell脚本 | 3.62 活用shell脚本 — 活用shell脚本强调用脚本连接现有命令完成自动化 适用判断:任务由多个现成命令按固定流程组成时行动:用脚本编排工具并保留可重复执行的过程理由:脚本把人工流程变成低成本、可复现的自动化 用途/任务族:固定命令流程脚本化 初评说明:脚本编排预计改善常规重复执行和人工差错;原文不提供完整幂等或凭据合同。 |
| 玄阶中级 | 4.5 代码中的“坏味” | 4.5 代码中的“坏味” — 代码坏味是设计问题的表面信号,应通过小步重构持续清理 适用判断:出现重复、长函数、大模块、过多模块或命名不一致等迹象时行动:把坏味当作调查入口,逐步重构并用测试保护理由:坏味通常意味着理解和修改成本正在上升 用途/任务族:坏味驱动的小步调查 初评说明:坏味作入口加测试保护,预计改善常规重构定位;信号不是根因证明。 |
| 玄阶中级 | 5.4 无我编程 | 5.4 无我编程 — 无我编程要求把代码与自我价值分开,通过评审和讨论共同改进作品 适用判断:代码评审或技术争论容易变成人身防御时行动:让事实和代码质量主导讨论,欢迎他人指出问题理由:放下所有权情绪能提高反馈质量和团队学习速度 用途/任务族:代码评审反馈质量 初评说明:事实与代码质量优先预计减少防御性讨论和遗漏,限于评审行为不推断人格优劣。 |
| 玄阶中级 | 6.4 内部测试 | 6.4 内部测试 — 内部测试要求开发者真实使用自己开发的软件,以用户视角发现体验和质量问题 适用判断:产品尚未发布或刚发布、团队容易只从实现角度看问题时行动:让开发团队持续实际使用产品并记录阻碍理由:真实使用能暴露测试和设计文档未覆盖的问题 用途/任务族:开发团队真实产品使用 初评说明:持续自用预计补充常规测试遗漏的体验问题;开发者不代表所有目标用户。 |
| 玄阶中级 | 6.5 橡皮鸭调试法 | 6.5 橡皮鸭调试法 — 橡皮鸭调试法通过把问题逐步解释给一个听众来暴露隐含假设和逻辑断点 适用判断:卡在故障排查或无法理清复杂代码时行动:从头、具体地解释现象、代码和预期,即使听众只是一个物件理由:表达过程迫使思路显性化,矛盾和遗漏更容易被发现 用途/任务族:调试隐含假设显性化 初评说明:逐步具体叙述预计发现常规逻辑断点;叙述通顺不证明根因,不借B012补入证据实验。 |
| 玄阶中级 | 7.2 康威定律 | 7.2 康威定律 — 康威定律指出系统结构会映射组织沟通结构,组织与架构需要协调 视觉图示用“组织分组 ↔ 系统模块划分”说明沟通结构对软件结构的映射关系。适用判断:团队边界与目标架构相互冲突时行动:让组织结构、责任边界和目标架构保持可支持的对应关系理由:沟通路径会自然塑造接口和模块边界 用途/任务族:团队沟通与模块边界检查 初评说明:组织映射可作为摩擦来源假设,预计改善常规接口协作;不自动批准重组或微服务化。 |
| 玄阶中级 | 7.6 约书亚树原则 | 7.6 约书亚树原则 — 约书亚树原则说明没有名称的事物容易被团队忽略,共同词汇会改变观察和协作能力 适用判断:团队反复讨论某类现象却没有稳定叫法时行动:给重要概念命名,并在代码、文档和交流中共享同一词汇理由:命名使概念可被识别、讨论和持续改进 用途/任务族:团队共同词汇形成 初评说明:给重要现象稳定名称预计改善识别与讨论;命名本身不创造正确概念或事实。 |
| 玄阶中级 | 理解驱动能力 | 能力提升来自对当前层级知识的完整理解,并以应用结果检验理解。 使用:学习新技术、评估技能缺口或提升编码质量时 用途/任务族:学习理解与应用检验 初评说明:以应用检验理解预计改善常规学习效果;完整理解不是可直接测量的绝对门槛。 |
| 玄阶中级 | 复杂性症状清单 | 通过黑客修补、难读、误用、害怕修改、扩展困难等信号识别复杂代码。 使用:定位代码库中最需要治理的区域时 用途/任务族:复杂代码治理入口 初评说明:症状清单预计帮助常规初筛,不据症状直接证明根因或优先级。 |
| 玄阶中级 | Bug 双重定义 | 程序行为偏离程序员预期,或程序员预期偏离多数理性用户合理预期,都可能构成 bug。 使用:分类缺陷与功能需求时 用途/任务族:缺陷与用户预期分类 初评说明:区分实现偏离与错误需求理解,预计减少常规缺陷分诊误判;用户预期需要真实调查。 |
| 玄阶中级 | SAR / ISAR | 用结构、操作、结果以及可选输入拆解任何层级的软件。 使用:分析程序结构、职责和信息流时 用途/任务族:软件结构与信息流表示 初评说明:结构、操作、结果及输入视角预计改善常规拆解;不是完整的时间、权限或本体模型。 |
| 玄阶中级 | 持续改善 | 每个版本持续解决真实问题,并以足够频率发布,让产品沿时间轴变得更好。 使用:产品长期维护与版本规划时 用途/任务族:长期产品改善节奏 初评说明:持续处理真实问题预计改善常规维护结果;发布频率本身不是用户价值。 |
| 玄阶中级 | 改善优先级两阶段 | 先解决已知头部问题,再在问题趋于分散时用用户数据决定下一批优先级。 使用:维护成熟产品、决定下一轮改善重点时 用途/任务族:成熟产品改善优先级 初评说明:头部问题到用户数据的分阶段选择预计改善常规投入分配;反馈量不等于严重度。 |
| 玄阶中级 | 学习—实践闭环 | 承认知识边界,系统学习基础,再通过实践检验和巩固理解。 使用:提升程序员能力与制定学习路线时 用途/任务族:程序员知识边界与实践学习 初评说明:基础学习加实践检验预计改善常规理解迁移;没有具体训练与验收安排,不自动升地阶。 |
| 玄阶中级 | 用户问题 / 开发者方案 | 用户提供问题和影响证据,开发者负责设计解决方案。 使用:需求分析、内部工具和产品设计时 用途/任务族:用户问题与方案协作 初评说明:分开问题证据和实现方案预计减少需求误解;不排斥用户对方案约束的真实知识。 |
| 玄阶中级 | 用户—程序—计算机中介模型 | 业务软件的复杂度来自程序员在用户习惯、法规与机器之间做中介。 适用:设计业务软件和用户流程时 用途/任务族:业务软件中介关系理解 初评说明:用户习惯、法规和机器之间的关系预计减少常规需求建模遗漏。 |
| 玄阶中级 | 团队规模—协调成本悖论 | 简单增加程序员可能放大协调成本并延长项目。 适用:想用加人压缩软件工期时 用途/任务族:增员与协调成本估算 初评说明:增加人数可能增加协调成本的提醒预计改善常规工期估算,不预定加人一定延期。 |
| 玄阶中级 | 最小惊讶原则 | 程序应尽量符合用户可预期行为,减少意外。 适用:设计用户可见行为和接口时 用途/任务族:用户可见行为预期 初评说明:符合真实用户预期预计降低常规学习与误操作成本;不据同名继承A057或旧登记意见。 |
| 玄阶中级 | 程序单一整体 | 复杂程序仍应由内部逻辑形成一个整体,避免多余结构和无用元素。 适用:重构或评审程序结构时 用途/任务族:程序整体逻辑与多余结构 初评说明:整体一致与删除无用元素预计减少常规理解成本;不把整体性误读成单体不可拆。 |
| 玄阶中级 | 维护即长期滋养 | 遗留程序像成长中的植物,修改前要理解逻辑和原意,持续维护是生命周期的一部分。 适用:维护遗留系统或做补丁时 用途/任务族:遗留程序理解与维护 初评说明:先理解逻辑与原意预计减少常规补丁破坏;植物类比不证明系统自然成长。 |
| 玄阶中级 | 系统三元组:硬件、软件与人 | 计算机系统包含硬件、软件和人,人的错误也是系统失效的一部分。 适用:做事故归因和系统安全分析时 用途/任务族:系统失效中人员因素检查 初评说明:纳入硬件、软件与人预计减少常规事故分析漏项;不把归因给人当根因结束。 |
| 玄阶中级 | 性能价值链 | 性能的业务价值 代码性能会沿着系统层级放大为用户体验和基础设施成本。 局部优化可能减少服务器、网络与存储消耗。容量效率越高,大规模服务的成本收益越明显。 用途/任务族:性能业务价值与成本关联 初评说明:把性能连到体验和基础设施投入预计改善常规优化优先级,局部改进不直接等于公司收益。 |
| 玄阶中级 | 性能影响层级链 | 性能影响链 一个低效模块可能把额外请求和资源压力传递给上下游。 应用级问题可能演化为单机资源瓶颈。单机瓶颈可能降低服务容量并增加服务器数量。规模放大后会进入公司成本和能源消耗。 用途/任务族:性能影响向上下游传播分析 初评说明:层级链预计减少常规局部归因遗漏,仍需逐层验证资源与请求传播。 |
| 玄阶中级 | 排队系统模型 | 排队思维 只要输入速率接近或超过处理能力,等待就会迅速积累。 排队系统由输入、服务和输出构成。容量分析需要同时看到达率和服务能力。 用途/任务族:接近饱和的排队风险解释 初评说明:到达与服务能力共同分析预计改善常规等待积累判断,模型不代替真实队列结构。 |
| 玄阶中级 | 性能数据展示六条经验 | 六条展示经验 材料把展示总结为面向受众和目标的沟通工程。 按客人备菜:先识别受众。有啥菜吃啥饭:尊重数据本身。给足上下文。用图讲故事。和听众交互。总结重要点。 用途/任务族:面向受众的性能展示 初评说明:尊重数据、上下文与关键点预计改善常规理解;故事与交互不代替事实。 |
| 玄阶中级 | 图表选择矩阵 | 图表选择 图形类型应匹配数据关系。 线图适合时间趋势。CDF/PDF适合分布。散点/气泡适合变量关系。热图适合二维密集模式。 用途/任务族:趋势与分布图形选择 初评说明:图形按关系匹配预计减少常规展示误读,不能由图型自动得到因果解释。 |
| 玄阶中级 | 十类性能测试谱系 | 十类测试 材料列出冒烟、耐力/浸泡、基准/回归、负载、断点、尖峰、可扩展性、容量、瓶颈、压力测试。 它们的区别在目标和负载形态。不能只按工具名称判断测试类型。 用途/任务族:性能测试目标分类 初评说明:按目标与负载而非工具命名预计减少常规测试选型混淆,不构成实际覆盖证明。 |
| 玄阶中级 | NUMA亲和策略 | NUMA与分配 内存位置和分配方式都会影响性能。 让共享数据的线程尽量位于同一NUMA节点。必要时做CPU/内存绑定。通过内存池减少频繁分配和碎片。 用途/任务族:NUMA位置与分配优化 初评说明:在同类共享数据访问中预计改善常规远端访问与分配成本;绑定不是所有负载默认。 |
| 玄阶中级 | SSD内部页块模型 | SSD模型 SSD最小读写单位是页,擦除单位是块。 更新可能触发读-改-写和GC。写放大增加实际写入量并消耗寿命。Wear Leveling在寿命和性能间有代价。 用途/任务族:SSD写放大机制理解 初评说明:页块、GC和磨损关系预计改善常规存储诊断;具体设备读写粒度和FTL须核对。 |
| 玄阶中级 | 两步时间序列预测 | 两步预测 材料为细粒度长期预测设计两步法。 第一步用ARIMA预测未来各周总流量。第二步用168小时季节指数分配到每小时。42天历史示例预测后21天,作者认为精度足够用于工程问题。 安全裕量 预测低于真实流量时会带来SLA风险。 裕量应考虑历史预测精度。同时考虑SLA违约成本和过度部署成本。 用途/任务族:有季节结构的流量预测 初评说明:周总量与小时分配预计改善常规长期预测成本;误差与安全裕量已有提醒,不把案例当准确率保证。 |
| 玄阶中级 | 三元素干扰治理 | 三元素治理 三个措施分别控制堆分配、交换和THP。 用-XX:+AlwaysPreTouch预分配JVM堆页。用cgroup等保护关键堆页,或在合适同类平台关闭swap。根据可用内存、直接扫描率和THP聚合CPU动态调整THP。 用途/任务族:已核版本平台的Java干扰调整 初评说明:堆页、交换与THP分别控制预计有中段同族收益;不把旧参数或关闭swap当迁移默认。 |
| 玄阶中级 | HTTP传输状态机 | 状态机落地 HTTP传输用T0–T5记录请求、首字节和结束事件。 正常成功路径最终到状态F。异常状态转移结合两端队列即可进一步定位。 用途/任务族:HTTP成功异常阶段定位 初评说明:事件与状态关系预计改善常规定位分段;T0至T5含义和真实异常路径需另核。 |
| 玄阶中级 | 数据中心选址因子 | 选址因子 “靠近用户”只是数据中心选址的一项因素。 还要考虑电力稳定、自然灾害、社会稳定、法律、人才、供应和建造成本。数据主权/隐私法律会直接影响可行地点。 用途/任务族:数据中心选址可行性检查 初评说明:用户距离以外的电力、灾害、法律与供给检查预计减少常规单因素错选。 |
| 玄阶中级 | 模块化Pod网络 | Pod网络 模块化网络通过重复标准单元扩展。 每个Pod固定机柜规模。多个骨干平面连接Pod。需要计算、内部网络或外部连接时分别增加对应模块。 用途/任务族:标准单元式网络扩容 初评说明:Pod和独立模块扩展预计改善常规容量增长的组合成本;互联瓶颈与故障域需实际验证。 |
| 玄阶中级 | 服务效率八分类 | 八类效率 八类方法分为软件服务与非软件容量两个大方向。 软件效率。服务架构效率。服务部署效率。跨平台效率。硬件效率。容量组织效率。容量资源回收。用户效率。 用途/任务族:服务效率改善机会盘点 初评说明:软件与容量多方向视图预计减少常规只盯局部代码的遗漏;分类存在不证明改进效果。 |
| 玄阶中级 | 效率提升五条执行原则 | 五条执行原则 效率项目要有治理机制。 明确所有权和承诺。按效率目标计划执行。为每个组件部署检测工具。保持跨团队协作。做公司范围协调。 用途/任务族:跨团队效率项目执行 初评说明:owner、目标、检测与协作预计减少常规执行脱节;检测工具齐全不等于有效收益。 |
| 玄阶中级 | 持续学习循环 | EPUB第265–268节 · 结束语-不愁明月尽,自有夜珠来 核心思想:结束语强调把课程当作起点:技术持续演进,需要跟踪专业博客、工程博客、书籍和会议论文,同时继续训练团队协作与情商。 关键框架 持续学习循环 行动要点 硬技能需要持续跟踪软件、硬件和工具演进。材料推荐通过专业博客、公司工程博客和学术会议补充学习。软技能同样需要在真实协作中反思和训练。 持续技术学习 课程之外还要持续摄取一手技术资料。 定期阅读性能专家和工程团队博客。按工作领域阅读书籍与会议论文。把新知识带回实际项目验证。 持续软技能学习 职场合作也需要长期迭代。 理解他人目标和利益。复盘沟通与协作中的教训。把课程结束视为继续实践的起点。 用途/任务族:持续专业与协作学习 初评说明:跟踪一手材料并带回项目验证预计改善常规知识更新;阅读量不等于技能或效果。 |
| 玄阶中级 | 有效沟通四准则 | 有效沟通四特征 沟通要及时、透明、一致、清楚。 正式渠道和可追溯记录提高透明度。团队对外信息保持一致。结论表达要减少歧义。 用途/任务族:工程协作信息一致性 初评说明:及时、透明、一致、清楚加可追溯记录预计减少常规协调误解,不替代正确决策。 |
| 玄阶中级 | 复杂性症状—根因模型 | 用变更放大、认知负荷、未知的未知识别复杂性,并追溯到依赖性与模糊性。 适用:诊断设计复杂性时 用途/任务族:AI代码设计复杂性诊断 初评说明:预计能把难维护的直觉转成可检查的变化传播问题;未预计单凭模型解决困难设计。 |
| 玄阶中级 | 战略式编程 | 把长期系统结构放在短期“先让它工作”之前,并持续进行小额设计投资。 适用:开发新功能或修复问题时 用途/任务族:迭代功能的长期结构取舍 初评说明:预计减少无限期临时补丁;投资幅度与收益仍依当前需求。 |
| 玄阶中级 | 先写注释 | 在实现前写抽象注释,用文字是否清晰来检验设计。 适用:设计新类或公共方法时 用途/任务族:公共接口设计说明检验 初评说明:预计较早发现含混职责和接口假设。 |
| 玄阶中级 | 抽象增量 | 增量开发可以推迟尚不需要的抽象,但一旦需要就把抽象本身设计完整。 适用:采用敏捷或迭代式开发时 用途/任务族:迭代中的抽象时机 初评说明:预计减少过早抽象并保持必要边界。 |
| 玄阶中级 | 价值优先推进 | 优先选择最耗时、最昂贵、最影响质量且 LLM 擅长的环节做试点。 适用:理解、评估或应用这一结构时 用途/任务族:AI开发能力试点选择 初评说明:预计把试点集中到可验证价值而非工具新颖性。 |
| 玄阶中级 | 第三方模型六维选择 | 性能适用、成本、开闭源、迭代、硬件兼容、法律合规。 适用:理解、评估或应用这一结构时 用途/任务族:开发助手模型选型 初评说明:预计减少只看排行榜的选型遗漏。 |
| 玄阶中级 | 第三方 API 十二维选择 | 性能、成本、稳定性、安全、易用性、供应商、扩展、多模态、算力、案例、试用、长期合作。 适用:理解、评估或应用这一结构时 用途/任务族:AI API供应方选择 初评说明:预计补充稳定性、安全与长期供应风险审查。 |
| 玄阶中级 | 代码 RAG | 以代码片段作为 key、完整函数作为 value,用少量相关代码示例增强生成。 适用:理解、评估或应用这一结构时 用途/任务族:已有仓库示例增强代码生成 初评说明:预计改善风格和接口贴合度;卡文不含完整检索评估。 |
| 玄阶中级 | INVEST 需求评审 | 从独立、可协商、有价值、可估算、小、可测试等维度检查用户故事质量。 适用:理解、评估或应用这一结构时 用途/任务族:用户故事可交付性评审 初评说明:预计暴露无法验收或过大的需求单元。 |
| 玄阶中级 | 巴士系数 (Bus Factor) | 团队 导致项目陷入严重困境所需的最少团队成员流失数量。 用于识别与“巴士系数”相关的工程约束、风险或决策情境。 用途/任务族:关键维护与恢复知识连续性 初评说明:预计帮助定位单人知识依赖和交接缺口。 |
| 玄阶中级 | 古德哈特定律 (Goodhart's Law) | 规划 当一个度量标准成为目标时,它就不再是一个好的度量标准。 用于识别与“古德哈特定律”相关的工程约束、风险或决策情境。 用途/任务族:开发效率指标与真实交付偏差识别 初评说明:预计提醒防止调用数、提交量或代码行数替代用户结果。 |
| 玄阶中级 | 测试金字塔 (Testing Pyramid) | 质量 一个项目应该有许多快速的单元测试,较少的集成测试,和只有少量的 UI 测试。 用于识别与“测试金字塔”相关的工程约束、风险或决策情境。 用途/任务族:AI代码测试层级取舍 初评说明:预计减少只依赖慢且脆弱UI测试的维护成本。 |
| 玄阶中级 | 技术选型多维决策框架 | 框架 10 从团队能力、上市时间、互操作、成本、可逆性、部署、构建/购买、模块化、运维与基准等维度权衡。 适用评估新工具或替换现有技术时首次单元u04 用途/任务族:数据技术栈与替换决策 初评说明:预计减少只追逐工具名气和单一性能指标。 |
| 玄阶中级 | 流式窗口与水位线 | 框架 25 会话、固定、滑动窗口和水位线把无界事件变成可触发计算的动态范围。 适用需要实时聚合、会话化或处理迟到事件时首次单元u08 用途/任务族:实时聚合的窗口与迟到语义理解 初评说明:预计减少固定时间与事件完成范围混淆。 |
| 玄阶中级 | 服务阶段信任模型 | 框架 28 质量校验、可观测性、SLA/SLO 与持续沟通共同维持数据产品信任。 适用向分析、ML 或业务用户交付数据产品时首次单元u09 用途/任务族:数据服务持续验收与信任维护 初评说明:预计减少只做一次离线校验就宣称数据产品可靠。 |
| 玄阶中级 | 序列化格式选择框架 | 框架 37 行式适合记录交换,列式适合分析扫描,混合表格式为更新、快照和模式演进增加管理层。 适用选择文件格式、湖表格式或跨系统交换格式时首次单元u12 用途/任务族:数据文件与交换格式选型 初评说明:预计减少访问模式与存储表示不匹配。 |
| 玄阶中级 | 人月不可互换与Brooks法则 | 工作量与日历时间受顺序、培训和沟通约束,追加人员会改变任务本身。 使用场景 · 项目延期、赶工或讨论加人时 用途/任务族:AI辅助项目的人力与日历估算 初评说明:预计纠正人数或Agent数量线性提速的估算。 |
| 玄阶中级 | 基于同类项目数据的系统估算 | 大型系统估算应依赖真正可比的系统级历史数据。 使用场景 · 估算规模、工期和人员时 用途/任务族:软件交付工期及人员估算 初评说明:预计比把代码实现时间直接当总交付时间更稳妥。 |
| 玄阶中级 | 可持续工作周 | 页面归纳:长期加班无法持续创造额外产出;它会通过隐性补偿、质量下降、倦怠和人员流失把成本转移到未来。 适用:当你需要判断“03 维也纳在等你”所讨论的人、团队、环境或组织问题时 用途/任务族:可持续开发容量安排 初评说明:预计减少用短期冲刺冒充稳定产能。 |
| 玄阶中级 | 异步优先的打断判断 | 页面归纳:同步通信的真正成本在于它强制抢占接收者的注意力;管理应让“是否值得现在打断”成为通信选择的核心问题。 适用:当你需要判断“11 电话”所讨论的人、团队、环境或组织问题时 用途/任务族:开发沟通是否值得即时打断的取舍 初评说明:预计减少非紧急同步沟通的重复上下文重启。 |
| 玄阶中级 | 工具调用四步循环 | 声明工具→模型选择工具和参数→框架执行→结果回填上下文。 适用:实现 Function/Tool Calling 时 用途/任务族:模型与工具框架的调用协议 初评说明:预计帮助分清模型提议和真实框架执行。 |
| 玄阶中级 | Skill 路由与执行分离 | 元数据以末尾 meta 消息 emit-once,完整内容通过专用 Skill 工具按需加载。 适用:兼顾 KV Cache 与指令遵循时 用途/任务族:特定Harness的路由与加载实现 初评说明:预计在支持该协议的运行时降低重复上下文;不外推所有CLI。 |
| 玄阶中级 | 隔离优于压缩 | 大体积中间探索交给独立子 Agent,只把结论回传主上下文。 适用:搜索代码库、读取大量文件等高噪声子任务 用途/任务族:高噪声子任务的上下文隔离 初评说明:预计减少主上下文污染;不保证收益超过通信和重复开销。 |
| 玄阶中级 | 记忆三层评估 | 基础回忆→多会话检索→主动服务逐级衡量个性化 Agent 的记忆能力。 适用:评估长期用户记忆是否有实际助理价值时 用途/任务族:开发助手长期记忆的任务评估 初评说明:预计避免只测存储或检索成功就宣称记忆有用。 |
| 玄阶中级 | 沙盒隔离层级 | OS 级隔离→容器→microVM 逐级增强,外加 CPU/内存/磁盘/网络配额。 适用:Agent 可执行不可信代码时 用途/任务族:不可信代码执行的隔离方案初筛 初评说明:预计帮助审查执行环境边界;未判定某层普遍更安全。 |
| 玄阶中级 | LLM-as-a-Judge + Rubric | 用明确评分标准约束评委模型,减少自由打分的漂移和偏差。 适用:答案难以用规则精确判分时 用途/任务族:不可精确自动判分的答案评审 初评说明:预计降低自由打分漂移;尚不预计消除共同偏差。 |
| 玄阶中级 | 用户域—模型域双向转换 | 把现实任务翻译成模型熟悉的文档,再把补全翻译成结果。 适用时当定位提示工程在系统架构中的职责时 用途/任务族:业务任务与模型文档的适配 初评说明:预计暴露提示适配层和业务验收之间的责任。 |
| 玄阶中级 | 上下文来源矩阵 | 从用户/应用与当前/历史等维度系统寻找可能上下文。 适用时当担心遗漏动态上下文来源时 用途/任务族:开发提示动态上下文来源识别 初评说明:预计减少遗漏当前用户输入或使用过时应用状态。 |
| 玄阶中级 | 契诃夫的枪支谬误 | 无关上下文会被模型强行赋予意义,从而挤占并扭曲真正有用的信息。 适用时当考虑“多放一点也许有用”的上下文时 用途/任务族:无关仓库上下文导致的误关联风险 初评说明:预计提醒按任务选择而非无限堆文档。 |
| 玄阶中级 | 加法—减法贪心算法 | 从空提示逐步加入高价值元素,或从全集逐步删掉低价值元素。 适用时当需要高效近似提示组装优化时 用途/任务族:提示元素的有界启发式选择 初评说明:预计降低盲试成本;未保证最优或困难任务迁移。 |
| 玄阶中级 | 系统边界设定原则 | 围绕当前问题确定合理的分析边界 适用:用于第5章 全面思考所讨论的系统分析情境。 用途/任务族:AI排错与设计分析范围取舍 初评说明:预计减少无关扩读与遗漏关键上下游。 |
| 玄阶中级 | 因果回路图 | 用变量、带极性的因果连接和反馈回路表达系统结构。 适用:需要解释动态行为、识别增强/调节回路或团队共建结构模型时。 用途/任务族:复杂系统反馈结构表达 初评说明:预计帮助讨论反馈假设和时滞,不证明真实因果。 |
| 玄阶中级 | 校准估计 | 用概率与置信区间表达主观不确定性,并用真实频率检验估计者是否过度自信或自信不足。 用途/任务族:开发风险与工期主观估计校准 初评说明:预计识别过度自信;未验证具体人或模型已校准。 |
| 玄阶中级 | 选择性启发式搜索 | 用途/任务族:大候选空间中的有界搜索排序;机制:用可比较线索优先扩展候选,同时保留剪枝理由和未搜索范围。;适用:候选空间大且有可验证的希望度估计。;不适用:没有可比较的评价信号或遗漏代价不可接受。;前提:候选状态、目标判据、预算和剪枝风险已声明。;边界:不声称完整搜索、全局最优或高希望度必然有效。 |
| 玄阶中级 | 信息价值 | 用途/任务族:有限检索与实验预算的信息选择;机制:只优先获取可能改变选择且净收益为正的信息。;适用:信息获取有成本,且不确定性可能改变行动。;不适用:无可选行动或信息不会影响决策。;前提:当前选项、未知参数、损失和信息来源可描述。;边界:完美信息价值是模型上界,不代表现实可获得;缺概率或损失资料不能伪造数字。 |
| 玄阶初级 | "钢人化"原则(最强版本理解) | 原文用途:减少无效争论/误解;让重构建议更贴近原意图。 问题:减少无效争论/误解;让重构建议更贴近原意图。 机制:- 先把现有方案表达成最强版本(目标、约束、权衡) - 再提出改进(保留其优势,指出代价) 预期结果:现有方案的最强解释及优点。;保留优势、说明代价和风险的改进方案。 |
| 玄阶初级 | 方法论怀疑(笛卡尔式) | 原文用途:把不可靠前提当事实是 vibe coding 常见事故源。 问题:把不可靠前提当事实是 vibe coding 常见事故源。 机制:- 对关键前提标注:是否可验证 - 不可验证 → 必须加运行时校验/超时/重试/降级;并写会失败的测试 预期结果:关键前提及可验证性清单。;不可验证前提对应的防线和失败测试。 |
| 玄阶初级 | 递归式 AI 治理 | AI既求解问题,也生成、选择、审查与修正下一层模型或智能体,并通过跨层反馈扩大可自动化接口。 问题:复杂认知过程可以递归自动化到什么层级,价值判断应在哪里保留人类主权。 机制:实例→假设→选择→推演→检验→归因→更新;以验证层、终止条件、异常回滚和人类最终裁决构成治理闭环。 条件:目标、约束与评价信号具有足够可识别性。 限制:否则易出现欠决定性、代理目标偏移、误差递归放大与外推失效。 预期结果:减少人工介入并形成自主闭环,通过跨层反馈持续扩大可自动化的接口。 |
| 玄阶初级 | 吸引子 | 把“项目变好”表示为由目标、可观测变量与硬约束组成的可比较、可更新的软件演化方向。 问题:如何把开放式工程目标转为可度量、可检验、可更新且长期方向一致的约束系统。 机制:变更实例→状态估计→距离比较→方向选择→结果检验→规则更新;经验反馈持续校准距离函数、权重和约束。 条件:目标可识别,指标对真实质量具有有效映射,多目标冲突有稳定裁决。 限制:否则会出现欠决定性、指标投机与局部最优。 预期结果:将“项目变好”形式化为可比较、可更新的优化方向 |
| 玄阶初级 | 拍扁 | 将连续、关系密集且高维的对象转换为机器可计算的有限表示,选择性保留任务所需结构。 问题:有限计算系统如何压缩现实,同时保留预测、推理与干预所需结构。 机制:现实实例→表征生成→候选结构→模型选择→推演计算→经验检验→表示更新;不同表示形成不同归纳偏置与可见信息范围。 限制:该过程受信息损失、可识别性、欠决定性及分布外外推能力约束,表征选择失当会使后续计算产生系统性偏差。 预期结果:选择性保留任务相关结构的机器可计算表示,如表格、JSON、向量、图、树或序列。 |
| 玄阶初级 | 5.1 程序员的三大美德 | 5.1 程序员的三大美德 — 程序员三大美德把懒惰、急躁和傲慢转化为自动化、效率意识和专业责任 三大美德:懒惰推动自动化,急躁推动消除低效并预先改善结构,傲慢推动专业质量。书中同时提醒高强度加班会伤害长期产出与质量。适用判断:重复劳动、低效流程或质量妥协出现时行动:自动化重复、主动消除低效,并以专业自尊守住质量理由:这些习惯推动程序员减少无价值劳动并持续改进 用途/任务族:程序员重复劳动与质量习惯 初评说明:自动化、消低效与专业责任预计有初段过程收益;人格比喻不构成能力评价。 |
| 玄阶初级 | 5.2 童子军规则 | 5.2 童子军规则 — 童子军规则要求每次离开代码时都让它比接手时更干净一点 适用判断:修改现有代码或提交变更时行动:顺手完成一个小而安全的清理并保持测试通过理由:持续的小改善可以抵消代码自然劣化 用途/任务族:任务范围内的小步清理 初评说明:安全且有测试的小改善预计积累初段收益;不批准范围外顺手重构。 |
| 玄阶初级 | 5.6 TMTOWTDI | 5.6 TMTOWTDI — TMTOWTDI认为工具可提供多种表达路径,让使用者根据语境选择最自然的方式 适用判断:设计面向他人的语言、DSL或API时行动:允许有意义的多种用法,同时控制工具内部复杂度理由:把必要复杂度留在工具侧可让不同用户场景保持简单 用途/任务族:多用户表达路径设计 初评说明:有意义的多种用法预计产生初段可用性收益,源文也要求控制工具复杂度。 |
| 玄阶初级 | 7.3 破窗效应 | 7.3 破窗效应 — 破窗效应提醒小的代码劣化若长期无人处理,会降低团队维护标准并继续扩散 适用判断:发现明显坏代码、临时补丁或失修区域时行动:尽快修复;暂时无法修复就明确标记并纳入管理理由:被忽视的破损会传递“这里没人负责”的信号 用途/任务族:失修代码信号与管理 初评说明:尽早修复或登记预计有初段维护收益;社会类比不是腐化必然传播的因果证明。 |
| 玄阶初级 | 7.4 熵增原理 | 7.4 熵增原理 — 熵增原理指出代码会自然走向混乱,质量需要持续投入才能维持 书中列出的腐化迹象包括僵化、脆弱、难移动、环境黏滞、无谓复杂、重复和晦涩。适用判断:系统出现僵化、脆弱、难移动、重复或晦涩等劣化迹象时行动:持续重构并建立团队共同维护文化理由:不主动整理,变化会不断增加结构无序度 用途/任务族:代码劣化持续维护 初评说明:腐化迹象提醒预计改善初段维护意识;不把物理熵定律当软件效果定理。 |
| 玄阶初级 | 未来预测准确度模型 | 预测准确度会随系统复杂性与时间跨度增加而下降。 使用:面对基于未来假设的架构决策时 用途/任务族:远期架构假设审查 初评说明:复杂性与时间跨度提醒预计减少初段过度预测;没有具体误差模型,不当作通用定量关系。 |
| 玄阶初级 | 两遍已太多 | 同一概念出现第二套实现时,立即提炼只覆盖已知共性的共享方案。 使用:增量开发、消除重复和重构时 用途/任务族:已知重复概念的共享抽取 初评说明:仅覆盖已知共性预计有初段同步成本收益;第二次出现不作为自动抽象的普遍阈值。 |
| 玄阶初级 | 复杂代码六步治理 | 收集症状、会议定位、建问题单、排优先级、分配、持续计划。 使用:组织层面治理复杂代码库时 用途/任务族:复杂代码组织治理 初评说明:症状、优先级与责任分配预计有初段过程收益;会议和问题单不等于真实质量改善。 |
| 玄阶初级 | 软件即知识 | 代码是知识的载体,因此可理解性、复用、学习和误解规律都会直接影响软件。 使用:解释可读性、复用和学习对质量的作用时 用途/任务族:代码可理解性价值说明 初评说明:知识载体视角预计提供初段质量判断帮助;没有具体转化步骤,不预定更高结果带。 |
| 玄阶初级 | 编程之道的整体和谐观 | 程序质量被放进操作系统、编译器、应用和用户的多层关系中理解。 适用:分析局部代码问题可能来自更大系统层级时 用途/任务族:局部问题的系统层级提醒 初评说明:多层关系观预计有初段诊断提醒收益;寓言性整体观不提供具体因果判别。 |
| 玄阶初级 | 语言谱系与多样目的 | 不同层级和语言各有目的,语言多样性本身并非缺陷。 适用:比较语言/工具时先明确任务和层级 用途/任务族:语言与工具的目的匹配 初评说明:多样目的提醒预计减少初段工具争论与错配,不证明任意语言同样适用。 |
| 玄阶初级 | 设计先于测试 | 测试阶段才改变根本设计已经太晚,设计应更早稳定关键结构。 适用:项目从设计进入实现和测试前 用途/任务族:关键结构的早期验证 初评说明:预计有初段避免测试末期才发现根本设计问题的收益;不是实现后才编写测试的授权。 |
| 玄阶初级 | 真实时间表 | 团队共同理解的实际节奏比公开计划和里程碑更能反映项目真实进度。 适用:评估软件项目进度与承诺时 用途/任务族:项目真实进度观察 初评说明:团队实际节奏预计有初段校正计划偏差的帮助;真实节奏仍须可核验产出支撑。 |
| 玄阶初级 | 倒置树式领导 | 优秀领导把自己看作组织的支撑者,使员工感到成果来自自身努力。 适用:设计领导角色与组织权责时 用途/任务族:支撑式领导角色讨论 初评说明:支撑员工而非归功自身预计有初段角色澄清帮助;不构成组织效果普遍规律。 |
| 玄阶初级 | 技术介入的组织成熟度 | 通信技术会放大既有行为模式,组织成熟度决定新工具的实际效果。 适用:引入协作/通信工具时 用途/任务族:协作技术引入判断 初评说明:技术放大原有行为的假设预计有初段组织检查价值;需观察具体机制而非先判组织成熟度。 |
| 玄阶初级 | 蜘蛛网系统观 | 互联系统对小扰动会整体响应,粗暴冲击可能破坏网络结构。 适用:干预复杂互联系统时 用途/任务族:互联系统干预的风险提醒 初评说明:整体响应类比预计有初段避免粗暴变更的帮助;不证明任何小扰动都会破坏系统。 |
| 玄阶初级 | 退避式重试 | 重试放大风险 过载时重试策略本身可能成为新的流量源。 材料建议采用指数退避等方式降低重试频率。重试需要与系统真实承载能力配合。 用途/任务族:过载重试频率控制 初评说明:退避预计有初段降低重试放大的效果;源文缺总预算、幂等和抖动,不构成完整重试器。 |
| 玄阶初级 | CDN边缘缓存流程 | CDN流程 CDN通过把内容靠近用户降低跨网传输。 DNS把请求导向边缘节点。缓存未命中时边缘回源。TTL控制内容在边缘的缓存生命周期。 用途/任务族:CDN回源与缓存关系理解 初评说明:边缘、回源与TTL简化流程预计有初段排查帮助;不保证DNS是所有CDN的唯一机制。 |
| 玄阶初级 | 硬件趋势到软件策略 | 长期硬件趋势 软硬件应共同演化。 CPU:更多核、频率增长有限,强调水平扩展。内存:DRAM昂贵,考虑NVM和降低内存占用。存储:容量增长快于IOPS,热数据放更快介质。网络:带宽升级同时仍应减少跨机架/跨中心流量。单处理器高密度多核可降低硬件与许可证成本。 用途/任务族:硬件趋势引导的软件规划 初评说明:趋势提醒预计有初段策略帮助;作者时点的NVM、密度和成本预测不代表当前供给。 |
| 玄阶初级 | 服务器生命周期 | 服务器生命周期 容量从采购到报废需要全生命周期管理。 按机架批量订购并经过预配。进入备用池再分配给服务。运行期维护磁盘、主板、系统和软件。退役时擦除数据并销毁存储介质。 用途/任务族:服务器容量生命周期理解 初评说明:从订购到退役的阶段提醒预计有初段资产检查收益;没有完整退役和数据擦除验证规范。 |
| 玄阶初级 | 渐进配额告警与任务升级 | 配额升级机制 材料给出渐进式告警/任务优先级机制。 每天监控产品组使用量与配额。连续7天增长过快则通知并建任务。超过年度总配额后提升优先级。连续3周超总配额且无措施则升到最高优先级。 用途/任务族:单组织配额告警与升级 初评说明:连续观测和任务优先级升级预计有初段响应收益;7天与3周为案例阈值,缺去重与恢复结果。 |
| 玄阶初级 | 海勒姆定律 (Hyrum's Law) | 架构 当 API 的用户足够多时,你系统所有可观察到的行为都将被某些人所依赖。 用于识别与“海勒姆定律”相关的工程约束、风险或决策情境。 用途/任务族:公共API消费者兼容风险识别 初评说明:预计提醒检查隐含消费者;卡文不提供兼容迁移方法。 |
| 玄阶初级 | 抽象泄漏定律 (The Law of Leaky Abstractions) | 架构 所有非平凡的抽象,在某种程度上都是有泄漏的。 用于识别与“抽象泄漏定律”相关的工程约束、风险或决策情境。 用途/任务族:跨层失败排障的抽象边界识别 初评说明:预计提醒沿真实调用链核各层承诺。 |
| 玄阶初级 | 杀虫剂悖论 (Pesticide Paradox) | 质量 重复运行相同的测试,随着时间的推移会变得越来越不有效。 用于识别与“杀虫剂悖论”相关的工程约束、风险或决策情境。 用途/任务族:测试覆盖陈旧性的风险提示 初评说明:预计提示补充新风险与输入,而非反复展示同一绿色结果。 |
| 玄阶初级 | E参数 | 脑力工作的有效时间应以连续专注的“流时间”理解;出勤小时会掩盖重新进入状态的成本,因此环境质量需要衡量不被打断的时间比例。 适用:当你需要判断“10 大脑时间与身体时间”所讨论的人、团队、环境或组织问题时 用途/任务族:工作窗口与连续专注容量识别 初评说明:预计提示检查打断与重启成本;卡文未给E参数公式。 |
| 玄阶初级 | 会议结束条件测试 | 页面归纳:健康会议必须知道“怎样才算结束”:工作会议围绕共同决策,参与者只包括需要共同决定的人;没有完成条件、按时间结束的会议往往是仪式。 适用:当你需要判断“31 会议、独白和交流”所讨论的人、团队、环境或组织问题时 用途/任务族:需求评审与协作会议完成条件 初评说明:预计减少无产物会审;未包含完整会议操作规约。 |
| 玄阶初级 | 时间感三轴 | Urgency、Persistence、Vigilance 分别控制时间预算、是否坚持和异常时延警觉。 适用:需要 Agent 感知物理时间并调整执行节奏时 用途/任务族:长工具调用的时间风险识别 初评说明:预计减少把调用等待与任务进展混为一谈。 |
| 玄阶初级 | 提示工程复杂度阶梯 | 从薄应用层,到增强上下文与状态,再到工具使用和自主能力。 适用时当判断系统应增加多少 LLM 编排复杂度时 用途/任务族:LLM编排复杂度的架构识别 初评说明:预计帮助识别正在新增的所有权与风险。 |
| 玄阶初级 | 小红帽原则 | 让提示使用训练数据中常见、真实、结构明确的文档模式。 适用时选择提示整体格式、工具表示或微调后提示风格时。 用途/任务族:提示整体文档模式选择 初评说明:预计改善某些模型的格式理解;训练分布实际未知。 |
| 玄阶初级 | 位置—重要性—依赖三维关系 | 元素的放置位置、相对价值与依赖/冲突共同决定组装方式。 适用时当多个提示元素相互影响时 用途/任务族:提示元素组合的相互影响识别 初评说明:预计提示检查互相冲突与顺序相关性。 |
| 玄阶初级 | 行为模式图 | 用关键变量随时间的轨迹识别系统动态 适用:用于第3章 深入思考所讨论的系统分析情境。 用途/任务族:开发流程与故障变化模式观察 初评说明:预计比单时点截图更易看到延迟和波动。 |
| 玄阶初级 | 反馈速度条件 | 理论—实践循环速度至少要跟上客体变化速度。 适用 对象快速变化、反馈有时滞时 用途/任务族:快速变化对象的证据新鲜度检查 初评说明:预计提示日志、版本或观测已经过期。 |
| 玄阶初级 | 反馈过度 | 理论修正幅度过大可造成认识在极端之间振荡。 适用 观察到反复全盘否定与反向修正时 用途/任务族:反复大幅修改方案的振荡风险识别 初评说明:预计提醒只更新被新证据影响的假设。 |
| 黄阶高级 | 网络效应 | 使用者、连接节点、互操作对象及生态资产增加与网络价值上升的解释关系。 问题:使用者、节点、互操作对象与生态资产的增加如何关联网络价值。 机制:更多使用者、节点、互操作对象和生态资产与系统价值上升相联系。 |
| 黄阶高级 | 自然化认识论(Naturalized epistemology) | 原文用途:承认人类/模型都有系统性偏误,用流程与工具把偏误外包给检查器。 问题:承认人类/模型都有系统性偏误,用流程与工具把偏误外包给检查器。 机制:- 默认自动化:lint+format+类型检查+测试 - 高风险路径:必须性质测试/模糊测试/运行时校验 - 结论至少双证据(测试+指标) 预期结果:常见误判点及自动化防线。;高风险路径的性质/模糊/运行时校验。 |
| 黄阶高级 | 合成模型 | 用层级组合、相互作用、跨层约束与涌现解释复杂形态如何逐层构成。 问题:有限微观规则如何经组合、变异与反馈生成具有新规律的高层级结构。 机制:基础单元→组合规则→结构形成→跨层约束→宏观涌现→经验检验→模型更新;各层规律受到上下层耦合、反馈与边界条件限制。 条件:外推依赖可检验预测与模型选择。 限制:跨尺度映射可能欠识别、欠决定;同一宏观结构可对应多种微观机制。;弦、量子几何、全息原理与涌现时空等更深层假设仍属开放研究。 预期结果:解释复杂形态如何由低层级单元及其相互作用逐层构成 |
| 黄阶高级 | 预测加工与模型更新 | 在不完备信息下,以经验、假设与新证据形成现实表征,并用预测误差修正内部生成模型。 问题:控制证据生成机制,会在多大程度上约束主体可接受的现实模型。 机制:经验→假设→选择→推演→检验→更新;感知与行动提供证据,依据预测误差调整内部生成模型。 条件:输入、反馈与证据判准具有相对稳定性。 限制:这些条件被持续操控时,可能引发可识别性不足、证据欠决定及外推偏差。 预期结果:解释主体如何在不完备信息下形成并修正现实表征 |
| 黄阶高级 | 变量名索引维护 | 建立统一变量索引,列出名称、说明、位置和出现频率供团队与 AI 维护。 问题:变量命名如何统一登记和维护。 机制:创建变量名大全文件,按变量名、描述、文件路径和出现频率组织条目。 预期结果:统一命名、方便全局搜索与统一管理/重构,降低命名冲突和语义不清风险。 |
| 黄阶高级 | 3.48 沉默原则 | 3.48 沉默原则 — 沉默原则要求成功时没有必要就不要输出噪声 适用判断:命令正常运行却产生大量无价值输出时行动:默认保持安静,只在需要的信息或错误出现时输出理由:低噪声便于组合和自动化,也让异常更突出 用途/任务族:命令成功输出控制 初评说明:仅预测在常规命令组合中满足低噪声输出要求;不据此预定超越合理基线的系统性增益。 |
| 黄阶高级 | 3.56 小就是美 | 3.56 小就是美 — 小就是美强调程序规模越小越容易理解、验证和组合 适用判断:一个工具开始承担过多功能时行动:拆成更小的程序或模块理由:小规模降低复杂度并促进复用 用途/任务族:过大工具规模初筛 初评说明:预计能在常规工具设计中发现规模膨胀;只有大小判断,不能直接预期稳定的整体收益。 |
| 黄阶高级 | 开源社区三问题 | 吸引贡献、降低门槛、留住贡献者;执行顺序优先解决留存。 使用:建设或修复开源贡献者社区时 用途/任务族:开源贡献流程规划 初评说明:预计能在限定社区任务中提出留存、门槛与吸引的常规检查;不预定顺序对所有社区有稳定收益。 |
| 黄阶高级 | 空间—时间双重约束 | 空间和时间被视作编程的两极资源约束。 适用:做性能、资源和交付权衡时 用途/任务族:时间与空间资源权衡入门 初评说明:预计可在常规资源讨论中提出双重约束;不能覆盖正确性、权限和全部交付因素。 |
| 黄阶高级 | 自主性—效率关系 | 会议、干预和固定作息会损害知识工作的效率与乐趣;交付清楚时自主性更重要。 适用:设计开发团队管理方式时 用途/任务族:有明确交付的团队自主性 初评说明:仅预计为限定管理情境提供常规提醒;不把会议、作息和干预一概视为低效原因。 |
| 黄阶高级 | 观念桥梁 | 面对身份绑定的固执观点,堆积事实可能无效;需要能连接对方本性与现实的观念。 适用:做高阻力说服和变革沟通时 用途/任务族:高阻力变革沟通提醒 初评说明:仅预计在限定说服任务中提醒理解对方立场;缺可验收操作安排,不预定稳定沟通增益。 |
| 黄阶高级 | 领导退出准则 | 组织成熟的一个标志是它能在没有持续指引的情况下运行,领导可以退出。 适用:设计组织能力与继任机制时 用途/任务族:组织继任与持续指引讨论 初评说明:预计能在常规继任任务中提出独立运行目标;不把领导离开直接当组织成熟证据。 |
| 黄阶高级 | 性能数字锚点 | EPUB第62–69节 · 08-经验总结:必须熟记的一组常用性能数字 核心思想:建立“性能数字直觉”可以快速筛出异常,但课程反复强调这些数字只用于量级判断,具体值会随产品、负载和技术演进而变化。 关键框架 性能数字锚点 行动要点 存储、CPU/内存、OS和网络应分别记住大致量级。延迟单位换算必须熟练:s→ms→us→ns每级1000倍。数字锚点用于初筛,最终判断仍要回到具体系统测量。 存储参考量级 课程图表给出三类介质的示例性能。 HDD:随机4KB I/O延迟约8 ms,图表带宽约150 MB/s,随机IOPS约120。SATA SSD:约100 us、500 MB/s、30K IOPS。NVMe SSD:约20 us、4 GB/s、400K IOPS。 CPU与内存参考量级 课程图表用访问层级展示延迟差异。 寄存器约1周期/0.5 ns。L1约4周期/2 ns;L2约12周期/6 ns;L3约50周期/20 ns。本地DRAM约200周期/100 ns,远端DRAM约400周期/200 ns。 网络RTT参考量级 课程按距离给出端到端RTT锚点。 机柜内部<0.1 ms,数据中心内部<0.5 ms。北京—深圳约2000公里/20 ms,上海—乌鲁木齐约4000公里/40 ms,中国—美国约10000公里/100 ms。这些都是量级参考,实际路径和包大小会改变结果。 用途/任务族:历史性能量级初筛 初评说明:预计能在常规数量级检查中达标;源文明确是时代与负载相关锚点,不预定当前硬件精确收益。 |
| 黄阶高级 | 容量二分搜索 | 在SLA约束下用数值计算和二分搜索求最小所需容量 适用:给定流量与SLA反推复制容量时 用途/任务族:SLA容量搜索方向提示 初评说明:仅预计为有独立容量判定能力的常规搜索提供方向;卡片缺单调性、界限与终止规约,不借D041补齐。 |
| 黄阶高级 | TCP队列三分诊断 | SendQ/RecvQ判别 TCP流控队列提供跨主机的快速责任隔离。 RecvQ≠0:接收端应用没及时read。SendQ=0且RecvQ=0:发送端应用没持续提供数据。SendQ≠0且RecvQ=0:数据积在发送端,网络传输慢。 用途/任务族:TCP两端队列候选根因初筛 初评说明:仅预计常规初筛有用;三式不是充分因果判据,不能据SendQ与RecvQ单独宣布网络或应用根因。 |
| 黄阶高级 | Logprobs 置信诊断 | 读取词元概率,观察模型对生成选择的相对把握。 适用时当需要分类置信、异常提示或候选比较时 用途/任务族:词元选择相对概率诊断 初评说明:预计只支持有限的词元偏好观察,不支持事实置信或用户正确率判定。 |
| 黄阶中级 | 符号序列空间与有效知识子集 | 在符号序列空间中生成候选,由经验检验估计有效性,以可计算近似压缩实验搜索空间。 问题:经验验证能否成为可计算判别机制,计算可以在什么边界内替代部分实证发现。 机制:实例→假设→选择→演绎→检验→更新;模型生成候选,代理结合逻辑、形式验证、数据、仿真与人类反馈估计有效性。 条件:验证信号可识别、评价独立、分布稳定。 限制:受欠决定性、分布外外推、代理偏差与反馈自证约束。 预期结果:验证诱导的有效性函数的可计算近似,以及对实验搜索空间的压缩。 |
| 黄阶中级 | 递归生成器自优化(仓内形式模型) | 生成器先产生产物,优化器改进产物,元生成器再据此更新生成机制;讨论生成器序列的不动点。 问题:如何把单个输出的优化转向生成机制自身的迭代更新。 机制:P=G(I)→P*=O(P,Ω)→G′=M(G,P*);反复迭代生成器空间上的自映射Φ。 条件:源文只在满足适当连续性或压缩性条件时讨论以迭代极限获得不动点。 限制:源文称生成器序列“可能收敛”,形式表示和自指结构本身不是实际改进或工程收敛的证明。 预期结果:源文目标是稳定生成能力,而非仅一个具体优化输出。 |
| 黄阶中级 | 正确方式工程观 | 相信可落地的正确方式存在,在资源足够时优先寻找能长期成立的方案。 使用:面对技术问题、团队分歧或因疲劳准备妥协时 用途/任务族:困难技术问题的探索动机 初评说明:仅预计作为不轻易妥协的常规提醒有用;信念不能证明正确解存在、唯一或资源可达。 |
| 黄阶中级 | 技术使命筛选器 | 技术更擅长消除物质、能源、空间和时间约束,对直接改变人的思维与能力更有限。 使用:评估软件创意的目标与边界时 用途/任务族:技术创意边界初筛 初评说明:仅预计在常规目标讨论中提醒约束边界;不把物质与人的二分当可行性判据。 |
| 黄阶初级 | 项目失败三条件 | 管理者不懂软件、技术负责人不爱编码、程序员缺乏长期承诺被列为三类高风险条件。 适用:做项目组织风险检查时 用途/任务族:组织风险的寓言性假设提出 初评说明:只预计可提示常规讨论中的待查组织问题;人格与承诺标签不能作为失败、概率或绩效判据。 |
| 暂不可判 | 灾备容量负载放大模型 | DR容量放大公式 若失去承担x%流量的容量单位,其余单位负载增幅为[1/(1-x)-1]×100%。 失去50%容量时剩余单位需要承担2倍总流量。A/B/C=40/40/20时,失去40%单位会让其余负载增加约67%。 用途/任务族:灾备损失后的剩余相对负载计算 初评说明:原文x%与1/(1-x)口径冲突且写成2倍总流量;已发现正确性问题,暂不赋阶,不能用低阶掩盖错误。 |
| 暂不可判 | CAP 定理 (CAP Theorem) | 架构 一个分布式系统最多只能保证一致性、可用性和分区容错性中的两项。 用于识别与“CAP 定理”相关的工程约束、风险或决策情境。 用途/任务族:分布式一致性与可用性取舍 初评说明:缺分区情境及C/A的严格口径,当前简述容易误导,暂不判阶。 |
Binary file not shown.
+1 -1
View File
@@ -25,7 +25,7 @@
## 功法总表维护
- `sync-gongfa-catalog.py`复用登记校验器与openpyxl,消费当前登记和仓内候选来源快照,不依赖`/tmp`或个人目录;`catalog.md`列品级、名称和详情解释:登记条目展示摘要/问题/机制与条件、限制、预期结果;HTML候选展示原文、用途和初评理由;Solve条目展示机制、适用/不适用范围、前提和边界;源JSON不改写,`catalog.xlsx`保留完整字段。
- `sync-gongfa-catalog.py`复用登记校验器与openpyxl,消费当前登记和仓内候选来源快照,不依赖`/tmp`或个人目录;`catalog.md`列品级、名称和详情解释,品级使用“天阶高级”等完整名称;登记条目展示摘要/问题/机制与条件、限制、预期结果;HTML候选展示原文、用途和初评理由;Solve条目展示机制、适用/不适用范围、前提和边界;源JSON不改写,`catalog.xlsx`保留完整字段。
- 默认/`--check`只读;`--write`只维护`metadata/gongfa/catalog.md`与`catalog.xlsx`,不改主登记、来源快照或初评。
- 先完整校验文字上限、目标归属与摘要,再单文件原子替换;输出软链接、越界路径、非本工具文件或并行修改均拒绝覆盖。
- 内容新版本不继承旧初评;纠正链按显式`supersedes`,不同活动情境保留原意见集合,不按时间或最高等级选一条。
+3 -2
View File
@@ -30,8 +30,9 @@ MARKER = '<!-- generated: sync-gongfa-catalog.py -->'
CREATOR = 'vibe-coding-cn:sync-gongfa-catalog.py'
GRADES = [f'{tier}-{level}' for tier in ('huang', 'xuan', 'di', 'tian')
for level in ('initial', 'intermediate', 'advanced')]
GRADE_LABELS = {f'{tier}-{level}': a + b for tier, a in [('huang', '黄'), ('xuan', '玄'), ('di', '地'), ('tian', '天')]
for level, b in [('initial', '初'), ('intermediate', '中'), ('advanced', '高')]}
GRADE_LABELS = {f'{tier}-{level}': tier_label + level_label
for tier, tier_label in [('huang', '黄阶'), ('xuan', '玄阶'), ('di', '地阶'), ('tian', '天阶')]
for level, level_label in [('initial', '初级'), ('intermediate', '中级'), ('advanced', '高级')]}
TYPE_LABELS = {'explanatory-content': '解释型', 'normative-allocation-content': '准则型',
'method-specification': '方法型', 'dao-content': '复合(保留上位)', None: '待分类'}
BATCH_LABELS = {'registry': '原登记库', 'html211': '此前四HTML', 'solve24': 'Solve已审首24', 'html96': 'HTML续提'}
+5
View File
@@ -118,6 +118,10 @@ class CatalogMaintenanceTest(unittest.TestCase):
self.assertEqual(len(rows) + 2, len(cells))
self.assertTrue(all(len(row) == 3 for row in cells), 'Markdown浏览表只保留品级、名称和解释')
self.assertEqual([row['name'] for row in rows], [row[1] for row in cells[2:]])
self.assertEqual('天阶高级', cells[2][0])
self.assertIn(('地阶高级', '第一性原理'), [(row[0], row[1]) for row in cells[2:]])
self.assertNotIn('天高', markdown)
self.assertNotIn('地高', markdown)
expected_explanations = [row['explanation'].replace('\r', ' ').replace('\n', ' ') for row in rows]
self.assertEqual(expected_explanations, [unescape(row[2]) for row in cells[2:]])
@@ -186,6 +190,7 @@ class CatalogMaintenanceTest(unittest.TestCase):
sheet = book['功法总表']
self.assertEqual(sheet.freeze_panes, 'G5')
self.assertEqual(sheet.auto_filter.ref, 'A4:R414')
self.assertEqual('天阶高级', sheet['B5'].value)
self.assertIn('=2+2', [sheet.cell(i, 3).value for i in range(5, 415)])
for row in sheet.iter_rows():
for cell in row: