BFF:一层薄适配器
负责人本就最擅长的那条轴线——后端——却是整个项目里最小的仓库:一个只有 12 次提交的 FastAPI BFF(backend-for-frontend,即"前端专属后端"——一台由客户团队拥有、专为某一个前端的需求量身定制的薄服务器)。这不是偷懒,而是这个项目里最资深的架构判断:把自己最强的那条轴线省着用,恰好只用在你控制不了的接缝处,其余一切都用 BaaS 打发掉(BaaS 即 backend-as-a-service,后端即服务;这里由自托管的 Appwrite 接管了身份认证、数据库、存储)。
这层薄适配器实际在做的事——三件工作,本质上都是"适配那些你控制不了的东西":
- 双身份桥接:注册/登录在同一次调用里同时写入合作方的 API(SuperRoute)和 Appwrite(
routes/auth.py——third_api_signup与 Appwrite 的Users并排调用);应用端看到的是单一的登录认证,底层两套系统则保持一致。 - 合作方 API 净化:
third_api.py里的_flatten把第三方响应里的message字段——"可能是字符串/列表/嵌套列表/对象"——在边界处规整成一个可预测的形状,让合作方格式上的漂移永远到不了应用这一侧(对应提交:"Improve API response format handling",2025-06-09)。启动时强制 HTTPS——这条边界拒绝以不安全的方式存在。 - 版本闸门(
routes/version.py):最低版本/强制更新的判断留在服务端做出——这是唯一一项绝不能烘焙进客户端的控制权。
这个形状可以推广:只写用来适配你控制不了的东西的那部分后端。 项目能控制的一切都放在 BaaS 或客户端里;定制代码恰好只存在于两个外部系统(一个合作方的 API、一个由应用商店分发的应用群体)相遇的地方。
面试原型:"跟我讲讲一个架构决策"——我最强的技能只换来了 12 次提交,而且被放在合作方 API 与两套身份系统相遇的地方;真正的自律,是知道哪里不该写代码。