你有没有过这种经历:本来只需要一个简单的脚本,最后搭建了一整套微服务架构。
过度设计的症状
- 提前优化:现在只有 100 个用户,就考虑千万级并发
- 炫技式选型:用 Kafka 替代一个简单的队列、用 K8s 部署一个单页应用
- 抽象地狱:三层接口、五层继承,为了「扩展性」牺牲了可读性
- 技术崇拜:「xx大厂用的方案肯定是对的」
为什么简单更好
- 简单的代码更容易理解和维护
- 简单的架构调试成本低
- 简单的方案迭代速度更快
- 简单不等于简陋——Antirez 的 Redis 就极其简单但极其强大
什么时候该复杂
- 明确知道未来 6 个月内会遇到的场景
- 已经撞到现有方案的瓶颈
- 团队有能力和意愿维护这套复杂方案
我的原则
Make it work, make it right, make it fast.
先让代码跑起来,再让它跑得正确,最后让它跑得飞快。大多数项目卡在了第一步,就已经开始在思考第三步了。
戒掉过度设计,是成为成熟程序员的重要一步。
评论
评论已关闭。