主要观点:软件开发存在“完美主义”和“实用主义”的二分法,但不必是一种权衡,提出“当下最佳简单系统(Best Simple System for Now,BSSN)”的中间路径。
关键信息:
- BSSN 是满足当下产品需求的最简单系统,以适当标准编写,无多余或过度设计代码,各部分相互强化。
- “为现在而设计”是看到当下真实情况,克服大脑呈现的模式,这是 BSSN 的关键。
- 保持简单不是走捷径,要选择正确的做事方式,最佳代码是意图揭示的,要避免过度设计和重复。
- 反对 BSSN 的观点包括认为对原型而言是过度设计、不完整、效率低等,但实际情况并非如此,如 WhatsApp 和 SQLite 的成功案例。
- 人们不采用 BSSN 是因为常见的“我们一直这样做”态度、稀缺心态以及缺乏自律、习惯、勇气和谦逊等。
重要细节: - 以朋友爬山的路径比喻左右路径,左路径快速但粗糙,右路径更宽更清晰但耗时,两者各有作用。
- 提到 Kahneman 的系统 1 和系统 2,说明人们倾向于选择通用解决方案但应设计“为现在”。
- 引用 Antoine de Saint-Exupéry 的话说明追求完美是去除不必要的东西。
- 介绍 CUPID 原则包括可组合、遵循 Unix 哲学、可预测、惯用和基于领域等。
- 以 WhatsApp 和 SQLite 为例说明简单系统的成功。
- 以 iPhone 为例说明部分功能产品的成功。
- 引入 VAR、RAROC 和 Cost of Delay 等概念说明迭代交付的优势。
- 以厨房清洁为例说明保持代码简单需要自律和习惯。
- 以 JSON 库和 XML 流器为例说明 BSSN 的应用。
总结:BSSN 是软件开发的中间路径,能在质量和速度间取得平衡,需培养“看到当下真实情况”的技能,克服常见障碍,且可通过具体例子应用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。