管理员
keel 底座设计说明
一个后端两个前端,靠一层共享契约把它们绑在一起。为什么是这个形状,以及哪些东西被有意留在了外面。
keel 分五层:契约层(packages/shared)、接口层(apps/api)、token 与基础组件(packages/ui)、管理后台(apps/admin)、官网(apps/web)。
依赖方向是单向的:上层可以依赖下层,反过来不行。契约层不许 import 任何一个 app,因为它是两端唯一的共同事实 —— 一旦它开始依赖某一端,另一端就会被迫跟着那一端的实现走。
有意留在外面的东西:没有 GraphQL,没有 monorepo 级别的代码生成,没有把 admin 和 web 做成同一个 Next 应用。前两个是复杂度换不来收益,第三个是因为后台和官网的取数模型根本不一样 —— 后台要登录态和实时性,官网要匿名和可缓存。