Assumptions
10 months ago
- #business domain
- #coding practices
- #software development
- 构建一个充满未知数的复杂系统会导致做出大量假设。
- 技术问题有时可以通过跟随趋势正确猜测,但建议保持怀疑态度。
- 业务领域知识至关重要;学习或咨询专家是理想选择,但并不总是可行。
- 代码应反映确定性:绝对确定时用静态,不确定时用动态。
- 多态和封装通过允许轻松修改来帮助管理不确定性。
- 范围蔓延通常源于初始假设错误,而非实际需求扩展。
- 理解业务问题的开发者比仅按需求编码的开发者更能灵活适应变化。
- 前瞻性的泛化设计从长远来看能节省时间,避免未来重构的麻烦。
- 小型协同团队因目标一致和沟通高效而表现优于大型团队。
- 对知识的客观自我评估能带来更优的编码选择和更顺畅的发布流程。