知识卡片
每个阶段都构建一个完整可运行的端到端原型,而不是孤立测试某个局部单元
内容
JPC团队面对一个巨大而复杂的目标时,没有把它拆成互相独立的单元分别做原型验证(类似传统单元测试的思路),而是把整个问题拆成几个逐步逼近最终目标的”阶段”——每个阶段都是一个功能更简单、但从头到尾完整可运行的系统,作为一个整体去测试,而不是先孤立地验证某个模块再拼装起来。每个阶段开工前,团队都要先想清楚这一阶段到底在优化什么、为什么,并想办法在动手写大量代码之前先证明这个方向可行。这提示一个应对复杂系统不确定性的策略:当担心”各个局部都对,拼起来却不work”时,与其继续拆得更细去测试局部,不如退一步先做一个完整但简化的端到端系统,让集成风险在早期、低成本的阶段就暴露出来。
参考来源
《架构之美》第9章《JPC:一个纯Java的x86 PC模拟程序》