核心问题

如何从需求里切出正确概念?

工程困境

在线课程平台有:注册用户、买课的人、学习者、讲师、企业员工、管理员。

坏模型:

type User = { role: string; courseIds: string[]; companyId?: string }

思想模型

先找事实、关系、状态,再命名实体。

好模型

Account                 -> 登录主体
Credential              -> 登录凭证
Purchase                -> 购买事实
Enrollment              -> 学习关系
InstructorProfile       -> 讲师资料
OrganizationMembership  -> 企业成员关系
CourseAccessGrant       -> 访问权效果

Atlas Action

拿一个需求,按三列整理:

日常词 -> 背后的事实 -> 代码概念
学生   -> 报名某门课 -> Enrollment
客户   -> 有支付事实 -> Purchase / Subscription
员工   -> 属于组织   -> OrganizationMembership

小结

建模不是把名词搬进代码,而是找出让名词成立的事实。