核心问题
我们是在建设未来,还是在为幻想付税?
工程困境
客户只需要课程购买和播放,你却先设计了:
workflow engine
plugin system
generic policy runtime
multi-tenant permission graph
半年后,业务没长到那里,团队却每天为这套抽象付学习成本。
思想模型
过度设计不是“写多了”,而是让系统背上了还不存在的问题。
好架构给未来留门。坏架构替未来盖宫殿。
好判断
判断一个设计是否过度:
当前是否有至少 2-3 个真实用例?
未来变化方向是否清楚?
抽象是否能让调用方知道更少?
如果不用它,系统是否仍然能清楚表达需求?
Atlas 案例
课程访问来源现在只有购买。不要立刻做“UniversalAccessEngine”。先写清楚 Purchase。等订阅、企业分配、兑换码都出现,再抽 CourseAccessGrant。
Atlas Action
找一个“为了未来”加的抽象。写下它已经服务的真实用例。如果少于两个,考虑先降级为具体实现。
小结
未来需要选项,不需要纪念碑。