Best Simple System for Now
9 days ago
- #best practices
- #system design
- #software development
- 文章探讨了软件开发中‘完美主义’(构建全面、可持续的系统)与‘实用主义’(快速、临时的解决方案)之间的二元对立,但提出了一条名为‘当前最佳简单系统’(BSSN)的中间路径。
- BSSN被定义为满足当前需求的最简单系统,编写符合适当标准,没有多余代码且具有恰好所需的健壮性。它强调‘为当下’设计,而非预测未来。
- BSSN的关键要素包括:‘为当下’(避免未来推测)、‘简单’(为当前需求最小化复杂性)和‘最佳’(编写高质量、意图清晰的代码,不偷工减料)。
- 文章反驳了对BSSN的常见反对意见,比如认为它对原型来说过度、不完整或效率低下,并强调了其益处,如早期交付、降低风险以及通过迭代开发实现适应性。
- 采用BSSN需要良好的习惯(例如避免过度工程)、勇于尝试新方法的勇气以及接受不确定性的谦逊。它鼓励从小处着手,关注反馈,并随着需求变化演进系统。
- 示例展示了BSSN的实践:为九种实体类型定制的JSON编组解决方案和XStream XML库,两者都展示了简单性和专注的功能性。
- 结论强调,BSSN兼顾质量与速度,使团队能够编写可替换、令人愉悦的代码(遵循如CUPID等原则),适应变化的需求而无需不必要的复杂性。