子领域索引软件边界与变化从一次代码改动或故障出发,追踪规则、状态和调用者之间的依赖。 从一个问题开始 一个模块究竟答应了调用者什么? →想换掉一个模块,却发现别处依赖它碰巧返回的顺序。从「接口写了什么」往前走一步:哪些决定本该藏在里面,又有哪些行为已经被人当成承诺?切开代码,就切开了依赖吗? →从一条要发邮件的规则开始。先把判断和执行分开,再检查分层、对象和抽象:改动一条业务规则时,哪些地方还是必须一起改?一条记录能同时回答「现在」和「当时」吗? →两次查询得到了不同答案。先问你在读哪个时刻的值,再问谁能修改它。保存历史与协调写入解决的是不同的问题。坏掉一个部件,谁还能继续工作? →一个进程出了错,其余请求是否必须等待?把故障传播和性能瓶颈分开看,再追踪操作系统与服务管理者各自能控制的边界。